概要
現在家のインターネットはフレッツを使っています。昼間はまだまともに使えるのですが夜になる1Mbpsを切るようになり、最近明らかに遅く感じることが多くなりました。
PPPoEで接続されているため、網終端装置がボトルネックになってる可能性があります。なので自宅のIPoEオプションを申し込み、IPv4 over IPv6 を試すことにしました。
今までもソフトウェアルータで接続していたため、今回もVyOSを利用してインターネット接続を行います。
ただこのままではサーバを公開することができなくなるため、同時にPPPoEにでも接続を行います。
結論からいうとIPoEにインターネット接続を変えると快適になりました。
構成図
今回最終的な構成は以下のようにします。
- インターネットからローカルネットワークに入る通信はPPPoEのグローバルIPをポートフォワードする。
- ローカルネットワークのゲートウェイはVRRPで冗長化する
- デフォルトゲートウェイはActをIPoE, SbyをPPPoEにする
IPv4 over IPv6 設定例
ブリッジインターフェイスを作成する
各物理インターフェイスにブリッジするためにブリッジインターフェイスを作成する
set interfaces bridge br0 address '192.168.0.254/22' set interfaces bridge br0 aging '300' set interfaces bridge br0 hello-time '2' set interfaces bridge br0 ipv6 address 'autoconf' set interfaces bridge br0 ipv6 'disable-forwarding' set interfaces bridge br0 ipv6 dup-addr-detect-transmits '1'
使用するインターフェイスに適用する
今回グローバル面とローカル面の2つのインターフェイスを所属させる
set interfaces ethernet eth0 bridge-group bridge 'br0' set interfaces ethernet eth0 dhcpv6-options 'parameters-only' set interfaces ethernet eth0 duplex 'auto' set interfaces ethernet eth0 smp_affinity 'auto' set interfaces ethernet eth0 speed 'auto' set interfaces ethernet eth1 bridge-group bridge 'br0' set interfaces ethernet eth1 duplex 'auto' set interfaces ethernet eth1 smp_affinity 'auto' set interfaces ethernet eth1 speed 'auto'
IPv6アドレスを確認
下記のようにbr0に割り振られるIPv6アドレスを確認
show interfaces bridge br0
inet6 aaaa:bbbb:cccc:dddd:eeee:ffff:1111:2222/64 scope global dynamic
※ここで表示される aaaa:bbbb:cccc:dddd:eeee:ffff:1111:2222/64
はメモっておく
トンネルインターフェイスの作成
IPv4トラフィックを流すインターフェイスを設定する
local-ip は先ほど確認したアドレスを指定し、remote-ipは下記で確認する
www.mfeed.ad.jp
set interfaces tunnel tun0 encapsulation 'ipip6' set interfaces tunnel tun0 local-ip 'aaaa:bbbb:cccc:dddd:eeee:ffff:1111:2222' set interfaces tunnel tun0 multicast 'disable' set interfaces tunnel tun0 remote-ip '2404:8e00::feed:100'
※2404:8e00::feed:100 は2019/05/19 現在
デフォルトルートの設定
先ほど作成したトンネルインターフェイスに向けることで、IPv4のデフォルトルートがトンネルを抜けていく
set protocols static interface-route 0.0.0.0/0 next-hop-interface 'tun0'
LAN側のクライアントにIPv6アドレスを配布
Router Advertisement を用いてクライアントに割り振る
set interfaces bridge br0 ipv6 router-advert cur-hop-limit '64' set interfaces bridge br0 ipv6 router-advert default-preference 'high' set interfaces bridge br0 ipv6 router-advert link-mtu '0' set interfaces bridge br0 ipv6 router-advert managed-flag 'true' set interfaces bridge br0 ipv6 router-advert max-interval '10' set interfaces bridge br0 ipv6 router-advert other-config-flag 'true' set interfaces bridge br0 ipv6 router-advert prefix aaaa:bbbb:cccc:dddd::/64 autonomous-flag 'true' set interfaces bridge br0 ipv6 router-advert prefix aaaa:bbbb:cccc:dddd::/64 on-link-flag 'true' set interfaces bridge br0 ipv6 router-advert prefix aaaa:bbbb:cccc:dddd::/64 valid-lifetime '2592000' set interfaces bridge br0 ipv6 router-advert reachable-time '0' set interfaces bridge br0 ipv6 router-advert retrans-timer '0' set interfaces bridge br0 ipv6 router-advert send-advert 'true'
LAN側のクライアントにDNSを配布
DHCPv6を用いてクライアントにDNSを割り振る
set service dhcpv6-server shared-network-name dhcpv6-pool subnet aaaa:bbbb:cccc:dddd::/64 lease-time default '86400' set service dhcpv6-server shared-network-name dhcpv6-pool subnet aaaa:bbbb:cccc:dddd::/64 name-server '2001:4860:4860::8888' set service dhcpv6-server shared-network-name dhcpv6-pool subnet aaaa:bbbb:cccc:dddd::/64 name-server '2001:4860:4860::8844'
利用しない外からの通信を遮断する
デフォルトは遮断し、許可するものを追加していく
set firewall ipv6-name FWv6 default-action 'reject' set firewall ipv6-name FWv6 rule 10 action 'accept' set firewall ipv6-name FWv6 rule 10 protocol 'icmpv6' set firewall ipv6-name FWv6 rule 20 action 'accept' set firewall ipv6-name FWv6 rule 20 description 'DS-Lite' set firewall ipv6-name FWv6 rule 20 protocol '4' set firewall ipv6-name FWv6 rule 30 action 'accept' set firewall ipv6-name FWv6 rule 30 source address 'aaaa:bbbb:cccc:dddd::-aaaa:bbbb:cccc:dddd::' set firewall ipv6-name FWv6 rule 40 action 'accept' set firewall ipv6-name FWv6 rule 40 destination address 'aaaa:bbbb:cccc:dddd::-aaaa:bbbb:cccc:dddd::' set firewall ipv6-name FWv6 rule 40 state established 'enable' set firewall ipv6-name FWv6 rule 40 state related 'enable'
※aaaa:bbbb:cccc:dddd
配布するアドレスを指定する
PPPoEとの冗長化
VRRPを用いてデフォルトゲートウェイを冗長化する
IPoE Router Master
set interface ethernet eth1 vrrp vrrp-group 10 advertise-interval 1 set interface ethernet eth1 vrrp vrrp-group 10 preempt false set interface ethernet eth1 vrrp vrrp-group 10 virtual-address 192.168.0.254 set interface ethernet eth1 vrrp vrrp-group 10 sync-group 10 set interfaces ethernet eth1 vrrp vrrp-group 10 hello-source-address 192.168.0.254 set interface ethernet eth1 vrrp vrrp-group 10 priority 255
PPPoE Router backup
set interface ethernet eth1 vrrp vrrp-group 10 advertise-interval 1 set interface ethernet eth1 vrrp vrrp-group 10 preempt false set interface ethernet eth1 vrrp vrrp-group 10 virtual-address 192.168.0.254 set interface ethernet eth1 vrrp vrrp-group 10 sync-group 10 set interface ethernet eth1 vrrp vrrp-group 10 priority 255
↓PPPoEによる接続する過去の記事はこちら yunabe.hatenablog.com
VRRP の確認
下記コマンド現在どちらがマスター/バックアップになっているか確認できる
show vrrp
まとめ
設定事項としては以上で終了です。ちなみにスループットを図ってみるとPPPoEにて40Mbps だったのがIPoEでは91Mbpsでていました。PPPoEでもある程度でていますが、IPoEはVDSLであるうちからほぼ最大でているようです。
体感も早くなったと感じられるのでとても満足の結果でした。