ひょんなことから(?)RTX1200を譲ってもらったので使ってみる。VPN 貼りたいとかいう欲求はなくて、普通に家庭用ブロードバンドルーターとして使う (アップストリームが 100Mbps なのでもったいないのだが)。
ネットワークの構成
WAN 側は IPv6 + DS-Lite (excite MEC光)。
なお強制貸与されるルーターはAPモードにできないのでリストラ (動作確認用)。無線LANは手持ちのものをAPモード(ブリッジモード)で再利用する。
LAN側のセグメントは1つ。できるだけ有線LAN接続にしたいので、テレビ付近まで伸ばしてL2スイッチを追加している。
やるべきこと
- IPv4
- ipip tunnel を transix に貼る
- LAN内の IPv4 パケットはすべてそこに流す
- DHCP サーバで LAN 内のホストにIPアドレス・DNSサーバアドレスを配る
- IPv6
- RA で NGN 側から prefix を取得する
- DHCPv6 クライアントで NGN 側から DNSサーバアドレス を取得する
- DHCPv6 サーバとなり LAN 側へアドレスプリフィックス・DNSサーバアドレスを通知する
- RA で LAN 側へアドレスプリフィックスを広告する
初期設定
いちいちコネクション切れるのはうざいので、シリアルコンソール経由でしばらく作業する。クロスケーブルのシリアルケーブルが必要なのが罠かった(ストレートのものしかなかった)が手元に D-SUB 9-Pin のブレッドボードコネクタがあったので、ブレッドボード上で即席でクロス回路をつくってしのいだ…… ネットワーク環境が整えば LAN 内から TELNET か ssh が安定してできるはずなので、あんまり必要はないはず……
screen では encoding sjis を指定しておく。
microSD USB Download を同時押ししながら電源を入れて初期化。その後まず USB からファームウェアを最新にした。USB を押しながら Download を3秒押しつづける。
RTX1200 Rev.10.01.34 (Mon Sep 5 18:55:00 2011) → RTX1200 Rev.10.01.76 (Fri Apr 13 12:25:45 2018)
この状態で念のためシリアルコンソールから cold start (初期化)。再起動後に、一回初期状態で LAN 側に有線接続して web GUI を眺めたりした。
とりあえず以下をしておく。ただしLANの設定がおわってインターネットに繋がるまではシリアルで作業した。
login user USERNAME PASSWORD sshd host key generate sshd service on
フィルタ
一番めんどうで一番たいせつ。家庭用ルーターガイドラインを参考に基本的なフィルタを設定していく。
- IPv4/IPv6 ともに WAN 側からの通信はすべて遮断
- IPv4/IPv6 ともに LAN 側からの通信はすべて通過
- TCP WAN 側からの SYN は遮断
- UDP WAN 側からはすべて破棄
- WAN 側からの ICMPv6 は必須のもの以外遮断
- LAN 側からの変な source IPv6 アドレスになっているものは遮断
- LAN側からの通信を記憶してこのコネクションについてWAN側からの通信を通過
全部は設定できてない
RTX1200 のフィルタ概念
- フィルタ基礎 http://www.rtpro.yamaha.co.jp/RT/FAQ/IP-Filter/ip-packet-filter.html
- 動的フィルタとは? http://www.rtpro.yamaha.co.jp/RT/docs/firewall/index.html
- established フィルタとは? http://www.rtpro.yamaha.co.jp/RT/FAQ/IP-Filter/ip-filter-established.html
1つでもフィルタが定義されているとデフォルトがリジェクトに設定される
設定
基本的にはこちらからの通信をトリガーにして動的フィルタをかける形になる。「ipv6 lan2 secure filter out 3000 dynamic 100 101 102 103 104 105 106」というフィルタは 「3000 のフィルタをトリガーにして 100 101 102 103 104 105 106 の動的フィルタを生成する」の意味。3000 は単純な pass なので、外に出ていくなんらかの通信すべてをトリガーにして、送信先ホストからの受信を許可する。
RTシリーズのDNSリカーシブ機能はTCPフォールバックが不可能らしいので機能をオフにしておく (IPv6 や DNSEC で TCP フォールバックされるケースが増えているので)。
# IPoE #ホームゲートウェイ(ひかり電話ルータ)なしの場合(RA回線) # WAN # DHCPv6 client を起動 #ir=on だと Information-request (stateless DHCPv6) になるが上流の情報が強制的に設定されるのでつけない (手動で DNS と domain 設定してるからいらないが) ipv6 lan2 dhcp service client # v6 ネイティブのため MTU=1500 ipv6 lan2 mtu 1500 #log ipv6 lan2 prefix change log on # LAN # lan1 に付与するアドレスの設定。lan2 から RA プロキシした prefix に ::1 をつける ipv6 lan1 address ra-prefix@lan2::1/64 # LANに広告(RA)するプリフィックスの定義。lan2 からRAプロキシ ipv6 prefix 1 ra-prefix@lan2::/64 # 上で設定したプリフィックス定義1を広告するように設定。DHCPv6 から他の情報も送信するので o_flag=on ipv6 lan1 rtadv send 1 o_flag=on # DHCPv6 サーバの起動 ipv6 lan1 dhcp service server # DNS #Use Cloudflare DNS #dns server 1.1.1.1 1.0.0.1,2606:4700:4700::1111,2606:4700:4700::1001 #Use Google Public DNS dns server 8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844 #上の設定が優先されるはずだが dhcp 経由のものも設定はしておく dns server dhcp lan2 #余計なドメイン指定をけしたい dns domain . # DNS リカーシブ機能をオフにする。TCPフォールバックができないため。 dns service off # DNS リカーシブをオフにしているので、me を DNS サーバとして送らないように dns notice order dhcp server # IPv4 # DHCP サーバの起動 dhcp service server dhcp server rfc2131 compliant except remain-silent # アドレス範囲が 192.168.0.0/29 にかぶらないようにスタートアドレスを変えておく dhcp scope 1 192.168.0.10-192.168.0.100/24 # LAN 側のアドレスを設定 ip lan1 address 192.168.0.1/24 # DS-Lite(ipip tunnel) # IPv4 をトンネル1を通すように設定 ip route default gateway tunnel 1 # トンネル1の設定 tunnel select 1 # トンネル種別。ipip トンネル (IPv4 over IPv6) tunnel encapsulation ipip # AFTR のアドレスを設定 tunnel endpoint address 2404:8e00::feed:101 # IPv6 MTU から IPv4 ヘッダ(40bytes) を減じた MTU ip tunnel mtu 1460 ip tunnel secure filter in 1020 1030 2000 ip tunnel secure filter out 1010 1011 1012 1013 1014 1015 3000 dynamic 100 101 102 103 104 105 106 107 ip tunnel tcp mss limit auto tunnel enable 1 #Filter IPv6 ipv6 lan2 secure filter in 1010 1011 2000 ipv6 lan2 secure filter out 3000 dynamic 100 101 102 103 104 105 106 ipv6 filter 1010 pass * * icmp6 * * # 546=dhcpv6 client ipv6 filter 1011 pass * * udp * 546 ipv6 filter 2000 reject * * * * * ipv6 filter 3000 pass * * * * * ipv6 filter dynamic 100 * * ftp ipv6 filter dynamic 101 * * domain ipv6 filter dynamic 102 * * www ipv6 filter dynamic 103 * * smtp ipv6 filter dynamic 104 * * pop3 ipv6 filter dynamic 105 * * tcp ipv6 filter dynamic 106 * * udp #Filter IPv4 ip filter source-route on ip filter directed-broadcast on ip filter 1010 reject * * udp,tcp 135 * ip filter 1011 reject * * udp,tcp * 135 ip filter 1012 reject * * udp,tcp netbios_ns-netbios_ssn * ip filter 1013 reject * * udp,tcp * netbios_ns-netbios_ssn ip filter 1014 reject * * udp,tcp 445 * ip filter 1015 reject * * udp,tcp * 445 ip filter 1020 reject 192.168.0.0/24 * ip filter 1030 pass * 192.168.0.0/24 icmp ip filter 2000 reject * * ip filter 3000 pass * * ip filter dynamic 100 * * ftp ip filter dynamic 101 * * www ip filter dynamic 102 * * domain ip filter dynamic 103 * * smtp ip filter dynamic 104 * * pop3 ip filter dynamic 105 * * submission ip filter dynamic 106 * * tcp ip filter dynamic 107 * * udp # etc schedule at 1 */* 06:00 * ntpdate ntp3.jst.mfeed.ad.jp syslog
status
# ルーターが取得した ipv6 アドレス show ipv6 address lan2 # DHCPv6 の状態 show status ipv6 dhcp # IPv4 DHCP サーバの状態 show status dhcp show status lan1 show status lan2 show log reverse interface reset lan2 clear ipv6 dynamic routing clear ipv6 neighbor cache
挙動不信?
DHCPv6 の DNS
dns server を設定して dns notice order dhcp server をしても DHCPv6 の DNS 通知に反映されず、常にルーターの IPv6 アドレスが通知される。解決方法がわからない。
IPv4 の DHCP でもなんか変な挙動で、設定してない IPv4 アドレスの DNS が通知されたりする。
→ LAN 側の IP アドレスを dns server に設定したらルーターのアドレスが設定されなくなった。
DHCPv6 の domain
flets-east.jp のドメインがついたり、iptvf.jp というドメインがついたりする。つかなかったりもする。
ir=on (stateless DHCPv6) にすると強制的に上流の情報が付与されてしまうっぽい。ir=on をなくして、dns server や dns domain を自分で指定すればオッケー
IPv6 接続不可
設定して8時間ぐらい経過したあたりで IPv6 接続ができなくなっていることに気付いた。IPv4 は通るのでインターネットには出れる状態。かなり意味不明でこまった
- ルーターからtransixまでの NGN 内 IPv6 ルートはある
- LAN内ホストからルーターまでの IPv4 ルートはある
- ルーターまで ping6 [link local]%en0 は通る
- グローバルIPv6アドレスへの ping6 は通らない (no route to host)
- lan2 の ipv6 フィルタをはずしても効果なし
いろいろ設定変更して restart とかしていたら接続できるようになってしまったが、いまいち解決方法がわかってない。
考えられる原因?
- ルーターに割り当てられるグローバルIPアドレスプリフィックスが変化したがLAN内ホストがうまく追従できなかった
- lan1 と lan2 に二重でグローバルIPアドレスが付与されていた?
- 「デフォルト経路は最後に設定が完了したインタフェースに向く」と書いてあるのでなんかありそう
- lan2 側で ipv6 address 指定をやめた。