Overview
インターネット接続に IPv6 autoconf を使用する場合の設定例です。自宅のインターネットプロバイダーは ASAHI ネットを使用しています。他のプロバイダーでも同じだと思いますが、無料の IPv6 オプションを有効にすることで、Router Advertisement (RA) が自宅に配信されるようになります。
この IPv6 アドレスの自動取得は、PPPoE のように認証を必要とせず、IPoE (IP over Ethernet) といいます。PPPoE は電話回線を前提とした技術をイーサネットに応用した方式(イーサネットフレーム上に PPP フレームをカプセル化)ですが、IPoE はシンプルにイーサネットでインターネットに接続する方式です。はじめて IPoE を聞いた時は何か新しい技術のように思いましたが、ただのイーサネットです。おそらく、インターネットプロバイダーが PPPoE に対する別の名前を定義する為にできた用語だと思いますが、広義では DHCP でインターネットに接続する場合も IPoE と考えられ、ちょっと分かりづらくなっていると思います。
firewall
IPv6 で接続する前にファイアウォールルールを作成しておきます。通常のインターネット利用では下記で十分でしょう。
set firewall interface eth0 in ipv6-name 'outside-in' set firewall interface eth0 local ipv6-name 'outside-local' set firewall ipv6-name outside-in default-action 'drop' set firewall ipv6-name outside-in enable-default-log set firewall ipv6-name outside-local default-action 'drop' set firewall ipv6-name outside-local enable-default-log set firewall ipv6-name outside-local rule 1500 action 'accept' set firewall ipv6-name outside-local rule 1500 protocol 'icmpv6' set firewall state-policy established action 'accept' set firewall state-policy invalid action 'drop' set firewall state-policy invalid log-level 'err' set firewall state-policy related action 'accept'
interfaces
RA は認証を必要としない為、設定もシンプルです。
set interfaces ethernet eth0 description 'outside' set interfaces ethernet eth0 ipv6 address autoconf
inside 側のインターフェイスは下記とします。
set interfaces ethernet eth1 address 'fd00:0000:0000:0000:0000:0000:0a00:0001/120' set interfaces ethernet eth1 description 'inside'
nat66
nat66 で IP マスカレードを設定します。ここまでの設定で、inside からインターネット接続が可能となります。
set nat66 source rule 5000 outbound-interface 'eth0' set nat66 source rule 5000 translation address 'masquerade'
余談ですが、例えば Sier で細かく役割が分かれていて、ネットワークエンジニア以外 IPv6 が分からず、ネットワーク機器で IPv6/IPv4 を変換してくれないか、という要望が良くあります。これは NAT64/DNS64 で解決できることがありますが、NAT64/DNS64 は単なる IP 通信に DNS も必要で、無駄に複雑になりますし、変換に伴うオーバーヘッドも気になります。アプリケーションによっては NAT64/DNS64 で対応できない場合もあると思います。なにより、NAT64/DNS64 は IPv4 から IPv6 への移行技術のひとつでであり、IPv6 と IPv4 は全く別のプロトコルです。NAT64/DNS64 が前面に出たネットワーク設計はありえません。End-to-End で IPv6 を使用できるようにするのが正しい設計です。
別の考え方として、アプリケーションプロキシで IPv6/IPv4 を変換する方法があります。例えば、Proxy (Squid…), SMTP (Postfix…) 等ですが、これは単にアプリケーションレベルで新規に接続を開始しているだけなので、特に意識することなく利用可能です。これまもちろん送信元アドレスがアプリケーションプロキシの IP アドレスになるので、それが気になるようなら使えません。
ここまで記載した通りですが、NAT64/DNS64 は本当にどうしようもない場合に限って検討を始まるのが正しいアプローチであり、使用するアプリケーションの仕様で使えない場合があることを留意すべきです。尚、現状の VyOS は NAT64/DNS64 を利用できません。
確認
IPv6 グローバル IP アドレスが取得できていることを確認します。
show interfaces ethernet eth0
デフォルトルートが自動設定されていることを確認します。RA の場合、ネクストホップアドレスはリンクローカルアドレスとなります。
show ipv6 route
LAN からインターネットに接続すると、IP マスカレードの NAT テーブルが作成されます。
show nat66 source translations