І 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, вам потрібно переконатися, що мережевий менеджер не намагається керувати вашими налаштуваннями. Це висвітлено тут .


9

Після інтенсивного пошуку відповіді на ту ж проблему я розробив рішення, яке дозволяє Менеджеру мережі продовжувати керувати вашими зв’язками. Спочатку створіть з'єднання DHCP зазвичай у Менеджері мереж за допомогою Редагування з'єднань> Додати. Це створить файл, розташований у / etc / NetworkManager / system-connection /. Відкрийте цей файл у своєму текстовому редакторі із дозволами Super User. Приклад: sudo nano / etc / NetworkManager / system-connection / 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

Збережіть файл та використовуйте Менеджер мереж для відключення та повторного підключення до мережі. Pinging підтвердить належну функцію обох 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-connection / каталозі. Їх тримають десь ще? Можливо, річ SELinux?
Стів Йоргенсен

2

Я трохи перевірив і з’ясував, що в даний час можна створити цю конфігурацію за допомогою nmcliінструменту. Насправді це дозволяє повністю контролювати NetworkManager. Сторінки керівництва по nmcli дуже ретельні і досить зрозумілі. Дивіться man nmcliі man nm-settings.

Щоб налаштувати конфігурацію в цьому питанні, найпростіший спосіб - це редагувати поточний профіль з'єднання. Дізнайтеся ім’я профілю у вашому інструменті GUI NetworkManager та відредагуйте його за допомогою редактора CLI (тут ім'я Ethernet connection):

$ sudo nmcli c редагувати 'Підключення до Ethernet'

=== | nmcli інтерактивний редактор з'єднань | ===

Редагування наявного з'єднання '802-3-ethernet': 'Ethernet connection 1'

Введіть "довідка" чи "?" для доступних команд.
Введіть 'description [.]' Для детального опису властивостей.

Ви можете редагувати наступні настройки: з'єднання, 802-3-ethernet (ethernet), 802-1x, dcb, ipv4, ipv6
nmcli> goto ipv4
Ви можете редагувати такі властивості: метод, dns, dns-search, dns-options, dns-пріоритет, адреси, шлюз, маршрути, метрику маршруту, ігнорувати авто-маршрути, ignore-auto-dns, dhcp-ім'я хоста, dhcp -send-ім'я хоста, ніколи не за замовчуванням, може відмовити, тата-тайм-аут, 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-інструментів або 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.