У мене є нова установка сервера ubuntu 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, тому він обмежував шлюз за промовчанням від провайдера і працював нормально.
З того часу я вирішив, що хочу використовувати статичну оренду для серверів (-ів) у своїй домашній лабораторії, і налаштував їх як внутрішній маршрутизатор. Але коли я налаштовую конфігурацію 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, оскільки інші машини все ще потребують шлюз за замовчуванням).