SoftetherVPNサーバーマネージャで設定後、
(tap_vlan仮想アダプタを作成。詳細は別にまとめます。)
tap_vlanが作成されているのが確認できます。
pi@raspberrypi:~ $ ifconfig br0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST> mtu 1500 inet 192.168.7.27 netmask 255.255.255.0 broadcast 192.168.7.255 inet6 2400:4050:****:****:ac61:b6da:2cfe:8f7 prefixlen 64 scopeid 0x0<global> inet6 fe80::****:****:eb9b:2e69 prefixlen 64 scopeid 0x20<link> ether dc:a6:**:70:13:** txqueuelen 1000 (Ethernet) RX packets 7856 bytes 1575188 (1.5 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4332 bytes 749302 (731.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST> mtu 1500 ether dc:a6:**:70:13:** txqueuelen 1000 (Ethernet) RX packets 7872 bytes 1686054 (1.6 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4332 bytes 749302 (731.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 ・・・ tap_vlan: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet6 fe80::****:****:eb9b:2e69 prefixlen 64 scopeid 0x20<link> ether 5e:cc:**:ae:17:** txqueuelen 1000 (Ethernet) RX packets 17 bytes 846 (846.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 15 bytes 2064 (2.0 KiB)
前回作成したブリッジにtap_vlanを追加します。
最終的に、起動時に自動的に追加されるようにするのですが、
一時的に追加して動作を確認します。
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
現在のブリッジの状態
pi@raspberrypi:~ $ brctl show br0 bridge name bridge id STP enabled interfaces br0 8000.dca6327013e4 no eth0
タップデバイスの名前の確認
pi@raspberrypi:~ $ ip tuntap tap_vlan: tap
ブリッジにtap_vlanを追加
pi@raspberrypi:~ $ sudo brctl addif br0 tap_vlan
追加後のブリッジの状態
pi@raspberrypi:~ $ brctl show br0 bridge name bridge id STP enabled interfaces br0 8000.5ecc74ae170e no eth0 tap_vlan
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
起動時に自動的に追加されるようにする。
以下を参考にしました。
pi@raspberrypi:/usr/local/bin/vpnserver $ sudo nano vpnserver-tap-enable.sh
下記を記入。「sleep 5」の部分、最初は「sleep 1」だったが、ブリッジが組まれないことが多かったため、「sleep 5」にした。
現在は、何回再起動しても問題なくブリッジが組まれている。
Softetherのタップとの起動タイミングングの問題か?
#!/bin/sh TAP_DEVICE=tap_vlan BR_STATUS=`/sbin/brctl show br0 | grep ${TAP_DEVICE} | wc -l` LOOP_CNT=0 while [ $BR_STATUS = 0 ] do sleep 5 /sbin/brctl addif br0 ${TAP_DEVICE} if [ $? -ne 0 ]; then break fi LOOP_CNT=$(( LOOP_CNT + 1 )) if [ ${LOOP_CNT} = 10 ]; then break fi done exit 0
pi@raspberrypi:/usr/local/bin/vpnserver $ ls Authors.txt Makefile server_log backup.vpn_server.config packet_log vpncmd chain_certs ReadMeFirst_Important_Notices_cn.txt vpnserver code ReadMeFirst_Important_Notices_en.txt vpn_server.config hamcore.se2 ReadMeFirst_Important_Notices_ja.txt vpnserver-tap-enable.sh lang.config ReadMeFirst_License.txt lib security_log pi@raspberrypi:/usr/local/bin/vpnserver $ sudo chmod +x vpnserver-tap-enable.sh
pi@raspberrypi:/usr/local/bin/vpnserver $ sudo nano /etc/systemd/system/softether-vpn.service
下記を記入
[Unit] Description=SoftEther VPN Server After=network.target network-online.target [Service] ExecStart=/usr/local/bin/vpnserver/vpnserver start ExecStop=/usr/local/bin/vpnserver/vpnserver stop ExecStartPost=/usr/local/bin/vpnserver/vpnserver-tap-enable.sh Type=forking RestartSec=3s [Install] WantedBy=multi-user.target
.serviceを編集したので、念のためdaemon-reloadする。
pi@raspberrypi:~ $ sudo systemctl daemon-reload
pi@raspberrypi:/usr/local/bin/vpnserver $ sudo reboot
再起動後、自動的に追加されているか確認する。
pi@raspberrypi:~ $ brctl show bridge name bridge id STP enabled interfaces br0 8000.5ecc74ae170e no eth0 tap_vlan
ブリッジが成功するとSoftether VPNサーバー側のIPテーブルに以下のように、Raspberry Piが接続されているLAN内のIPアドレスが列挙されてくる。ここにIPが出てきていなければPINGも飛ばない。
ちなみに、ブリッジされてないと以下のようになる。192.168.21.1などLAN内のIPが出てこない。