designetwork

ネットワークを軸としたIT技術メモ

ZOOT NATIVE & VyOSでDS-Lite (IPv4 over IPv6) インターネット接続する

f:id:daichi703n:20170904022032p:plain

こちらの記事でZOOT NATIVE & CentOSでのDS-Liteインターネットアクセスを実装した。

designetwork.hatenablog.com

しかし、CentOS (Linux) をルータとして運用していくのは面倒(慣れの問題)なので、VyOSで同等のDS-Lite環境を構築する。本当はフレッツ光PPPoEインターネットルータとして使用しているCisco ASA5505がいいのだが、ASAはIPv4 over IPv6トンネル(そもそもトンネル機能全般)をサポートしていないため、VyOSで代替する。

事前準備 ZOOT NATIVE(インターリンク)契約

今回使用するプロバイダであるInterlinkのZOOT NATIVEの契約に関してはこちらを参照。2ヶ月の無料お試し期間を利用してDS-Liteによるインターネット速度改善を検証する。

gigazine.net

ネットワーク構成

前記事でも記載の通り、Catalyst2960でoutside VLANとしてONUアクセスをマルチポイント化している。

f:id:daichi703n:20170904014729p:plain

VyOSインタフェース設定

VyOSにDS-Lite接続のための設定をする。(ベース設定・デフォルト設定は割愛)

inside側インタフェースはIPv4設定のみとする。

set interfaces ethernet eth0 address '192.168.1.2/24'
set interfaces ethernet eth0 duplex 'auto'
set interfaces ethernet eth0 smp_affinity 'auto'
set interfaces ethernet eth0 speed 'auto'
  • outside側物理NIC

outsideにはVLANインタフェースで接続する。物理インタフェースにはIPアドレス設定なし。

set interfaces ethernet eth1 duplex 'auto'
set interfaces ethernet eth1 smp_affinity 'auto'
set interfaces ethernet eth1 speed 'auto'
  • outsideサブインタフェース

outside側VLANインタフェースはZOOT NATIVEからRA・DHCPv6でIPv6アドレスを取得する。トンネルのアンダーレイインタフェースとなる。

set interfaces ethernet eth1 vif 99 ipv6 address 'autoconf'
set interfaces ethernet eth1 vif 99 ipv6 'disable-forwarding'
set interfaces ethernet eth1 vif 99 ipv6 dup-addr-detect-transmits '1'

IPv6アドレス・疎通確認

ZOOT NATIVEの契約が完了していることを確認した上で、outsideインタフェースでIPv6アドレスの取得、IPv6通信が可能となっていることを確認する。

2409:10:24e0:2000::/64IPv6グローバルアドレスを取得できている。

$ show interfaces ethernet eth1 vif 99
eth1.99@eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 00:0c:29:05:52:3b brd ff:ff:ff:ff:ff:ff
    inet6 2409:10:24e0:2000:20c:29ff:fe05:xxxx/64 scope global dynamic
       valid_lft 2591863sec preferred_lft 604663sec
    inet6 fe80::20c:29ff:fe05:xxxx/64 scope link

網内対向機器のリンクローカルアドレスが見えている。

$ show ipv6 neighbors
fe80::221:d8ff:fe9a:d1c1 dev eth1.99 lladdr 00:21:d8:9a:d1:c1 router REACHABLE
  • IPv6デフォルトルート

網内対向機器のリンクローカルアドレス宛にIPv6デフォルトルートが設定されている。設定されない場合はset protocols static route6 ::/0 next-hop xxxxで自分でも設定可能。

$ show ipv6 route
Codes: K - kernel route, C - connected, S - static, R - RIPng, O - OSPFv3,
       I - ISIS, B - BGP, * - FIB route.

S   ::/0 [1/0] via fe80::221:d8ff:fe9a:d1c1, eth1.99
K>* ::/0 via fe80::221:d8ff:fe9a:d1c1, eth1.99
C>* ::1/128 is directly connected, lo
C>* 2409:10:24e0:2000::/64 is directly connected, eth1.99
  • DS-Lite疎通確認

DS-Lite IPv4 over IPv6トンネルの対向機器宛の疎通確認をする。対向アドレスは2404:8e00::feed:100 (2017/9月現在) 今後変更の可能性あり。随時ZOOT NATIVE(インターリンク)、transix(インターネットマルチフィード)の最新情報を確認する。

$ ping 2404:8e00::feed:100
PING 2404:8e00::feed:100(2404:8e00::feed:100) 56 data bytes
64 bytes from 2404:8e00::feed:100: icmp_seq=1 ttl=59 time=8.07 ms
64 bytes from 2404:8e00::feed:100: icmp_seq=2 ttl=59 time=3.13 ms

