Как остановить netplan от привязки шлюза по умолчанию на каждом интерфейсе

10

У меня свежая установка Ubuntu Server 17.10, однако проблема может повлиять на предыдущие версии, но я впервые столкнулся с такой ситуацией.

На сервере запущены 2 отдельные сетевые карты: одна для внутренней локальной сети (доверенная), а другая - публичное (ненадежное) подключение к Интернету через интернет-провайдера.

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

Аарон Мюррей
источник
Отличный вопрос! Это недостаток в netplan, в нем действительно отсутствует способ пропустить настройку шлюза по умолчанию для DHCP. Пожалуйста, отправьте сообщение
Матье Трюдел-Лапьер
Сегодня я отправил сообщение об ошибке, но обнаружил ошибку # 1724666, которая по своей сути очень похожа, поэтому я подал "аффекты-мне-тоже" и добавил комментарий . :)
Дон Фолкнер
Спасибо вам обоим за ваши предложения и действия с этим. Я вернулся к изменению своей инфраструктуры, чтобы использовать только один dhcp (статическая аренда), который требуется моим текущим провайдером, наряду со статическими IP-адресами, которыми я могу управлять внутри без шлюзов по умолчанию (как описано выше). Хотя это не оптимальный (предпочтительный) метод, он работает на данный момент. Недостатком является то, что когда адреса меняются во внутренней сети (что случается редко), они не управляются централизованно. Очень разочарован решением Ubuntu перейти на netplan с этой самой основной проблемой (среди прочих причин).
Аарон Мюррей
Эта ошибка говорит, что она исправлена, так есть ли ответ сейчас?
детски
Имеется в виду пинг @DonFaulkner в этом последнем комментарии.
18:00

Ответы:

4

Netplan v0.90 представляет новый набор опций: dhcp4-overrides( pull request ).

Итак, если ваша версия netplan.ioпакета достаточно новая ( см. Доступные версии здесь ), вы можете использовать это:

    eno1:
      dhcp4: yes
      dhcp4-overrides:
        use-routes: false
Люк Йегер
источник