3ヶ月くらいずっと原因不明だったのがやっと解決したので備忘録として書き留めておく。
事象
⭕ローカルmac <-> ローカルmac
⭕ローカルmac <-> ローカルlinux
⭕ローカルmac <-> VPN越しmac
❌VPN越しmac <-> ローカルlinux
要は リモートで何故かlinuxマシンに接続できない! という状況が発生していた。
結論
VPN配下のIPアドレスとdocker0
のIPアドレスが衝突していることが原因だった。
- 今回の環境でVPN配下に割り振られるアドレス:
172.17.XXX.0/21
-
docker0
のIPアドレス初期値:172.17.0.1/16
これをdocker0
のIPアドレス設定を変更し、dockerサービスを再起動することで解決した。
(情シスはこの事象既知なんだろうか)
やったこと
わかっていること
- VPN越しmac -> ローカルlinuxへping:
Request timeout for icmp_seq XX
- ローカルlinux -> VPN越しmacへping:
From 172.17.0.1 icmp_seq=XX Destination Host Unreachable
事前に試してダメだったことのおさらい
今回の件には結局関係なかったけど一応チェックしといてねって箇所
- そもそもicmpが塞がれていないか(検証手段が正しいのか)
- mac同士のpingは通るので塞がれていないことがわかる
-
host.allow
およびhost.deny
の設定見直し-
hosts.allow
に172.19.
と記述しても変化なかった
-
- firewall設定
- 無効化しても変化なかった
自身のアドレスを確認
pingのエラーメッセージから、 172.17.0.1
とかいうよくわからん経路でコケてることは分かっていた
ふとdocker周りのネットワークが気になったので、自身のアドレスをすべて確認してみることにする
$ hostname -I
172.19.XXX.XXX 172.17.0.1 172.18.0.1 192.168.XXX.XXX ...
172.17.0.1
がいる???なんで???
$ ip a
### 略 ###
2: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.30.0.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 XXXX::XXXX:XXXX:XXXX:XXXX/64 scope link
### 略 ###
docker0
とかいう仮想インターフェイスがガッツリIPアドレス被りしている模様なので、これを変更してみる
ちなみにdocker0
はdocker for linuxのみでしか生成されず、これがlinuxへの疎通のみNGという理由にもなっていた
docker0の設定変更
先人の大変ありがたい資料があるので、参考に設定を進める
https://qiita.com/msi/items/d9cc1a2fd3f0fed3a901
$ sudo vi /etc/docker/daemon.json
{
"bip": "172.30.0.254/24"
}
$ sudo systemctl restart docker
$ ip a show docker0
2: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
inet 172.30.0.254/24 brd 172.30.0.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 XXXX::XXXX:XXXX:XXXX:XXXX/64 scope link
ping
# VPN越しmac -> ローカルlinux
$ ping 172.19.XXX.XXX
64 bytes from 172.19.XXX.XXX: icmp_seq=0 ttl=60 time=192.154 ms
64 bytes from 172.19.XXX.XXX: icmp_seq=1 ttl=60 time=238.941 ms
64 bytes from 172.19.XXX.XXX: icmp_seq=2 ttl=60 time=292.419 ms
64 bytes from 172.19.XXX.XXX: icmp_seq=3 ttl=60 time=257.762 ms
✌️success✌️