自宅 LAN の理想と現実 (3) ~IPv6 をどうするか・その4〜 SEIL/x86 設定備忘録

Networks
配線

前回の記事の投稿から少し間が空いてしまいましたが,「自宅 LAN の理想と現実 (3) ~IPv6 をどうするか・その4〜」です.今回は私の備忘録を兼ねて,「SEIL/x86」の設定の一部を御紹介します.

前提

前提として,前回記事で構築した環境

自宅 LAN の理想と現実 (3) ~IPv6 をどうするか・その3〜 SEIL/x86 で OCN を使う準備
自宅 LAN の理想と現実 (3) ~IPv6 をどうするか・その2〜 OCN の IPv6 対応ってどうなの?の続き.NTT の NGN(フレッツ網)で IPv6 に対応するために使った IIJ の SEIL/x86 の設定について公開し...

を仮定します.物理配線と VLAN の状態は以下の通りです.

配線

また,SEIL/x86 は Thinkpad にインストールされた Windows 10 pro のクライアント Hyper-V 上にインストールされており,

  • ローカル(VLAN1): lan0
  • グローバル(VLAN10): lan1

のように SEIL/x86 からネットワークインターフェースが認識されているとします.

注意

今回紹介する設定は最低限のセキュリティしか考慮していません.従ってこのまま使ってセキュリティ的な問題が生じても責任は持てません.御注意下さい.

設定

まずは設定の全体を以下に貼り付けておきます.

hostname "SEILx86OCN"
timezone "Japan"
environment login-timer 300
option ipv6 unicast-rpf strict logging on
ppp add ipv4 keepalive 30 ipcp enable ipcp-address on ipcp-dns on ipv6cp disable authentication-method auto identifier aaaaaaa@***.ocn.ne.jp passphrase ***** tcp-mss auto
ppp add ipv6 keepalive none ipcp disable ipcp-address off ipcp-dns off ipv6cp enable authentication-method chap identifier [email protected] passphrase ***** tcp-mss auto
interface lan0 description "local"
interface lan0 media auto
interface lan0 add 192.168.2.1/24
interface lan1 description "flets-west.jp"
interface lan1 media auto
interface lan1 queue normal
interface lan1 add dhcp
interface lan1 add router-advertisement
interface pppoe0 description "***.ocn.ne.jp"
interface pppoe0 over lan1
interface pppoe0 ppp-configuration web-config
interface pppoe1 description "ipv6.ocn.ne.jp"
interface pppoe1 over lan1
interface pppoe1 ppp-configuration ipv6
bridge disable
bridge ip-bridging on
bridge ipv6-bridging on
route add default pppoe0
route dynamic rip disable
route dynamic ospf disable
route dynamic bgp disable
route dynamic redistribute static-to-rip disable
route dynamic redistribute static-to-ospf disable
route dynamic redistribute ospf-to-rip disable
route dynamic redistribute rip-to-ospf disable
route dynamic redistribute connected-to-rip enable
route dynamic redistribute connected-to-ospf enable
route dynamic pim-sparse disable
route6 add default pppoe1
route6 add 2001:a200::/24 2001:****:****:****:****:****:****:****
route6 dynamic ripng disable
route6 dynamic redistribute static-to-ripng disable
route6 dynamic redistribute connected-to-ripng enable
route6 dynamic pim-sparse disable
filter add filter1 interface pppoe0 direction in action block protocol tcp srcport 0-65535 dstport 80 state disable logging on enable
filter add filter2 interface pppoe0 direction in action block protocol tcp srcport 0-65535 dstport 23 state disable logging on enable
filter add filter3 interface pppoe0 direction in action block protocol tcp srcport 0-65535 dstport 22 state disable logging on enable
filter6 add seil_ctl_lan0 interface lan0 direction in action pass protocol tcp srcport 0-65535 dst self dstport 0-65535 state disable logging off enable
filter6 add telnetd_block interface any direction in action block protocol tcpudp srcport 0-65535 dst self dstport 23 state disable logging on enable
filter6 add httpd_block interface any direction in action block protocol tcpudp srcport 0-65535 dst self dstport 80 state disable logging on enable
filter6 add outgoing interface pppoe1 direction out action pass state enable logging on enable
filter6 add dhcpv6 interface pppoe1 direction in action pass protocol udp srcport 547 dstport 546 state disable logging on enable
filter6 add incoming_block interface pppoe1 direction in action block state disable logging on enable
nat timeout 900
nat logging off
nat upnp on
nat upnp interface pppoe0
nat napt add private 192.168.2.1-192.168.2.254 interface pppoe0
nat napt add private 192.168.2.1-192.168.2.254 interface lan1
nat option port-assignment random
nat6 add nttngn type ngn interface lan1 internal 2400:****:****:****::/64 external 2001:a200::/24 ndproxy on
proxyarp disable
dhcp enable
dhcp mode server
dhcp interface lan0 enable
dhcp interface lan0 expire 24
dhcp interface lan0 pool 192.168.2.2/24 253
dhcp interface lan0 dns add 192.168.2.1
dhcp6 client enable
dhcp6 client interface pppoe1
dhcp6 client prefix-delegation subnet lan0 sla-id 0xff enable
dhcp6 server interface lan0 enable
dhcp6 server interface lan0 dns add dhcp6
dns forwarder enable
dns forwarder add dhcp6
ntp disable
cbq link-bandwidth 100Mbps
snmp disable
snmp community "public"
snmp security-model community-based off
snmp security-model user-based on
snmp trap disable
syslog debug-level off
syslog facility local1
syslog remote off
translator timeout 300
encrypted-password admin xxxxxxxxxxxxx
encrypted-password-long admin xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
resolver enable
resolver address add ipcp
rtadvd enable
rtadvd interface lan0 enable
rtadvd interface lan0 other-flag on
rtadvd interface lan0 advertise auto
rtadvd interface lan0 advertise add interface-prefix 
httpd enable
sshd hostkey rsa1 none
sshd hostkey rsa xxxxxxxxxxx
sshd hostkey dsa xxxxxxx
sshd enable
telnetd disable
vendor OEM

