Closed kitakou0313 closed 3 years ago
とりあえずHostAからSSHする
user@Host-A:~$ ssh user@172.17.0.1
user@172.17.0.1's password:
██╗ ██████╗████████╗███████╗ ██████╗██████╗ ██████╗ ██████╗ ██╗
██║██╔════╝╚══██╔══╝██╔════╝██╔════╝╚════██╗██╔═████╗╚════██╗███║
██║██║ ██║ ███████╗██║ █████╔╝██║██╔██║ █████╔╝╚██║
██║██║ ██║ ╚════██║██║ ██╔═══╝ ████╔╝██║██╔═══╝ ██║
██║╚██████╗ ██║ ███████║╚██████╗███████╗╚██████╔╝███████╗ ██║
╚═╝ ╚═════╝ ╚═╝ ╚══════╝ ╚═════╝╚══════╝ ╚═════╝ ╚══════╝ ╚═╝
Last login: Sat Aug 28 14:10:59 2021 from 192.168.14.1
user@Host-A:~$
なんかHostAになっちゃう…
dockerのipレンジとHost2
のipのレンジがかぶってるよね
user@Host-A:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 9c:a3:ba:32:6b:b0 brd ff:ff:ff:ff:ff:ff
inet 192.168.14.1/24 brd 192.168.14.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::9ea3:baff:fe32:6bb0/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:7a:61:32:5e brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
dokerネットワーク用ののnicとHostBのIPが一致してるせいで結局自分に戻ってきてしまっている
dockerが使うIPのレンジを変更
user@Host-A:~$ sudo cat /etc/docker/daemon.json
{
"bip": "173.20.0.254/24"
}
user@Host-A:~$
docker0のipも変更になった
user@Host-A:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 9c:a3:ba:32:6b:b0 brd ff:ff:ff:ff:ff:ff
inet 192.168.14.1/24 brd 192.168.14.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::9ea3:baff:fe32:6bb0/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:7a:61:32:5e brd ff:ff:ff:ff:ff:ff
inet 173.20.0.254/24 brd 173.20.0.255 scope global docker0
valid_lft forever preferred_lft forever
ざぁ〜こ♥ よわ〜い♥ 10分かからない♥
user@Host-A:~$ ssh user@172.17.0.1
user@172.17.0.1's password:
██╗ ██████╗████████╗███████╗ ██████╗██████╗ ██████╗ ██████╗ ██╗
██║██╔════╝╚══██╔══╝██╔════╝██╔════╝╚════██╗██╔═████╗╚════██╗███║
██║██║ ██║ ███████╗██║ █████╔╝██║██╔██║ █████╔╝╚██║
██║██║ ██║ ╚════██║██║ ██╔═══╝ ████╔╝██║██╔═══╝ ██║
██║╚██████╗ ██║ ███████║╚██████╗███████╗╚██████╔╝███████╗ ██║
╚═╝ ╚═════╝ ╚═╝ ╚══════╝ ╚═════╝╚══════╝ ╚═════╝ ╚══════╝ ╚═╝
Last login: Tue Aug 3 14:06:54 2021 from 172.17.255.254
user@Host-B:~$
お世話になっております。チームkstmです。
本事象の原因としては、以下の要因が考えられます。
HostA
からHostB
へsshすると、HostA
上に接続されてしまう
user@Host-A:~$ ssh user@172.17.0.1
user@172.17.0.1's password:
██╗ ██████╗████████╗███████╗ ██████╗██████╗ ██████╗ ██████╗ ██╗
██║██╔════╝╚══██╔══╝██╔════╝██╔════╝╚════██╗██╔═████╗╚════██╗███║
██║██║ ██║ ███████╗██║ █████╔╝██║██╔██║ █████╔╝╚██║
██║██║ ██║ ╚════██║██║ ██╔═══╝ ████╔╝██║██╔═══╝ ██║
██║╚██████╗ ██║ ███████║╚██████╗███████╗╚██████╔╝███████╗ ██║
╚═╝ ╚═════╝ ╚═╝ ╚══════╝ ╚═════╝╚══════╝ ╚═════╝ ╚══════╝ ╚═╝
Last login: Sat Aug 28 14:10:59 2021 from 192.168.14.1
user@Host-A:~$
dockerはコンテナとホストの通信用にホスト側にdocker0
のnicを作成しますが、これに割り当てられるIPアドレスはデフォルトでは172.17.0.1
となっており、Host2
のIPと一致していたためHostA
自身に接続されていたと考えられます。
user@Host-A:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 9c:a3:ba:32:6b:b0 brd ff:ff:ff:ff:ff:ff
inet 192.168.14.1/24 brd 192.168.14.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::9ea3:baff:fe32:6bb0/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:7a:61:32:5e brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
/etc/docker/daemon.json
にてdockerネットワークで使用されるIPアドレスのレンジをHostB
と一致しないものとし、docker0
nicに割り当てられたIPアドレスをHostB
と異なるものとしました。
user@Host-A:~$ sudo cat /etc/docker/daemon.json
{
"bip": "173.20.0.254/24"
}
user@Host-A:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 9c:a3:ba:32:6b:b0 brd ff:ff:ff:ff:ff:ff
inet 192.168.14.1/24 brd 192.168.14.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::9ea3:baff:fe32:6bb0/64 scope link
valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:7a:61:32:5e brd ff:ff:ff:ff:ff:ff
inet 173.20.0.254/24 brd 173.20.0.255 scope global docker0
valid_lft forever preferred_lft forever
上記のように修正した結果、以下のようにHostA
からHostB
にssh接続ができることを確認しました。
user@Host-A:~$ ssh user@172.17.0.1
user@172.17.0.1's password:
██╗ ██████╗████████╗███████╗ ██████╗██████╗ ██████╗ ██████╗ ██╗
██║██╔════╝╚══██╔══╝██╔════╝██╔════╝╚════██╗██╔═████╗╚════██╗███║
██║██║ ██║ ███████╗██║ █████╔╝██║██╔██║ █████╔╝╚██║
██║██║ ██║ ╚════██║██║ ██╔═══╝ ████╔╝██║██╔═══╝ ██║
██║╚██████╗ ██║ ███████║╚██████╗███████╗╚██████╔╝███████╗ ██║
╚═╝ ╚═════╝ ╚═╝ ╚══════╝ ╚═════╝╚══════╝ ╚═════╝ ╚══════╝ ╚═╝
Last login: Tue Aug 3 14:06:54 2021 from 172.17.255.254
user@Host-B:~$
ご確認をお願いいたします。
概要
HostAにDockerをインストールした所、HostBとうまく通信できなくなった。原因を究明してHostAからHostBにsshができるようにしてほしい。
https://contest.ictsc.net/#/problems/e10642ac-a854-4ae9-a759-1ac1bd58ee24