Как запустить DHCPcd только на интерфейсе eth1

У меня есть несколько сетевых интерфейсов - eth0, eth1. ETH0 подключен к изолированной локальной сети (с коммутатором) и имеет 2 статических IP-адреса. Он был настроен с помощью файла /etc/network/interfaces и все работает довольно хорошо.

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0

iface eth0 inet static
address 192.168.54.254
gateway 192.168.54.1
netmask 255.255.255.0
broadcast 192.168.0.255

auto eth0:1

iface eth0:1 inet static
address 192.168.168.110
gateway 192.168.168.1
netmask 255.255.255.0
broadcast 192.168.0.255

Интерфейс ETH1 должен быть подключен к Интернету и должен использовать DHCP для получения правильного IP адреса от главного маршрутизатора. Когда я запускаю sudo systemctl status dhcpcd.service, становится ясно, что dhcpcd конфликтует с /etc/network/interfaces.

Jun 03 13:09:17 raspberrypi systemd[1]: Starting dhcpcd on all interfaces...
Jun 03 13:09:17 raspberrypi dhcpcd[1210]: Not running dhcpcd because /etc/network/interfaces
Jun 03 13:09:17 raspberrypi dhcpcd[1210]: defines some interfaces that will use a
Jun 03 13:09:17 raspberrypi dhcpcd[1210]: DHCP client or static address

Однако я нашел одно решение, которое работает, но я не уверен, считается ли оно лучшей практикой. Когда я выполняю sudo dhcpcd eth1, я могу запустить DHCP только на eth1. Я планирую создать системную службу, которая будет выполнять sudo dhcpcd eth1 при каждом запуске.

Я видел в интернете, что некоторые люди могут выполнить sudo systemctl enable dhcpcd@eth1.service, но у меня нет такой службы, и я получаю ошибку:

Failed to enable unit: Unit file dhcpcd@eth1.service does not exist.

Правилен ли мой подход к созданию пользовательской службы с помощью sudo dhcpcd eth1?

0
задан 3 June 2021 в 14:49
1 ответ

Нет, ваш подход неверен. Raspbian по умолчанию использует dhcpcd вместо / etc / network / interfaces (который считается устаревшим). Но поскольку вы уже настроили свои статические IP-адреса через этот файл, вы все равно можете добавить к нему eth1 и включить для него DHCP. Т.е. в старом стиле, например:

auto eth1
allow-hotplug eth1
iface eth1 inet dhcp

Просто добавьте эти строки в конец вашего / etc / network / interfaces и перезагрузитесь.

На самом деле это считается лучшим подходом со стороны «создателей» Debian, а файл dhcpcd.conf считается небезопасным. Также кажется, что он не позволяет создавать псевдонимы обычным способом.

Или вместо этого, если вы предпочитаете использовать dhcpcd, вы можете указать ему не связываться с eth0 и настроить DHCP только на eth1 в / etc / dhcpcd.conf :

denyinterfaces eth0

См. также этот вопрос по проблеме: https://raspberrypi.stackexchange.com/questions/45330/set-multiple-static-ip-in-dhcpcd-conf-raspbian- 8-Джесси

1
ответ дан 28 July 2021 в 14:06

Теги

Похожие вопросы