Как DHCP, так и статические IP-адреса одновременно на одном интерфейсе

16

Мы можем использовать несколько IP-адресов для одного интерфейса в Linux (eg. eth0:0, eth0:1). Но можем ли мы использовать DHCP и статический IP одновременно? eth0:1должен иметь статический IP-адрес и eth0:0должен быть настроен с использованием DHCP.

Как мы можем достичь обоих?

Шантану
источник
Это вопрос о настройке NetworkManager?
Madneon

Ответы:

13

Да, это можно сделать. Однако вы обычно используете для этого eth0 и eth0: 0 вместо eth0: 0 и eth0: 1. Вы можете настроить файл / etc / network / interfaces следующим образом:

auto lo eth0 eth0:0
iface lo inet loopback

iface eth0 inet dhcp

iface eth0:0 inet static
    address ...
    netmask ...

Вы, вероятно, не хотите устанавливать шлюз на интерфейсе eth0: 0, потому что это может конфликтовать с настройками шлюза, которые вы получаете от DHCP. Если вы введете ручные настройки в / etc / network / interfaces, вы должны убедиться, что сетевой менеджер не пытается управлять вашими настройками. Это покрыто здесь .

jkt123
источник
9

После тщательного поиска ответа на ту же проблему я разработал решение, которое позволит Network Manager продолжать управлять вашими подключениями. Во-первых, обычно создайте DHCP-соединение в Network Manager, используя Edit Connections> Add. Это создаст файл, расположенный в / etc / NetworkManager / system-connections /. Откройте этот файл в текстовом редакторе с правами суперпользователя. Пример: sudo nano / etc / NetworkManager / system-connections / DHCPEthernet

Код будет выглядеть примерно так:

[802-3-ethernet]
duplex=full
mac-address=00:0E:C6:88:31:43

[connection]
id=DHCPEthernet
uuid=26af83f1-c48c-4454-9038-bbb4bec3e3a3
type=802-3-ethernet
timestamp=1405008541

[ipv6]
method=auto

[ipv4]
method=auto

Добавьте строку в разделе ipv4 для статического IP-адреса, который вы хотите добавить. Я использую 192.168.10.1 без шлюза для этого примера

address1=192.168.10.1/24,0.0.0.0

Сохраните файл и используйте Network Manager для отключения, а затем снова подключитесь к сети. Пинг подтвердит правильность работы обоих IP-адресов. Вывод ip addr подтверждает успех.

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 14:10:9f:d7:22:0b brd ff:ff:ff:ff:ff:ff
    inet 172.20.1.71/24 brd 172.20.1.255 scope global wlan0
       valid_lft forever preferred_lft forever
    inet6 fe80::1610:9fff:fed7:220b/64 scope link 
       valid_lft forever preferred_lft forever
3: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0e:c6:88:31:43 brd ff:ff:ff:ff:ff:ff
    inet 172.20.1.60/24 brd 172.20.1.255 scope global eth2
       valid_lft forever preferred_lft forever
    inet 192.168.10.1/24 brd 192.168.10.255 scope global eth2
       valid_lft forever preferred_lft forever
    inet6 fe80::20e:c6ff:fe88:3143/64 scope link 
       valid_lft forever preferred_lft forever
Эндрю Виан
источник
address1найденные здесь настройки фактически являются ipv4.addressesнастройками NetworkManager, если вы используете API или nmcli. В этом случае вы также должны ipv4.methodустановить «авто».
Дейв
После того, как я создаю соединение нормально, у меня все еще нет файлов в моем / etc / NetworkManager / system-connections /. Они хранятся где-то еще? Может быть, вещь SELinux?
Стив Йоргенсен
2

Я немного проверил и обнаружил, что в настоящее время можно создать эту конфигурацию с помощью nmcliинструмента. Фактически, это позволяет полностью контролировать NetworkManager. Страницы руководства для nmcli очень подробны и понятны. Смотрите man nmcliи man nm-settings.

Чтобы настроить конфигурацию в этом вопросе, проще всего отредактировать текущий профиль подключения. Найдите имя профиля из инструмента GUI NetworkManager и отредактируйте его с помощью редактора CLI (здесь это имя Ethernet connection):

$ sudo nmcli c edit 'Ethernet соединение'

=== | NMCLI интерактивный редактор соединений | ===

Редактирование существующего соединения «802-3-ethernet»: «Соединение Ethernet 1»

Введите «помощь» или «?» для доступных команд.
Введите «description [.]» Для подробного описания свойства.

Вы можете редактировать следующие настройки: соединение, 802-3-ethernet (ethernet), 802-1x, dcb, ipv4, ipv6
nmcli> goto ipv4
Вы можете редактировать следующие свойства: метод, dns, dns-search, dns-options, dns-priority, адреса, шлюз, маршруты, метрика маршрута, ignore-auto-routs, ignore-auto-dns, dhcp-hostname, dhcp -send-hostname, never-default, may-fail, dad-timeout, dhcp-timeout, dhcp-client-id, dhcp-fqdn
nmcli ipv4> установить ipv4.addresses {your_address_here} / {your_network_prefix_here} 
Вы также хотите установить для 'ipv4.method' значение 'manual'? [да]: нет 
nmcli ipv4> сохранить
Соединение «Ethernet соединение» (87fa8e41-7fe3-435a-a2f2-29a9c8084d2d) успешно обновлено.
nmcli ipv4> выйти

Части, выделенные жирным шрифтом, - это ваши входные данные, замените вещи в фигурных скобках настройками Отвечая noна вопрос о ipv4.methodсохранении конфигурации DHCP. После слов вам нужно отключить и снова включить конфигурацию, что можно сделать с помощью GUI-tools или nmcli.

Если вы хотите, также можно создать новое соединение из командной строки:

sudo nmcli -p connection add type ethernet ifname {your_interface_name} con-name MyConnection -- ipv4.addresses {your_address}/{your_prefix_length} ipv4.method auto

Опять же, замените вещи в фигурных скобках с вашими настройками.

Наконец, если вы все еще хотите редактировать файлы конфигурации, не забудьте перезагрузить файл после редактирования:

sudo nmcli connection reload

Обратите внимание, что созданные таким образом конфигурации могут запутать инструменты графического интерфейса. В лучшем случае они не будут показывать вам статические адреса.

Вилле Койвунен
источник
0

Debian Buster / 10 NetworkManager nm-connection-editorтеперь может делать это из графического интерфейса пользователя.

Отредактируйте соединение, откройте вкладку «Настройки IPv4», затем:

  1. Установите метод на «Автоматический (DHCP)».
  2. Добавьте «Дополнительные статические адреса» ниже.

Это запишет следующие настройки в /etc/NetworkManager/system-connections/connection.nmconnection:

[ipv4]
address1=10.0.0.1/24
method=auto
user1338062
источник