はじめに
インターリンクのフレッツ接続 ZOOT NEXTの無料オプションサービスIPv6接続サービス(PPPoE方式)をEdgeRouter4に設定したときのメモです。
EdgeRoute Xでも同手順で設定可能です。
今更pppoeでのIPv6ですが、現状接続速度に不満もなくIPoEよりも若干安いので。。。
前提条件
- ファームウェア Ver 2系
- eth0 IPv4(PPPOE)でwanと接続
- eth1 IPv6(PPPOE)でwanと接続
- eth2 IPv4/IPv6でLANと接続
- eth3 未使用
ポートの使用状況が異なる場合や、スイッチやブリッジを作成している場合は以下ポートの読み替えやスイッチ・ブリッジの設定を変更してください。
IPv6接続サービス(PPPoE方式)の申込
インターリンクのマイメニューからIPv6接続サービスの申込を行ってください。
IPv6用の接続IDが払い出されます。
ONUとEdgeRoute間にスイッチを追加
通常はONUとEdgeRouteを直接LANケーブルで接続していると思います。
ONUとEdgeRouter間にスイッチを入れてONU、EdgeRouterのeth0、EdgeRouterのeth1を接続します。
ONUとEdgeRouterを1:1で接続しても良いのですが、IPv6設定中にIPv4に影響を及ぼすことやEdgeRouterのポートも開いていることからIPv4とIPv6でWAN側のポートを分けました。
スイッチのLEDでIPv4とIPv6の通信状況が視覚的に分かるってのも良いです。
firewallの設定
IPv4では通常lan内はプライベートアドレスになるためwan⇒lanの通信については直接通信できず、必要な分だけport-forwardを設定していきますが、IPv6ではLAN内もグローバルアドレスになるのでfirewallが無いとIPv6では外部からアクセスし放題になります。
IPv6はデフォルトではfirewallで全通信を拒否し、必要な分だけ穴開けします。
- wan⇒router
お約束&デフォルトは全てdrop&dchpとicmpを許可
set firewall ipv6-name WANv6_LOCAL description 'WAN inbound traffic to the router'
set firewall ipv6-name WANv6_LOCAL enable-default-log
set firewall ipv6-name WANv6_LOCAL default-action drop
set firewall ipv6-name WANv6_LOCAL rule 10 action accept
set firewall ipv6-name WANv6_LOCAL rule 10 description 'Allow established/related sessions'
set firewall ipv6-name WANv6_LOCAL rule 10 state established enable
set firewall ipv6-name WANv6_LOCAL rule 10 state related enable
set firewall ipv6-name WANv6_LOCAL rule 20 action drop
set firewall ipv6-name WANv6_LOCAL rule 20 description 'Drop invalid state'
set firewall ipv6-name WANv6_LOCAL rule 20 state invalid enable
set firewall ipv6-name WANv6_LOCAL rule 30 action accept
set firewall ipv6-name WANv6_LOCAL rule 30 description 'Allow IPv6 icmp'
set firewall ipv6-name WANv6_LOCAL rule 30 protocol ipv6-icmp
set firewall ipv6-name WANv6_LOCAL rule 40 action accept
set firewall ipv6-name WANv6_LOCAL rule 40 description 'allow dhcpv6'
set firewall ipv6-name WANv6_LOCAL rule 40 destination port 546
set firewall ipv6-name WANv6_LOCAL rule 40 protocol udp
set firewall ipv6-name WANv6_LOCAL rule 40 source port 547
- wan⇒lan
お約束&デフォルトは全てdrop&icmpを許可
set firewall ipv6-name WANv6_IN default-action drop
set firewall ipv6-name WANv6_IN description 'WAN inbound traffic forwarded to LAN'
set firewall ipv6-name WANv6_IN enable-default-log
set firewall ipv6-name WANv6_IN rule 10 action accept
set firewall ipv6-name WANv6_IN rule 10 description 'Allow established/related sessions'
set firewall ipv6-name WANv6_IN rule 10 state established enable
set firewall ipv6-name WANv6_IN rule 10 state related enable
set firewall ipv6-name WANv6_IN rule 20 action drop
set firewall ipv6-name WANv6_IN rule 20 description 'Drop invalid state'
set firewall ipv6-name WANv6_IN rule 20 state invalid enable
set firewall ipv6-name WANv6_IN rule 30 action accept
set firewall ipv6-name WANv6_IN rule 30 description 'Allow IPv6 ICMP'
set firewall ipv6-name WANv6_IN rule 30 protocol icmpv6
- 必要なポートを穴開け
以下の例だとdns/http/httpsの例
IPアドレスは"xxxx:xxxx:xxxx:xxxx::/64"のような指定も可能
set firewall ipv6-name WANv6_IN rule 100 action accept
set firewall ipv6-name WANv6_IN rule 100 description dns
set firewall ipv6-name WANv6_IN rule 110 destination address 'xxxx:xxxx:xxxx::xxxx'
set firewall ipv6-name WANv6_IN rule 100 destination port 53
set firewall ipv6-name WANv6_IN rule 100 protocol tcp_udp
set firewall ipv6-name WANv6_IN rule 110 action accept
set firewall ipv6-name WANv6_IN rule 110 description http
set firewall ipv6-name WANv6_IN rule 110 destination address 'xxxx:xxxx:xxxx::xxxx'
set firewall ipv6-name WANv6_IN rule 110 destination port 80
set firewall ipv6-name WANv6_IN rule 110 protocol tcp
set firewall ipv6-name WANv6_IN rule 110 action accept
set firewall ipv6-name WANv6_IN rule 110 description https
set firewall ipv6-name WANv6_IN rule 110 destination address 'xxxx:xxxx:xxxx::xxxx'
set firewall ipv6-name WANv6_IN rule 110 destination port 443
set firewall ipv6-name WANv6_IN rule 110 protocol tcp
- MSSクランプの設定
ちょっと自信がないのですが、色々調査&自分で試した結果インターリンクのIPv6(pppoe)使用時は1394で良いようです。
set firewall options mss-clamp6 interface-type pppoe
set firewall options mss-clamp6 mss 1394
eth1(IPv6 PPPOE)の設定
まずはeth1の設定をリセット
interfaces ethernet eth1
pppoeのID/PASSは良い感じに書き換えてください。
set interfaces ethernet eth1 pppoe 1 dhcpv6-pd pd 1 interface eth2 service slaac
↑このeth2はLANに設定されるポートを指定してください。
この行でeth2にIPv6アドレスを設定しています。
set interfaces ethernet eth1 description 'Internet (PPPoE) IPv6'
set interfaces ethernet eth1 duplex auto
set interfaces ethernet eth1 pppoe 1 default-route auto
set interfaces ethernet eth1 pppoe 1 dhcpv6-pd pd 1 interface eth2 service slaac
set interfaces ethernet eth1 pppoe 1 dhcpv6-pd rapid-commit enable
set interfaces ethernet eth1 pppoe 1 firewall in ipv6-name WANv6_IN
set interfaces ethernet eth1 pppoe 1 firewall in name WAN_IN
set interfaces ethernet eth1 pppoe 1 firewall local ipv6-name WANv6_LOCAL
set interfaces ethernet eth1 pppoe 1 firewall local name WAN_LOCAL
set interfaces ethernet eth1 pppoe 1 ipv6 address autoconf
set interfaces ethernet eth1 pppoe 1 ipv6 dup-addr-detect-transmits 1
set interfaces ethernet eth1 pppoe 1 ipv6 enable
set interfaces ethernet eth1 pppoe 1 mtu 1454
set interfaces ethernet eth1 pppoe 1 name-server auto
set interfaces ethernet eth1 pppoe 1 password xxxxxxxxxx
set interfaces ethernet eth1 pppoe 1 user-id xxxxxxxxxx@xx.il24.net
set interfaces ethernet eth1 speed auto
eth2(LAN)の設定
IPv6設定前は以下の設定だけしていました。
set interfaces ethernet eth2 address 192.168.1.1/24
set interfaces ethernet eth2 description Lan
set interfaces ethernet eth2 duplex auto
set interfaces ethernet eth2 speed auto
IPv6では以下の設定を追加しています
殆どRouter Advertisement(RA、ルーター広告)の設定になりますが、詳細は各自調べてください。
IPv6ではクライアントはdhcpを使用せず、RAを使用してIPv6アドレスを自動設定します。(dhcpも使用できます)
set interfaces ethernet eth2 ipv6 address autoconf
set interfaces ethernet eth2 ipv6 dup-addr-detect-transmits 1
set interfaces ethernet eth2 ipv6 router-advert cur-hop-limit 64
set interfaces ethernet eth2 ipv6 router-advert default-lifetime 1800
set interfaces ethernet eth2 ipv6 router-advert default-preference high
set interfaces ethernet eth2 ipv6 router-advert link-mtu 0
set interfaces ethernet eth2 ipv6 router-advert managed-flag false
set interfaces ethernet eth2 ipv6 router-advert max-interval 200
set interfaces ethernet eth2 ipv6 router-advert min-interval 10
set interfaces ethernet eth2 ipv6 router-advert other-config-flag false
set interfaces ethernet eth2 ipv6 router-advert prefix '::/56' autonomous-flag true
set interfaces ethernet eth2 ipv6 router-advert prefix '::/56' on-link-flag true
set interfaces ethernet eth2 ipv6 router-advert prefix '::/56' preferred-lifetime 604800
set interfaces ethernet eth2 ipv6 router-advert prefix '::/56' valid-lifetime 2592000
set interfaces ethernet eth2 ipv6 router-advert reachable-time 0
set interfaces ethernet eth2 ipv6 router-advert retrans-timer 0
set interfaces ethernet eth2 ipv6 router-advert send-advert true
ウチでは別途内部用のネームサーバが有るのでそのサーバを指定していますが、EdgeRouterのdns forwardingを使うなら後述する方法でルーターのIPv6アドレスを調査してからname-serverを追加します。
set interfaces ethernet eth2 ipv6 router-advert name-server '2001:xxxx:xxxx:xxxx::x'
IPv6のルーティング設定
pppoe1の部分は通常ipv4がpppoe0、ipv6がpppoe1になるかと思いますが、正しくはip aやshow interfacesで調査してください。
set protocols static interface-route6 '::/0' next-hop-interface pppoe1
接続確認
ここまで設定すればipv6での接続が出来ていると思います。
EdgeRouter上でIPアドレスが割り振られているか確認してみます。
admin@EdgeRouter-4:~$ show interfaces
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface IP Address S/L Description
--------- ---------- --- -----------
eth0 - u/u Internet (PPPoE) IPv4
eth1 - u/u Internet (PPPoE) IPv6
eth2 192.168.1.1/24 u/u Lan
2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:3334/56
eth3 - u/D
lo 127.0.0.1/8 u/u
::1/128
pppoe0 61.206.120.198 u/u
pppoe1 - u/u
eth2にIPv6のアドレスが割り振られていればOKです。
うまく言っていないときはログが /var/log/vyatta/ppp_pppoe1.log に有ります。
割り振られたIPアドレスはメモっておいてください。
2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:3334/56
この場合56bitのアドレスが割り当てられているので、
2001:xxxx:xxxx:xx00::~2001:xxxx:xxxx:xxFF::まで使用することが出来ます。
ping ipv6.google.com を実行して問題なければルーターからはIPv6でWANと通信できています。
admin@EdgeRouter-4:~$ ping ipv6.google.com
PING ipv6.google.com(2404:6800:4004:825::200e (2404:6800:4004:825::200e)) 56 data bytes
64 bytes from 2404:6800:4004:825::200e (2404:6800:4004:825::200e): icmp_seq=1 ttl=117 time=11.1 ms
64 bytes from 2404:6800:4004:825::200e (2404:6800:4004:825::200e): icmp_seq=2 ttl=117 time=10.5 ms
ルーターに固定のIPv6アドレスを割り振る
ルーターには自動で設定されたIPアドレスが設定されていますが、このままだと不便なので別途指定のアドレスに変更します。
今回ルーターには 2001:xxxx:xxxx:xx00::1/56 のアドレスを割り振ります。
set interfaces ethernet eth2 address '2001:xxxx:xxxx:xx00::1/56'
また、eth2へ自動でのIPv6アドレス設定を削除します
delete interfaces ethernet eth1 pppoe 1 dhcpv6-pd pd 1 interface eth2
これでルーターのIPアドレスが固定になったので、dns等の各種サービスに設定出来ます。
クライアントからのアクセス
RAを受け入れるクライアントはこの時点でIPv6が設定されてIPv6で通信が出来るようになっているはずです。
ipv6のテストが行えるサイトで確認してください。