Докер отменяет мою конфигурацию маршрута по умолчанию
Новичок здесь, начиная с докера в Orange Pi 3 (клон Rasberry Pi).
Я пытаюсь настроить и запустить контейнер для докеров (bitwarden_rs), но когда я это сделаю, я потерял соединение с внешней сетью. Докер испортил мою таблицу маршрутов.
Конфигурация сети: у меня есть мост br0, который соединяет eth0 и wlan0. (Eth0 подключается к роутеру, wlan0 настроен в режиме AP)
Таблица при остановке контейнера:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 425 0 0 br0 <---OK
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 br0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.1.0 0.0.0.0 255.255.255.0 U 425 0 0 br0
192.168.2.0 0.0.0.0 255.255.255.0 U 425 0 0 br0
Таблица при запущенном контейнере (нет доступа к интернету снаружи)
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 0.0.0.0 0.0.0.0 U 205 0 0 docker0 <---NOT OK
default _gateway 0.0.0.0 UG 425 0 0 br0
link-local 0.0.0.0 255.255.0.0 U 205 0 0 docker0
link-local 0.0.0.0 255.255.0.0 U 230 0 0 vethed140ce
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 br0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.1.0 0.0.0.0 255.255.255.0 U 425 0 0 br0
192.168.2.0 0.0.0.0 255.255.255.0 U 425 0 0 br0
Что я могу сделать, чтобы это исправить? Это проблема с конфигурацией докера или, может быть, проблема с моей системой (armbian). Спасибо
3 ответа
В Ubuntu 20.04 я пробовал много методов, таких как запретить dhcpd обновлять маршрут или изменить конфигурацию NetworkManager, чтобы позволить сетевому администратору игнорировать * устройство . Ни один из вышеперечисленных способов не работает.
Я потратил много времени и обнаружил, что служба connman меняет маршрут по умолчанию, измените его файл конфигурации /etc/connman/main.conf, раскомментируйте следующую строку
#NetworkInterfaceBlacklist = vmnet,vboxnet,virbr,ifb,veth-,vb-
а также
systemctl restart connman
перезапустить службу connman. Проблема решилась в конце концов.
Ответить с"bip": "172.200.0.1/16"
неверно, подсеть 172.200.0.1/16 не локальная, это дикий интернет. См. любую службу whois, например https://browserleaks.com/ip/172.200.0.1 .
Это потому, что, как вы можете видеть, docker создает мост Linux с именем docker0. Вы можете изменить настройки по умолчанию для моста докеров, чтобы решить эту проблему. Настройте мостовую сеть по умолчанию, указав параметр bip вместе с нужной подсетью в файле daemon.json.
# vi /etc/docker/daemon.json
{
"bip": "172.200.0.1/16"
}
и перезапустите службу.
systemctl restart docker