RTX810: HE Free IPv6 Tunnel Broker 設定メモ

Hurricane Electric Free IPv6 Tunnel BrokerYAMAHA RTX810 で IPv6 トンネルを設定した備忘録です。

とりあえず動いた、と言うもので、特にフィルタリングの部分については、全く自信が無いので、間違っていたらコメント等で突っ込んでいただけると凄く嬉しいです。

ちなみにルータの環境は、一般的な PPPoE でグローバル IPv4 が PP インタフェースに当たっていて、LAN 内クライアントは IP マスカレードで LAN1 インタフェースからインターネットへ出て行っているようなものを想定しています。

  • ネットワーク条件

    • RTX810 の LAN1 IPv4:
      192.168.1.1/24
    • RTX810 の LAN1 IPv6 :
      2001:DB8:1:1::1/64
    • トンネルのエンドポイント IPv4 :
      192.0.2.1
    • トンネル内サーバ側 IPv6 :
      2001:DB8:1:2::1/64
    • トンネル内クライアント側 IPv6 :
      2001:DB8:1:2::2/64
    • 割り当てられたネットワーク :
      2001:DB8:1:1::/64

    上記の情報について、トンネル関係の IPv4, IPv6 や、割り当てられたネットワークの情報は、HE でトンネルを設定した際に表示されます。
    また、HE 側の管理画面で、トンネルの MTU 値は「1280」にしておきます。

    以下は、RTX810 への設定です。コンソールなり、SSH なりで設定します。設定を行う前に、既存の設定は必ずバックアップしておきます。

  • LAN1 インタフェースに IPv6 アドレスを当てる

    ipv6 lan1 address 2001:DB8:1:1::1/64
  • IPv6 トンネルを通す IPv4 フィルタと静的マスカレードを設定する

    ip filter 601 pass 192.168.1.1 192.0.2.1 ipv6 * *
    ip filter 602 pass 192.0.2.1 192.168.1.1 ipv6 * *
    ip pp secure filter in … 602 …
    ip pp secure filter out … 601 …
    nat descriptor type 101 masquerade
    nat descriptor address outer 101 ipcp
    nat descriptor address inner 101 auto
    nat descriptor masquerade static 101 1 192.168.1.1 ipv6
  • IPv6 用フィルタを定義する。

    # 入力・出力方向共通静的フィルタ (Windows ファイル共有は通過させない)
    ipv6 filter 101 reject-nolog * * udp,tcp 135 *
    ipv6 filter 102 reject-nolog * * udp,tcp * 135
    ipv6 filter 103 reject-nolog * * udp,tcp netbios_ns-netbios_ssn *
    ipv6 filter 104 reject-nolog * * udp,tcp * netbios_ns-netbios_ssn
    ipv6 filter 105 reject-nolog * * udp,tcp 445 *
    ipv6 filter 106 reject-nolog * * udp,tcp * 445
    # 入力方向 ICMP 静的フィルタ (一部の ICMP タイプだけ通過させる)
    ipv6 filter 111 pass * * icmp6 1
    ipv6 filter 112 pass * * icmp6 2
    ipv6 filter 113 pass * * icmp6 3
    ipv6 filter 114 pass * * icmp6 4
    ipv6 filter 115 pass * * icmp6 128
    ipv6 filter 116 pass * * icmp6 129
    # 入力方向静的フィルタ (established なパケットしか基本通過させない)
    ipv6 filter 121 reject-nolog 2001:DB8:1:1::/64 * * * *
    ipv6 filter 122 reject-nolog * 2001:DB8:1:2::2 * ssh
    ipv6 filter 123 reject-nolog * 2001:DB8:1:2::2 * telnet
    ipv6 filter 124 reject-nolog * 2001:DB8:1:2::2 * www
    ipv6 filter 125 reject-nolog * 2001:DB8:1:1::1 * ssh
    ipv6 filter 126 reject-nolog * 2001:DB8:1:1::1 * telnet
    ipv6 filter 127 reject-nolog * 2001:DB8:1:1::1 * www
    ipv6 filter 128 reject-nolog * 2001:DB8:1:1::/64 tcp * ident
    ipv6 filter 129 pass * 2001:DB8:1:1::/64 udp domain *
    ipv6 filter 130 pass * 2001:DB8:1:1::/64 established
    ipv6 filter 131 reject-nolog * * * * *
    # 出力方向静的フィルタ (ほとんどスルー)
    ipv6 filter 141 reject-nolog * 2001:DB8:1:1::/64 * * *
    ipv6 filter 142 pass * * * * *
    ipv6 filter 143 reject-nolog * * * * *
    # 出力方向ダイナミックフィルタ (何となく)
    ipv6 filter dynamic 101 * * ftp
    ipv6 filter dynamic 102 * * domain
    ipv6 filter dynamic 103 * * www
    ipv6 filter dynamic 104 * * smtp
    ipv6 filter dynamic 105 * * pop3
    ipv6 filter dynamic 106 * * tcp
    ipv6 filter dynamic 107 * * udp

    上記は、設定後、インターネット側から LAN1 インタフェース側の機器に対して nmap -6 してみて、大丈夫ではあったが、自信は無い。

  • トンネルインタフェースを設定する

    tunnel select 1
     tunnel encapsulation ipip
     tunnel endpoint address 192.168.1.1 192.0.2.1
     ipv6 tunnel address 2001:DB8:1:2::2/64
     ip tunnel mtu 1280
     ipv6 tunnel secure filter in 101 102 103 104 105 106 111 112 113 114 115 116 121 122 123 124 125 126 127 128 129 130 131
     ipv6 tunnel secure filter out 101 102 103 104 105 106 141 142 143 dynamic 101 102 103 104 105 106 107
     tunnel enable 1
  • IPv6 のデフォルトゲートウェイの設定と LAN1 側にルータ広告を行い、IPv6 パケットを扱うようにする

    ipv6 route default gateway tunnel 1
    ipv6 prefix 1 2001:DB8:1:1::/64
    ipv6 lan1 rtadv send 1
    ipv6 routing on

これで、RTX810 の LAN1 インタフェースに接続した、IPv6 が自動設定された iMac から http://www.kame.net/ にアクセスしたら、カメは踊り・・ません。

ping6 www.kame.net して、ping6 が通るにもかかわらず、です。

通常デュアルスタック環境において、双方がネイティブ IPv6 アドレスを持っている場合、普通は IPv6 で通信が行われるのですが、OS X Lion 以降では、Happy Eyeballs が実装されているらしく、必ずしも IPv6 で通信されるとは限らないため、のようです。

Linux とかだと、こう言う場合でも多分 IPv6 が優先されそうな気がします。その場合でも 6to4 なアドレスに対しては、常に IPv4 が優先されるはずです。(/etc/gai.conf をさわれば優先度を変更できる)

参考サイト

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です