26-Feb-2018
[東西道路(仮)については(2)]

03-Dec-2017の続き。

tp2254204.jpg tp2254205.jpg tp2254209.jpg

南北道路→東西道路への交差点に信号が付き、簡易的な歩道ができていることを確認。3月28日まで工事してるよと看板に書かれているので、開通は4月くらいになるんだろうかと思っていたら3月26日というアナウンス(PDF)が出てますね。月曜日か…ちっ

PG850(11-32T)化したESCAPE R3(2015)、乗ってみてもうすぐ一ヶ月くらいになります。ESCAPE R3(2014)ではPG830(11-32T)を載せているので、先祖返りということになるのでしょうか。時折ギアの切り替わりが怪しいときがありますが、過去のGIANTの自転車のラインアップを見るとROAM 3(2013)ESCAPE 2(2017)ではSHIMANOのディレイラー+SRAMのスプロケットで組み合わせていたりするので、部品の相性問題というよりは調整で改善できるのではないかと考えています。59.35kg(22:00)

18-Feb-2018
[近況]

IPv6対応したけどどうもIPv6優先にならないな…と思ったら、OpenBSDでは/etc/resolv.confにfamily inet6 inet4を記述すれば良いと@yosatakさんからのアドバイス。おかげでhttp://www.kame.net/でも無事に動くカメが拝めるようになりました。アドバイス、本当にありがとうございます。

そういえば昔Visor Platinumを持ってたし久々に遊んでみたいよねと思ってPHEMをAndroid端末に突っ込んでみました。ROMイメージは当時実機からの吸い出しをやっていなかったのでftp://ftp.oreilly.com/examples/palmpilot2/からPalmOS 3.1Jのイメージを拝借してきたんですが…Android端末ではクレードルを使ってHotSyncするなんてことができない以上、ちょっと実用は辛いかなと。LanSyncが使えれば良いのですが、PalmOS 4.0以降、あるいは3.5辺りにパッチ当てが必要という時点でハードルが高いです。公式サイトが消滅しているのでパッチは入手できませんし、4.0搭載機はオークションで結構お高い値段が付いておりますので。

開発環境周りも、かなり困った状況です。CodeWarriorはともかく、prc-tools, PilRCは長らくメンテナンスされていない上、PalmOS(m68k)向けのGCCが厄介です。これ、gcc-2.95.3にgcc-2.95.3.palmos.diffを当てて作るんですが、イマドキの環境でgcc-2.95のビルドが困難であることに加え、パッチの内容を現在のgccに反映させるのも難しいように見えます。自分には、当時の環境をVMware等で再現して動かす以外に延命の手段は思いつきません。

あの時代に十分なPalmOSアプリを確保していればまだ楽しめそうですが…今ではVectorに僅かに残った物とWeb archiveを漁るのがアプリケーション入手の主体になるようで、風化がかなり進んでいるという印象があります。今から新規参入するのは止めた方が良いような。

PalmOS(m68k)の開発環境を調べる過程で分かったことなのですが、このご時世ではm68k-coffなtoolchainを作るのもかなり大変です。細かいことを書く余裕が無いのでざっくり書きますが、自分は以下の三つを組み合わせました。

そういえばm68k上でコードを書いたことはないというかそもそもVisorくらしいか搭載機を保有したことがないので、一度適当なものをいじってみたい気がします。今だと何があるんですかね…59.90kg(20:30)

12-Feb-2018
[実は今月から]

このweb pageを置いているVPSもIPv6に対応していたりします。いつまで経ってもhttp://ik1-342-31132.vs.sakura.ne.jp/~uaa/がIPv4のままだなーと思っていたのですが、さくらのVPSサービスで逆引き名の設定はできますか。を見る限りでは、http://153.126.212.136.v6.sakura.ne.jp/~uaa/にしないとIPv6でのアクセスはできないようです。

ここ数日寝る間も削って散々足掻いてみましたが、現状のJ:COMにおいて、IPv6を使えるようにする利点は皆無というのが実感です。IPv6アドレスを一つしか渡さず、ルータ経由で使ってくださいと言っている時点でそもそも終わっていますが、BUFFALOだのELECOMだのが出している無線LAN付きのお手軽ルータではIPv6パススルーはあってもNATv6を実装していない以上、こいつを実装してもらうようメーカーに働きかけてもらわないことには話にならないと思うのですよ。

