CiscoルータでOCNのIPoEを使ってみる
先日、回線工事をしてOCNフレッツ光にしました。ただ、VDSLなのでどう頑張っても100Mbpsしか出ませんが…。 既存のPPPoEでもある程度、速度が出ますがせっかくですので今話題のネイティブIPv6を設定してみます。 使用機材はCisco systemsのC892FJです。
NTTのモデムはGigabitEthernet8に接続されています。ネット上の情報を参考にして、以下のコンフィグを投入しました。
ipv6 unicast-routing ipv6 cef ipv6 dhcp pool STATELESS import dns-server import domain-name interface GigabitEthernet8 ipv6 address autoconfig default ipv6 enable ipv6 dhcp client pd WAN_PREFIX interface Vlan10 ipv6 address WAN_PREFIX ::1:0:0:0:1/64 ipv6 enable ipv6 nd other-config-flag ipv6 dhcp server STATELESS
ipv6を状態を確認してみます。
Router#sh ipv6 int brief (略) GigabitEthernet8 [up/up] FE80::520F:80FF:FEB0:D027 2409:12:aaaa:bbbb:520F:80FF:FEB0:D027 Loopback0 [up/up] unassigned (略) Vlan10 [up/up] FE80::520F:80FF:FEB0:D014
FE80から始まるアドレスは各インターフェイスに割り当てられるリンクローカルユニキャストアドレスであり、2409から始まるアドレスはOCN(正確にはVNE事業者)から割り当てられたグローバルユニキャストアドレスです。
Vlan10にもグローバルユニキャストアドレスが割り当てられるはずと思っていたのですが、ありません。OCNのサイトを確認してみると以下の記述が。
IPv6パススルー機能(IPv6ブリッジ機能)に対応している必要があります。
debugメッセージを見ると確かにprefix割り当てできないと表示がありました。
*Dec 5 16:45:03.538: IPv6 DHCP: Sending SOLICIT to FF02::1:2 on GigabitEthernet8 *Dec 5 16:45:03.558: IPv6 DHCP: Received ADVERTISE from FE80::212:E2FF:FE70:F1F4 on GigabitEthernet8 *Dec 5 16:45:03.558: IPv6 DHCP: Status code (NOPREFIX-AVAIL) in ADVERTISE from FE80::212:E2FF:FE70:F1F4 on GigabitEthernet8
既存のvlanにブリッジするのは少々躊躇われるので、別にDMZとしてvlan 20セグメントを作成してそこにブリッジします。
interface GigabitEthernet8 bridge-group 1 interface Vlan20 description ## IPv6 Passthrough ## no ip address bridge-group 1 bridge-group 1 output-type-list 200 access-list 200 permit 0x86DD 0x0000 bridge 1 protocol vlan-bridge bridge 1 route ip
アクセスリストを使ってIPv6以外のパケットをフィルタリングしています。
各PCやサーバにはTrunkで接続します。
interface GigabitEthernet6 description ## To Server 1 ## switchport trunk native vlan 10 switchport trunk allowed vlan 1,2,10,20,1002-1005 switchport mode trunk no ip address
次に、サーバ(Linux)側でVLANに対応したインターフェイスを設定します。
jinglan@ubuntu:~$ sudo cat /etc/network/interfaces ... auto enp4s0f2.20 iface enp4s0f2.20 inet6 manual
Ubuntuではインターフェイス名の後に.VLAN番号でVLANを扱うことができます。
また、グローバルアドレスは外側から容易に接続できるのでiptablesを設定し不要な接続ができないようにします。
jinglan@ubuntu:~$ cat /etc/iptables/rules.v6 *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmpv6 -j ACCEPT -A INPUT -p udp --dport 546:547 -j ACCEPT -A INPUT -i lo -j ACCEPT COMMIT
上手く設定が反映されていれば以下のようにIPv6アドレスが設定されます。
jinglan@ubuntu:~$ ip a (略) 3: enp4s0f2.20@enp4s0f2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 52:54:00:23:f3:12 brd ff:ff:ff:ff:ff:ff inet6 2409:12:aaaa:bbbb:e559:81fc:f671:ad5e/64 scope global temporary dynamic valid_lft 599685sec preferred_lft 80735sec inet6 2409:12:aaaa:bbbb:6761:e8b1:4270:ba15/64 scope global dynamic mngtmpaddr noprefixroute valid_lft 2591891sec preferred_lft 604691sec inet6 fe80::b523:6f37:91d9:5c17/64 scope link noprefixroute valid_lft forever preferred_lft forever jinglan@ubuntu:~$ systemd-resolve --status Link 3 (enp4s0f2.20) Current Scopes: DNS LLMNR setting: yes MulticastDNS setting: no DNSSEC setting: no DNSSEC supported: no DNS Servers: 2404:1a8:7f01:b::3 2404:1a8:7f01:a::3 DNS Domain: flets-east.jp iptvf.jp
実際につながるか試験します。
jinglan@ubuntu:~$ ping ipv6.google.com -c 4 PING ipv6.google.com(kix05s01-in-x0e.1e100.net (2404:6800:400a:808::200e)) 56 data bytes 64 bytes from kix05s01-in-x0e.1e100.net (2404:6800:400a:808::200e): icmp_seq=1 ttl=54 time=13.9 ms 64 bytes from kix05s01-in-x0e.1e100.net (2404:6800:400a:808::200e): icmp_seq=2 ttl=54 time=14.0 ms 64 bytes from kix05s01-in-x0e.1e100.net (2404:6800:400a:808::200e): icmp_seq=3 ttl=54 time=14.0 ms 64 bytes from kix05s01-in-x0e.1e100.net (2404:6800:400a:808::200e): icmp_seq=4 ttl=54 time=13.8 ms --- ipv6.google.com ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3005ms rtt min/avg/max/mdev = 13.893/13.979/14.078/0.141 ms jinglan@ubuntu:~$
IPv6の名前解決・PINGが飛んだのでOKです。速度測定したところほぼ100Mbpsに近い値が出ました。
次回はDNS周りの設定をします。