※ 紹介記事の補足記事です。一般的には「こう書いてある理由を正しく理解していない」ことにより、勝手に自分流にアレンジすると「うまくいかない」事はよくある事。そこで、不足している情報の追記をしたいと思います。
参考:
※ 結論的には dev tun
= NAT/NAPT です。
server で指定する IPv4 アドレス
これが一番謎でした。なんのアドレスなのか。
server 10.8.0.0 255.255.255.0
答えは tun0
内に展開する、NAT/NAPT 空間用のネットワークアドレスです。
ku@ubunku:~$ ifconfig tun0
tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet 192.168.123.1 netmask 255.255.255.255 destination 192.168.123.2
inet6 fe80::9cbf:7c2b:171a:6fca prefixlen 64 scopeid 0x20<link>
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 100 (不明なネット)
RX packets 26 bytes 1956 (1.9 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 30 bytes 14751 (14.7 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
dev tun
を使用している場合は: NAT/NAPT を使い OpenVPN サーバーの名義で LAN 内のホストと通信をします。
今回 OpenVPN server からは 192.168.123.6 を貰っています。そこで、会社のルーター 192.168.2.1 に ping してみましょう。
ping 192.168.2.1
tcpdump を用いて tun0
内部をダンプすると… 一見 192.168.123.6 というクライアントから、192.168.2.1 というルーターに直接 ping して応答を得ているかのように見えます。
ku@ubunku:~$ sudo tcpdump -i tun0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
20:50:19.131993 IP 192.168.123.6 > LEDE.lan: ICMP echo request, id 1, seq 57, length 40
20:50:19.132421 IP LEDE.lan > 192.168.123.6: ICMP echo reply, id 1, seq 57, length 40
しかし実際は、ubunku (192.168.2.100) の IP アドレスから NAT/NAPT が掛かって出ていくことが判ります。
ku@ubunku:~$ sudo tcpdump -i eno1 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eno1, link-type EN10MB (Ethernet), capture size 262144 bytes
20:51:04.461825 IP ubunku > LEDE.lan: ICMP echo request, id 1, seq 58, length 40
20:51:04.462302 IP LEDE.lan > ubunku: ICMP echo reply, id 1, seq 58, length 40
というわけで、server
に指定するアドレスは架空のアドレス空間を指定しないといけないのでありました。
server 10.8.0.0 255.255.255.0