show log include yuh

勉強したことの復習を兼ねて、IT関係(ネットワーク/サーバ/アプリケーション)についてまとめてます。たまに趣味のこと

スポンサーリンク

VyOSとIPoEを用いてスループット向上

概要

現在家のインターネットはフレッツを使っています。昼間はまだまともに使えるのですが夜になる1Mbpsを切るようになり、最近明らかに遅く感じることが多くなりました。
PPPoEで接続されているため、網終端装置がボトルネックになってる可能性があります。なので自宅のIPoEオプションを申し込み、IPv4 over IPv6 を試すことにしました。
今までもソフトウェアルータで接続していたため、今回もVyOSを利用してインターネット接続を行います。
ただこのままではサーバを公開することができなくなるため、同時にPPPoEにでも接続を行います。
結論からいうとIPoEにインターネット接続を変えると快適になりました。

構成図

今回最終的な構成は以下のようにします。

f:id:yunabe_net:20190512005631j:plain

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であるうちからほぼ最大でているようです。
体感も早くなったと感じられるのでとても満足の結果でした。