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 может это сделать, см. Этот комментарий в другом ответе для попытки решить эту проблему.)

Другие вопросы по тегам