Ubuntu 18.04 netplan.io, как предотвратить создание 2 шлюзов по умолчанию
Когда я добавляю 2 интерфейса (eth0 LAN, eth1 WAN) со статическими IP-адресами (или, может быть, также с DHCP), сервер Ubuntu 18.04 добавляет 2 шлюза по умолчанию. Это не цель.
Как я могу определить только 1 шлюз по умолчанию?
Файл: /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses:
- 172.16.1.22/16
gateway4: 172.16.0.1
nameservers:
search: [mydomain.internal]
addresses: [172.16.1.2, 172.16.1.1]
eth1:
addresses:
- 172.19.3.235/24
gateway4: 172.19.3.1
nameservers:
addresses: [195.50.xxx.xxx,195.50.xxx.xxx]
ip route
показывает:
user @ server: ~ $ ip routeпо умолчанию через 172.19.3.1 dev eth1 proto staticпо умолчанию через 172.16.0.1 dev eth0 proto static172.16.0.0/16 dev eth0 прото ядро область ссылки src 172.16.1.22 172.19.3.0/24 dev eth1 Прото-ядро область ссылки src 172.19.3.134
2 стандартных GW......
В моем случае GW по умолчанию из eth1 - единственный, который мне нужен.
1 ответ
Просто удалите конфигурацию шлюза из eth0
интерфейс.
Опустить строку, которая говорит gateway4: 172.16.0.1
,
Вы все еще сможете достичь хозяев в 172.16.x.y
подсеть через eth0
, поскольку это напрямую связано там.
Если вам нужен доступ к другим хостам в этой сети (например, к интрасети с частными адресами в диапазонах RFC1918), просто добавьте статические маршруты для доступа к этим сетям с помощью шлюза 172.16.0.1. Смотрите эту ссылку для маршрутизации в Netplan, которая должна помочь вам добавить статические маршруты.
Если вы получаете свои IP-адреса через DHCP, они должны быть в основном такими же... Но тогда вам нужен DHCP-сервер, который передает вам IP-адрес eth0
не устанавливать какие-либо шлюзы... Кажется, в Netplan нет хорошего способа отключить шлюз, который вы получаете от DHCP. (Хотя networkd может это сделать, см. Этот комментарий в другом ответе для попытки решить эту проблему.)