Linuxベースのルータではip6tablesをちょっといじるだけでNATv6を有効にできるので、難しいことではないはずです。しかし、広大なアドレス空間を用意して様々なデバイスをネットワークに繋ぐというIPv6の趣旨を考えると、お手軽ルータにIPv6パススルー以上の対応(NATv6の実装)をしてもらえる可能性は低いと考えます。

その辺りの問題をJ:COMが真面目に解決する気があるなら、J:COM上でIPv6を使う利点も出てくるのでしょうが…EdgeRouter LITE-3を入れて苦労して設定しても単にIPv6で繋げられるだけ、という現状を見るに、IPv6を本気で使いたいなら他の回線へ移った方が幸せだと言いたくもなります。

J:COMはALLNETを合併した際、ルータ禁止令を出したという前科もありますし。59.60kg(22:10)

11-Feb-2018
[EdgeRouter LITE-3格闘中。(2)]

さて、EdgeRouter LITE-3(ERLite-3)がIPv4ルータとして使えるようになったところで、ここからが本番。IPv6アドレスを一つしかくれないJ:COMにおいて、NATv6を使用し、IPv4を使うときと同様にアクセスできるよう設定を行います。前回(09-Feb-2018)からの続きになります。

7. DNSフォワーディングの停止、DHCPによるDNSの通知とシステムの使用するDNSサーバ(IPv4)の設定

複数のdhclientが/etc/resolv.confを書き換えることで発生する問題を回避するため、system name-serverを設定し、WAN側から得られたDNSアドレスはDHCPを通じて通知するように変更します。これによってDNSフォワーディングが不要になるため、削除します。


delete service dns
delete service dhcp-server shared-network-name LAN1 subnet 192.168.0.0/24 dns-server 192.168.0.1
set service dhcp-server shared-network-name LAN1 subnet 192.168.0.0/24 dns-server 220.152.38.233
set service dhcp-server shared-network-name LAN1 subnet 192.168.0.0/24 dns-server 220.152.38.201
set system name-server 8.8.8.8

8. ファイヤウォールの設定(IPv6)


set firewall ipv6-name WAN6_IN default-action drop
set firewall ipv6-name WAN6_IN description 'WAN6 to internal'
set firewall ipv6-name WAN6_IN rule 10 action accept
set firewall ipv6-name WAN6_IN rule 10 description 'Allow established/related'
set firewall ipv6-name WAN6_IN rule 10 state established enable
set firewall ipv6-name WAN6_IN rule 10 state related enable
set firewall ipv6-name WAN6_IN rule 20 action drop
set firewall ipv6-name WAN6_IN rule 20 description 'Drop invalid state'
set firewall ipv6-name WAN6_IN rule 20 state invalid enable
set firewall ipv6-name WAN6_IN rule 30 action accept
set firewall ipv6-name WAN6_IN rule 30 description 'Allow ICMPv6'
set firewall ipv6-name WAN6_IN rule 30 protocol icmpv6

set firewall ipv6-name WAN6_LOCAL default-action drop
set firewall ipv6-name WAN6_LOCAL description 'WAN6 to router'
set firewall ipv6-name WAN6_LOCAL rule 10 action accept
set firewall ipv6-name WAN6_LOCAL rule 10 description 'Allow established/related'
set firewall ipv6-name WAN6_LOCAL rule 10 state established enable
set firewall ipv6-name WAN6_LOCAL rule 10 state related enable
set firewall ipv6-name WAN6_LOCAL rule 20 action drop
set firewall ipv6-name WAN6_LOCAL rule 20 description 'Drop invalid state'
set firewall ipv6-name WAN6_LOCAL rule 20 state invalid enable
set firewall ipv6-name WAN6_LOCAL rule 30 action accept
set firewall ipv6-name WAN6_LOCAL rule 30 description 'Allow ICMPv6'
set firewall ipv6-name WAN6_LOCAL rule 30 protocol icmpv6
set firewall ipv6-name WAN6_LOCAL rule 40 action accept
set firewall ipv6-name WAN6_LOCAL rule 40 description 'Allow DHCPv6'
set firewall ipv6-name WAN6_LOCAL rule 40 protocol udp
set firewall ipv6-name WAN6_LOCAL rule 40 destination port 546
set firewall ipv6-name WAN6_LOCAL rule 40 source port 547

