У меня Ubuntu 20.04 работает со статическим IP. При первом запуске у меня нет проблем, и маршруты выглядят нормально:
# ping 4.2.2.2
PING 4.2.2.2 (4.2.2.2) 56(84) bytes of data.
64 bytes from 4.2.2.2: icmp_seq=1 ttl=55 time=15.1 ms
64 bytes from 4.2.2.2: icmp_seq=2 ttl=55 time=13.2 ms
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 enp7s0
169.254.0.0 0.0.0.0 255.255.0.0 U 268 0 0 veth72d13a6
169.254.0.0 0.0.0.0 255.255.0.0 U 270 0 0 veth4282136
169.254.0.0 0.0.0.0 255.255.0.0 U 272 0 0 veth231344a
169.254.0.0 0.0.0.0 255.255.0.0 U 274 0 0 veth311ab6b
169.254.0.0 0.0.0.0 255.255.0.0 U 276 0 0 vethce07e31
169.254.0.0 0.0.0.0 255.255.0.0 U 278 0 0 veth634311f
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 enp7s0
Однако, как только я запускаю докер, маршрут изменяется и мой шлюз по умолчанию удаляется!
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 0.0.0.0 0.0.0.0 U 202 0 0 enp7s0
169.254.0.0 0.0.0.0 255.255.0.0 U 202 0 0 enp7s0
169.254.0.0 0.0.0.0 255.255.0.0 U 203 0 0 docker0
169.254.0.0 0.0.0.0 255.255.0.0 U 204 0 0 br-eaab0b58fedb
169.254.0.0 0.0.0.0 255.255.0.0 U 205 0 0 br-1c9dab29e4e2
169.254.0.0 0.0.0.0 255.255.0.0 U 206 0 0 br-22995aab5a8d
169.254.0.0 0.0.0.0 255.255.0.0 U 280 0 0 veth5abaa22
169.254.0.0 0.0.0.0 255.255.0.0 U 282 0 0 veth20fab69
169.254.0.0 0.0.0.0 255.255.0.0 U 284 0 0 veth45e9cab
169.254.0.0 0.0.0.0 255.255.0.0 U 286 0 0 vethab5951b
169.254.0.0 0.0.0.0 255.255.0.0 U 288 0 0 vethb6baf34
169.254.0.0 0.0.0.0 255.255.0.0 U 290 0 0 veth59c9ab9
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.20.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-ea0d0b58fedb
172.21.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-229956aa5a8d
172.28.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-1c938d29e4e2
192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 enp7s0
# ping 4.2.2.2
PING 4.2.2.2 (4.2.2.2) 56(84) bytes of data.
^C
--- 4.2.2.2 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1016ms
Чтобы решить эту проблему, я могу применить netplan, но затем докер сломается из-за отсутствия маршрутизации к контейнерам. Я решил снова вручную добавить шлюз по умолчанию, но это ручная задача, в которой нет необходимости.
Есть мысли?
Я столкнулся с той же проблемой в Ubuntu 20.04 LTS и Docker 18.09.2. route -n
показал тот же симптом. sudo netplan apply
временно вернет его. Я смог исправить это, создав /etc/docker/daemon.json
с установленным шлюзом по умолчанию.
{
"debug": true,
"default-gateway": "192.168.1.1"
}
После повторного запуска docker адрес шлюза, похоже, не изменился, и route -n
по-прежнему выглядел хорошо.