У меня есть новая установка сервера ubuntu 17.10, однако проблема может повлиять на предыдущие версии, но это первый случай, когда я столкнулся с этой ситуацией.
На сервере работают две отдельные сетевые карты, одна для внутренней локальной сети (доверенной), другая является общедоступной (ненадежной) связью с Интернетом с интернет-провайдером.
В прошлом я всегда настраивал внутреннее соединение как статическое и без дефолта шлюз, поскольку внешняя карта будет предоставляться через DHCP от моего провайдера (статический лизинг).
/etc/netplan/00-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
dhcp6: no
addresses: [192.168.1.xx/24]
nameservers:
addresses: [8.8.8.8,8.8.4.4]
eth1:
dhcp4: yes
dhcp6: no
Теперь это сработало нормально поскольку я не предоставлял строку gateway4 в конфигурации eth0, поэтому он привязывал шлюз по умолчанию от ISP и работал нормально.
С тех пор я решил, что хочу использовать статические лизинг для сервера (ов) в моем homelab и настроены как таковые на внутреннем маршрутизаторе. Но когда я настраиваю конфигурацию netplan как dhcp для обоих устройств, он добавляет шлюз по умолчанию для обоих интерфейсов (что имеет смысл, поскольку оба DHCP-сервера предоставляют шлюз).
> route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth0
0.0.0.0 173.xxx.xxx.1 0.0.0.0 UG 100 0 0 eth1
173.xxx.xxx.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
173.xxx.xxx.1 0.0.0.0 255.255.255.255 UH 100 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.1.1 0.0.0.0 255.255.255.255 UH 100 0 0 eth0
Как настроить netplan, поэтому адаптер eth0 (внутренний) игнорирует шлюз по умолчанию, предоставляемый сервером DHCP (без удаления шлюза на самом сервере DHCP, поскольку другим машинам по-прежнему нужен шлюз по умолчанию).