主要部分(指定が必要な部分)のみ以下,解説していきます.

インターフェースの設定

ppp add web-config keepalive 30 ipcp enable ipcp-address on ipcp-dns on ipv6cp disable authentication-method auto identifier aaaaaaa@***.ocn.ne.jp passphrase ***** tcp-mss auto
ppp add ipv6 keepalive none ipcp disable ipcp-address off ipcp-dns off ipv6cp enable authentication-method chap identifier [email protected] passphrase ***** tcp-mss auto
interface lan0 description "buffa.local"
interface lan0 media auto
interface lan0 add 192.168.2.1/24
interface lan1 description "flets-west.jp"
interface lan1 media auto
interface lan1 queue normal
interface lan1 add dhcp
interface lan1 add router-advertisement
interface pppoe0 description "***.ocn.ne.jp"
interface pppoe0 over lan1
interface pppoe0 ppp-configuration web-config
interface pppoe1 description "ipv6.ocn.ne.jp"
interface pppoe1 over lan1
interface pppoe1 ppp-configuration ipv6

インターフェースの設定部分です.まず,先頭部分で ppp 接続のために必要な設定(ppp 接続パスワードの指定等)をしています.1行目が v4 ,2行目が v6 用です.3行目以降で,

  • lan0 の v4 アドレスとして 192.168.2.1/24 を割り当てています.
  • lan1 の v4 アドレスは NTT Router から DHCP で割り当てます.
  • lan1 の v6 アドレスは router-advertisement による自動割り当てとしています(※).
  • pppoe0 は v4 での接続用とし,lan1 と紐づけ(ブリッジ?)
  • pppoe1 は v6 での接続用とし,lan1 と紐づけ(ブリッジ?)

が設定されています.

ルーティングの設定