$ traceroute 2404:8e00::feed:100
traceroute to 2404:8e00::feed:100 (2404:8e00::feed:100), 30 hops max, 80 byte packets
 1  2409:10:24e0:2000::fffe (2409:10:24e0:2000::fffe)  1.830 ms  2.385 ms  2.384 ms
 2  * * *
 3  * * *
 4  * * *
 5  * 2404:8e00:feed:ff00::a (2404:8e00:feed:ff00::a)  6.766 ms *
 6  2404:8e00:feed:ff07::2 (2404:8e00:feed:ff07::2)  8.938 ms  5.160 ms  5.095 ms
 7  2404:8e00::feed:100 (2404:8e00::feed:100)  12.168 ms  16.176 ms  12.136 ms

IPv4 over IPv6トンネル設定

transix (インターネットマルチフィード) 宛のIPv4 over IPv6 トンネルを設定する。トンネルIPv4アドレスの指定は必要ない。

local-ipはDHCPv6で割り当てられたアドレスを使用する。

set interfaces tunnel tun0 encapsulation 'ipip6'
set interfaces tunnel tun0 local-ip '2409:10:24e0:2000:20c:29ff:fe05:xxxx'
set interfaces tunnel tun0 multicast 'disable'
set interfaces tunnel tun0 remote-ip '2404:8e00::feed:100'
  • IPv4 ルーティング設定

トンネル宛にデフォルトルートを設定する。

set protocols static interface-route 0.0.0.0/0 next-hop-interface 'tun0'
  • OSPF設定(オプション)

私の環境ではCisco ASA5505がLAN-PCからのデフォルトゲートウェイになるようにしているため、VyOSとASAでOSPFにより経路交換している(Static再配信)。本当はVRRPなどでゲートウェイ冗長化したいが、ASAは未サポート。従来PPPoEは継続しているため、VyOS停止時には切り替わる。

IPv4疎通確認

ここまででDS-Lite通信に必要となる設定が完了している。

tracerouteで逆引きDNSを見ると、transix.jpを経由してIPv4インターネットアクセスできていることがわかる。

$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_req=1 ttl=61 time=4.56 ms
64 bytes from 8.8.8.8: icmp_req=2 ttl=61 time=4.04 ms

$ traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
 1  ike-gw00.transix.jp (14.0.9.66)  3.461 ms  3.910 ms  3.899 ms
 2  ike-bbrt10.transix.jp (14.0.9.65)  3.976 ms  3.961 ms  3.946 ms
 3  210.173.176.243 (210.173.176.243)  4.726 ms  4.555 ms  5.002 ms
 4  108.170.242.161 (108.170.242.161)  4.994 ms 108.170.242.97 (108.170.242.97)  4.984 ms  5.273 ms
 5  108.170.238.35 (108.170.238.35)  5.264 ms 108.170.236.181 (108.170.236.181)  5.254 ms 72.14.236.33 (72.14.236.33)  4.938 ms
 6  google-public-dns-a.google.com (8.8.8.8)  4.624 ms  4.387 ms  7.371 ms

速度比較

従来の@nifty IPv4 フレッツ光PPPoEと、ZOOT NATIVE DS-Lite (IPv4 over IPv6)での通信速度を比較する。

従来IPv4 フレッツ光PPPoE

@nifty IPv4 PPPoE + Cisco ASA5505
-> 約5.8Mbps

f:id:daichi703n:20170903163444p:plain

ZOOT NATIVE DS-Lite

ZOOT NATIVE DS-Lite + VyOS
-> 約61Mbps

f:id:daichi703n:20170904021328p:plain

約10倍の通信速度(スループット)となっている。ESXiの都合上、VyOSは100Mbps 1NIC構成となっているため頭打ちとなっているが、1Gbps-NICを使用すればさらに速度向上すると考えられる。

IPoEも使用可能

ZOOT NATIVEはDS-LiteとともにIPoE方式でのIPv6ネイティブ通信もサポートしている。そのため、こちらの記事で書いたCisco ASA 5505 での IPv6 NAPT方式によるIPv6インターネットアクセスも可能。

designetwork.hatenablog.com

まとめ - ZOOT NATIVE & VyOS でDS-Lite (IPv4 over IPv6) インターネット接続する

VyOS を使用して、IPv6プロバイダZOOT NATIVE経由で transix (インターネットマルチフィード) へ DS-Lite (IPv4 over IPv6) インターネット接続した。これにより、IPv4インターネット網への通信速度が10倍程度向上した。引き続き無料期間はDS-Liteを使用し、ZOOT NATIVEを継続利用するか検討する。