9. eth0にIPv6アドレスを割り当て(DHCPv6を使用します)


set interfaces ethernet eth0 address dhcpv6
set interfaces ethernet eth0 firewall in ipv6-name WAN6_IN
set interfaces ethernet eth0 firewall local ipv6-name WAN6_LOCAL

10. デフォルトルーティングの設定

以下の操作を行い、得られたリンクローカルアドレス(fe80::XXXX:XXXX:XXXX:XXXX)をnext-hopに指定します。


[edit]
ubnt@ubnt:~# ip neigh show dev eth0 | grep router
fe80::XXXX:XXXX:XXXX:XXXX lladdr XX:XX:XX:XX:XX:XX router STALE
[edit]
ubnt@ubnt:~#

set protocols static route6 '::/0' next-hop 'fe80::XXXX:XXXX:XXXX:XXXX' interface eth0

11. eth1にIPv6アドレスを割り当て、RAによるDNSv6サーバアドレスの通知

ユニークローカルアドレス(fdXX:XXXX:XXXX:XXXX::1/64)のプリフィックスは、RFC4193 IPv6 Generator等を使用して作ってください。


set interfaces ethernet eth1 address fdXX:XXXX:XXXX:XXXX::1/64
set interfaces ethernet eth1 ipv6 router-advert prefix ::/64
set interfaces ethernet eth1 ipv6 router-advert name-server 2001:ff0:2041:1::d:233
set interfaces ethernet eth1 ipv6 router-advert name-server 2001:ff0:2089:1::d:201
set interfaces ethernet eth1 ipv6 router-advert managed-flag false
set interfaces ethernet eth1 ipv6 router-advert other-config-flag false

12. NATv6の有効化

VyOS LithiumではHow to do NPTv6の手順で可能なようですが、現時点でのEdgeOS(v1.10.0)ではこれが使えないため、/config/scripts/post-config.d/natv6-enableを作成します。中身は大したことはなく、ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADEを実行するだけです。

ここまでの/config/config.bootとshow configuration commands > config.commandsを置いておきます。

以上の設定で、ERLite-3配下のマシンからIPv6経由での接続ができています。しかし、以下のような問題が分かっています。

とりあえず、IPv6経由でThe KAME projectにアクセスし、動くカメがやっと拝めるようになっただけでも良しとします。59.45kg(18:05)

12-Feb-2018補足:How to do NPTv6、NAT/NAPTの話ではないので削除します。

09-Feb-2018
[EdgeRouter LITE-3格闘中。]

とりあえず、今置いてある無線LANルータをアクセスポイント扱いにして、IPv4ルータとして最低限動く程度の設定をします。といっても、EdgeOS日本語Wiki[非公式]の内容をほとんど丸写ししています。

configureモードでは既に設定されている内容に新しい設定を追記していく形になるので、記述しなかったものについては現在の設定が維持されます。困ったときはcompareで比較するなり、discardで設定を取り消してやり直すのが良さそうです。

多くのページではshow configuration commands > config.commandsで得られたset hoge fuga piyoの羅列で書かれていますが、一気に流し込むよりは機能単位で設定する度にcommitする方が良いように思われます。

以下のような順番になるでしょうか。

1. ファイヤウォールの設定


set firewall name WAN_IN default-action drop
set firewall name WAN_IN description 'WAN to internal'
set firewall name WAN_IN rule 10 action accept
set firewall name WAN_IN rule 10 description 'Allow established/related'
set firewall name WAN_IN rule 10 state established enable
set firewall name WAN_IN rule 10 state related enable
set firewall name WAN_IN rule 20 action drop
set firewall name WAN_IN rule 20 description 'Drop invalid state'
set firewall name WAN_IN rule 20 state invalid enable

set firewall name WAN_LOCAL default-action drop
set firewall name WAN_LOCAL description 'WAN to router'
set firewall name WAN_LOCAL rule 10 action accept
set firewall name WAN_LOCAL rule 10 description 'Allow established/related'
set firewall name WAN_LOCAL rule 10 state established enable
set firewall name WAN_LOCAL rule 10 state related enable
set firewall name WAN_LOCAL rule 20 action drop
set firewall name WAN_LOCAL rule 20 description 'Drop invalid state'
set firewall name WAN_LOCAL rule 20 state invalid enable

