今回利用した VPNプロトコルが自宅ネットワークのコアルーターである RTX1200 に対応していなかったため、カプセリング用に別途 VyOS VM を用意しました。
自宅のルーターに VyOS を経由する研究室 VM への経路を静的経路として追加することで、自宅のネットワークと VM 間がシームレスに通信できるようになり、非常に快適になりました。
※図中の IP アドレスや AS 番号などはすべて仮のものです。図の通りに運用しているわけではありません。
「セキュリティがなってない!けしからん!」などの意見はご遠慮ください。書いてないだけなので。
# vyos-internet の設定ファイル
#!/bin/vbash
source /opt/vyatta/etc/functions/script-template
configure
# configure hostname
set system host-name vyos-internet
# configure VLAN interface
set interfaces ethernet eth0 vif 100 address 192.168.1.1/30
set interfaces ethernet eth0 vif 200 address 192.168.1.5/30
# configure latency emulation policy
set traffic-policy network-emulator DELAY-8 network-delay 8
set interfaces ethernet eth0 vif 100 traffic-policy out DELAY-8
set interfaces ethernet eth0 vif 200 traffic-policy out DELAY-8
# configure static route to each vyos
set protocols static route 192.168.100.0/24 next-hop 192.168.1.2
set protocols static route 192.168.200.0/24 next-hop 192.168.1.6
# 環境によって変えること
set protocols static route 0.0.0.0/0 next-hop 172.19.0.1
# configure nat
set nat source rule 1001 outbound-interface eth0
set nat source rule 1001 source address 192.168.100.0/24
set nat source rule 1001 translation address masquerade
set nat source rule 1002 outbound-interface eth0
set nat source rule 1002 source address 192.168.200.0/24
set nat source rule 1002 translation address masquerade
commit
exit
# vyos-65001 の設定ファイル
#!/bin/vbash
ip route del default
source /opt/vyatta/etc/functions/script-template
configure
set system host-name vyos-65001
# configure loopback
set interfaces loopback lo address 192.168.100.1/32
# configure VLAN interface
set interfaces ethernet eth0 vif 100 address 192.168.1.2/30
set interfaces ethernet eth0 vif 150 address 192.168.100.1/25
commit
# configure static route
set protocols static route 0.0.0.0/0 next-hop 192.168.1.1
commit
exit
# vyos-65002 の設定ファイル
#!/bin/vbash
ip route del default
source /opt/vyatta/etc/functions/script-template
configure
set system host-name vyos-65002
# configure loopback
set interfaces loopback lo address 192.168.200.1/32
# configure VLAN interface
set interfaces ethernet eth0 vif 200 address 192.168.1.6/30
set interfaces ethernet eth0 vif 250 address 192.168.200.1/25
# configure static route
set protocols static route 0.0.0.0/0 next-hop 192.168.1.5
commit
exit
各クライアントは起動時に VLAN を設定しています。
# client-65001 の設定
#!/bin/bash
# delete default route via docker network
ip route del default
# configure vlan
ip link add link eth0 name eth0.150 type vlan id 150
ip a add 192.168.100.2/25 dev eth0.150
ip link set dev eth0.150 up
# configure default route via vyos
ip route add default via 192.168.100.1
# wait for tty
while true
do
sleep 1
done
# client-65002 の設定
#!/bin/bash
# delete default route via docker network
ip route del default
# configure vlan
ip link add link eth0 name eth0.250 type vlan id 250
ip a add 192.168.200.2/25 dev eth0.250
ip link set dev eth0.250 up
# configure default route via vyos
ip route add default via 192.168.200.1
# wait for tty
while true
do
sleep 1
done