route add default pppoe0
route6 add default pppoe1
route6 add 2001:a200::/24 2001:a250:****:****:****:****:****:****

最低限のルーティング設定です.最初の2行は見ての通り v4, v6 のデフォルトルートの設定ですが,最後の行は NTT のフレッツ光回線のための設定です.

NTT のフレッツ光は,NTT が構築した巨大な NTT ローカルな ipv6 ネットワークです.ただし,(場合にもよりますが)このネットワークは直接インターネットにはつなげられていません.2行目で ipv6 のデフォルトルートを pppoe1 としていますので,ipv6 の通信は基本的に ocn 経由で行われますが,NTT のフレッツ光回線は NTT のローカルネットなので,このままだとフレッツ光につながれている機器への通信が行えません.これが行われるようにするために必要な設定が3行目となります.

ipv6 アドレス

2001:a250:****:****:****:****:****:****

は NTT Router の「トップページ > 情報 > DHCPv6サーバ払い出し状況」から確認できる DNS/SIP サーバのアドレスです(多分 NTT Router 自身の ipv6 アドレスだと思う).

また,

2001:a200::/24

は NTT のローカルネットワークに割り当てられているアドレス群です.

なお,NTT のネットワークに割り当てられている ipv6 アドレスは上記のものだけでは無いようですが,最低限,自分が属しているネットワークのもののみ設定しています.

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

filter add filter1 interface pppoe0 direction in action block protocol tcp srcport 0-65535 dstport 80 state disable logging on enable
filter add filter2 interface pppoe0 direction in action block protocol tcp srcport 0-65535 dstport 23 state disable logging on enable
filter add filter3 interface pppoe0 direction in action block protocol tcp srcport 0-65535 dstport 22 state disable logging on enable
filter6 add seil_ctl_lan0 interface lan0 direction in action pass protocol tcp srcport 0-65535 dst self dstport 0-65535 state disable logging off enable
filter6 add telnetd_block interface any direction in action block protocol tcpudp srcport 0-65535 dst self dstport 23 state disable logging on enable
filter6 add httpd_block interface any direction in action block protocol tcpudp srcport 0-65535 dst self dstport 80 state disable logging on enable
filter6 add outgoing interface pppoe1 direction out action pass state enable logging on enable
filter6 add dhcpv6 interface pppoe1 direction in action pass protocol udp srcport 547 dstport 546 state disable logging on enable
filter6 add incoming_block interface pppoe1 direction in action block state disable logging on enable

必要最低限のファイヤーウォールの設定です.グローバル側から SEIL/x86 の設定等を行えないようにするなどしていたはずです.

NAT の設定

nat upnp on
nat upnp interface pppoe0
nat napt add private 192.168.2.1-192.168.2.254 interface pppoe0
nat napt add private 192.168.2.1-192.168.2.254 interface lan1
nat option port-assignment random
nat6 add nttngn type ngn interface lan1 internal 2400:****:****:****::/64 external 2001:a200::/24 ndproxy on
proxyarp disable

NAT の設定です.upnp を有効にすると共に,

  • pppoe0 (ipv4 internet vir OCN)
  • lan1 for ipv4 (ipv4 NTT Router network)
  • lan1 for ipv6 (ipv6 localnet by NTT NGN)

の3つに napt を設定しています.まず,ipv4 internet とローカルネットワークの機器が通信できるようにするため,pppoe0 に napt を設定しています.そして,lan1 に,NTT のフレッツ光ネットワークにつながれている機器との通信性を確保するための設定を行っています.

SEIL/x86 は,NTT Router の下につながれています.NTT Router が配下の機器に DHCP で割り当てるアドレスは標準だと 192.168.1.0/24 の範囲で,ローカルネットワークのアドレスは 192.168.2.0/24 です.通信できるようにするためには,静的ルートの設定を行うのが普通なのかも知れませんが,今回は「ローカル⇒NTT Router ネットワーク」の通信性だけ確保できれば良いので,napt を lan1 に設定するだけにしています.ipv6 についても同様です.