2. eth1をLANに割り当て(割り当て後はこちらにケーブルをつなぎ直します)


set interfaces ethernet eth1 address 192.168.0.1/24
set interfaces ethernet eth1 description 'LAN'
set interfaces ethernet eth1 duplex auto
set interfaces ethernet eth1 speed auto

3. GUI(Web)/SSH consoleへのアクセスをLAN側からに限定


set service gui listen-address 192.168.0.1
set service ssh listen-address 192.168.0.1

4. LAN側にDHCPサーバを設定


set service dhcp-server shared-network-name LAN1 subnet 192.168.0.0/24 default-router 192.168.0.1
set service dhcp-server shared-network-name LAN1 subnet 192.168.0.0/24 dns-server 192.168.0.1
set service dhcp-server shared-network-name LAN1 subnet 192.168.0.0/24 start 192.168.0.192 stop 192.168.0.240

5. eth0をWANに割り当て(IPアドレスはWAN側のDHCPサーバからもらいます)


set interfaces ethernet eth0 address dhcp
set interfaces ethernet eth0 description 'WAN'
set interfaces ethernet eth0 firewall in name WAN_IN
set interfaces ethernet eth0 firewall local name WAN_LOCAL
set interfaces ethernet eth0 duplex auto
set interfaces ethernet eth0 speed auto

6. NATとDNSフォワーディングの有効化


set service dns forwarding cache-size 150
set service dns forwarding listen-on eth1
set service dns forwarding dhcp eth0
set service nat rule 5010 outbound-interface eth0
set service nat rule 5010 type masquerade

ここまでの/config/config.bootとshow configuration commands > config.commandsを置いておきます。

どうにかERLite-3がIPv4ルータとして動く程度にはなりましたが、ここからIPv6対応を行うにはどうすれば良いかを考えると頭が痛いです。WAN側からどうやってIPv6アドレスをもらい、LAN側のマシンにはどうやってアドレスを割り当てるのか。DNSフォワーディング、NAT、ファイヤウォールの設定はどうするのか。うーむ…59.10kg(23:30)

07-Feb-2018
[IPv6を何とかしたいんだけど]

J:COMでもIPv6が使えるらしいのでじゃあ使えるようにしてみっかと考えているところ。しかし「複数の端末を同時に利用される場合は、追加IPアドレスサービスをお申し込みいただくか、ルーターをご利用ください。」などと書かれてしまってる以上、IPv6に対応したルータを用意しないといけません。今使っている無線LANルータだとIPv6パススルーしかできないし、もうなんか理由を書くのが色々面倒臭えとりあえず昔OpenBSD/Octeonしようかと思って購入したEdgeRouter LITE-3(ERLite-3)投入すっぞということで。

電源周りが海外仕様のため買ってから一度も動かしていなかったERLite-3、まずはamazonでケーブルを買います。次にファームウェアの更新…これはEdgeRouter Lite (ERLite-3)のファームウェアアップデートの、scpを使う方法…scp <firmware> ubnt@192.168.1.1:でERLite-3に転送し、add system image <firmware>; rebootで更新します(当面、ERLite-3のIPアドレスはデフォルトの192.168.1.1、ユーザ名はubntのままにします)。念のため、show system imageで確認。

ここからひたすら設定を煮詰める作業を始めていくのですが、その前に何かあった際に復元する手段を確認しておきます。EdgeRouter - Reset router to factory defaultsにあるように、設定ファイルは/config/config.boot、オリジナルの設定ファイルは/opt/vyatta/etc/config.boot.defaultにあります。diffを取ってみると、なんか微妙に違っていますが多分気にしちゃダメなんでしょう。61.85kg(19:05)

08-Feb-2018補足:/config/config.bootのパーミッションは0660(-rw-rw----)でユーザ:グループはroot:vyattacfg、/opt/vyatta/etc/config.boot.defaultは0644(-rw-r--r--), root:rootになっています。また、特に何も設定していない状態でshow configuration commands > config.commandsとするとこんな感じになります。