ただし,ipv6 に静的ルートを設定し,通信性を確保することは現実的ではありません.

ローカルネットワークには,OCN が配る ipv6 アドレス 2400:****:****…/64 が設定されています.フレッツ光ネットワークのアドレスは 2001:a200::/24 です.フレッツ光ネットワークに繋がれた機器がローカルにつながれた機器と通信できるには,当然,フレッツ側の機器がこちらのネットワーク構成を知っていなければなりません.当然これは無理です.ということは,NTT のネットワークに直接接続されている lan1 がローカルとグローバルのアドレスの書き換えを実施せざるを得ません.つまり napt を lan1 に掛けざるを得ない訳です.成程,フレッツに対応するには napt6 が必要な訳です.

見ての通り,今回は ipv6 インターネットには napt6 を設定していません.pppoe1 に napt6 を設定することで,リンクローカルな ipv6 アドレスのみ割り当てられたローカルの機器から ipv6 インターネットに接続することも可能だと思いますが,今回は試していません.

また,SEIL/x86 の napt6 には ngn(NTT のフレッツ光ネットワーク)用と,transparent 方式の2通りあります.今回はフレッツ光への接続ですので,ngn としましたが,これらがどう違うのかは私にはよく分かりません.

DHCP と rtadvd の設定

dhcp enable
dhcp mode server
dhcp interface lan0 enable
dhcp interface lan0 expire 24
dhcp interface lan0 pool 192.168.2.2/24 253
dhcp interface lan0 dns add 192.168.2.1
dhcp6 client enable
dhcp6 client interface pppoe1
dhcp6 client prefix-delegation subnet lan0 sla-id 0xff enable
dhcp6 server interface lan0 enable
dhcp6 server interface lan0 dns add dhcp6
dns forwarder enable
dns forwarder add dhcp6

DHCP の設定です.面倒なので,ipv4 のアドレスも含めて DHCP で配るよう設定しています.DHCP6 の設定の解説は

NGN IPv6への接続の設定(dhcp6, rtadvd)
昨日(6/2)に引き続き、SEIL/x86を使ってNGN IPv6インターネットに接続するための設定項目の詳細を紹介します。今日は、残りのdhcp6, rtadvdコマンドを解説します。

をご覧ください.また,ipv6 のアドレスは自動構成が基本です.このために rtadvd の設定が必要ですが,その部分は以下の通りとなります.

rtadvd enable
rtadvd interface lan0 enable
rtadvd interface lan0 other-flag on
rtadvd interface lan0 advertise auto
rtadvd interface lan0 advertise add interface-prefix

この部分についても,上記の SEIL 公式 blog の記事をご覧ください.

まとめ

正直,複雑ですねぇ.おまけに,いくつかこの設定で合っているのか疑問に思うところもあります.

今回,ひかり電話ありを仮定しましたが,なし,でも多分同じで大丈夫なんじゃないかと思います.どうもひかり電話ありとなしでは,NTT のフレッツ光ネットワークから配られる(NTTローカルな) ipv6 アドレスの範囲に違いが出てくるようです.

フレッツ光ネクストのIPv6との戦い | geek log.

でも,今回は lan1 を素直に NTT Router の下にぶら下げ,napt6 経由でフレッツ網と通信していますので,この部分を考慮する必要はないはずです.

なお,今回の設定だと,napt6 を OCN 経由 ipv6 経由の通信に設定していません.と言うことは,ローカルネットワークの機器にも,ipv6 のグローバルアドレスが設定されているということで,これは,ローカルの機器に直接インターネットからアクセス可能であることを意味しています.

従って,ipv6 の通信についてはファイヤーウォールの設定をきちんと行っておかないと危ないということになるのですが,この辺りのことを考えると,SEIL/x86 を使うことは手間の観点から問題があると言わざるを得ないような気がします.

Networks
スポンサーリンク
Following hyt!
タイトルとURLをコピーしました