Zarówno DHCP, jak i statyczny adres IP jednocześnie na jednym interfejsie

16

Możemy użyć wielu adresów IP dla jednego interfejsu w systemie Linux (eg. eth0:0, eth0:1). Ale czy możemy jednocześnie korzystać z DHCP i statycznego adresu IP? eth0:1powinien mieć statyczny adres IP i eth0:0powinien być skonfigurowany przy użyciu DHCP.

Jak możemy osiągnąć oba te cele?

shantanu
źródło
Czy to pytanie dotyczy konfiguracji NetworkManagera?
madneon

Odpowiedzi:

13

Tak, można to zrobić. Jednak zwykle używa się do tego eth0 i eth0: 0 zamiast eth0: 0 i eth0: 1. Możesz skonfigurować plik / etc / network / interfaces w następujący sposób:

auto lo eth0 eth0:0
iface lo inet loopback

iface eth0 inet dhcp

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

Prawdopodobnie nie chcesz ustawiać bramy w interfejsie eth0: 0, ponieważ może to kolidować z ustawieniami bramy otrzymywanymi z DHCP. Jeśli wprowadzisz ustawienia ręczne w / etc / network / interfaces, będziesz chciał się upewnić, że menedżer sieci nie próbuje zarządzać twoimi ustawieniami. Jest to omówione tutaj .

jkt123
źródło
9

Po intensywnych poszukiwaniach odpowiedzi na ten sam problem opracowałem rozwiązanie, które pozwala Menedżerowi sieci nadal zarządzać połączeniami. Najpierw utwórz połączenie DHCP normalnie w Menedżerze sieci, używając opcji Edytuj połączenia> Dodaj. Spowoduje to utworzenie pliku znajdującego się w / etc / NetworkManager / system-connection /. Otwórz ten plik w edytorze tekstu z uprawnieniami superużytkownika. Przykład: sudo nano / etc / NetworkManager / system-connection / DHCPEthernet

Kod będzie wyglądał mniej więcej tak:

[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

Dodaj wiersz w sekcji ipv4 dla statycznego adresu IP, który chcesz dodać. Korzystam z 192.168.10.1 bez bramy dla tego przykładu

address1=192.168.10.1/24,0.0.0.0

Zapisz plik i użyj Network Managera, aby odłączyć, a następnie ponownie połączyć się z siecią. Pingowanie potwierdzi, że oba adresy IP działają poprawnie. Dane wyjściowe z adresu IP potwierdzają sukces.

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
Andrew Vian
źródło
address1znalezione tutaj ustawienie jest tak naprawdę ipv4.addressesustawieniem NetworkManager, jeśli używasz API lub nmcli. W takim przypadku musisz również ipv4.methodustawić opcję „auto”.
Dave
Po normalnym utworzeniu połączenia nadal nie mam plików w katalogu / etc / NetworkManager / system-connections /. Czy są trzymani gdzieś indziej? Może coś z SELinux?
Steve Jorgensen
2

Rozejrzałem się trochę i odkryłem, że w tej chwili można utworzyć tę konfigurację za pomocą tego nmclinarzędzia. W rzeczywistości pozwala to na pełną kontrolę nad NetworkManager. Strony podręcznika nmcli są bardzo dokładne i całkiem zrozumiałe. Zobacz man nmclii man nm-settings.

Aby skonfigurować konfigurację w tym pytaniu, najprostszym sposobem jest edycja bieżącego profilu połączenia. Znajdź nazwę profilu w narzędziu GUI NetworkManager i edytuj go za pomocą edytora CLI (tutaj jest nazwa Ethernet connection):

$ sudo nmcli c edytuj „Połączenie Ethernet”

=== | edytor połączeń interaktywnych nmcli | ===

Edycja istniejącego połączenia „802-3-ethernet”: „Połączenie Ethernet 1”

Wpisz „help” lub „?” dla dostępnych poleceń.
Wpisz „opisz [.]”, Aby uzyskać szczegółowy opis właściwości.

Możesz edytować następujące ustawienia: połączenie, 802-3-ethernet (ethernet), 802-1x, dcb, ipv4, ipv6
nmcli> goto ipv4
Możesz edytować następujące właściwości: metoda, dns, wyszukiwanie dns, opcje dns, priorytet dns, adresy, brama, trasy, metryka trasy, ignoruj ​​auto-trasy, ignoruj ​​auto-dns, nazwa hosta dhcp, dhcp -send-hostname, never-default, may-fail, dad-timeout, dhcp-timeout, dhcp-client-id, dhcp-fqdn
nmcli ipv4> ustaw ipv4.addresses {twój_adres_trafu} / {twój_netyczny_prefiks_tutaj} 
Czy chcesz również ustawić „ipv4.method” na „manualny”? [tak]: nie 
nmcli ipv4> zapisz
Połączenie „Połączenie Ethernet” (87fa8e41-7fe3-435a-a2f2-29a9c8084d2d) zostało pomyślnie zaktualizowane.
nmcli ipv4> quit

Pogrubione części to twoje dane wejściowe, zamień rzeczy w nawiasach klamrowych swoimi ustawieniami. Odpowiedź nona pytanie o ipv4.methodzachowanie konfiguracji DHCP. Afterwords musisz wyłączyć i ponownie włączyć konfigurację, co można zrobić za pomocą narzędzi GUI lub nmcli.

Jeśli chcesz, możesz również utworzyć nowe połączenie z wiersza poleceń:

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

Ponownie zamień rzeczy w nawiasy klamrowe na swoje ustawienia.

Na koniec, jeśli nadal chcesz edytować pliki konfiguracyjne, pamiętaj o ponownym załadowaniu pliku po edycji:

sudo nmcli connection reload

Należy pamiętać, że konfiguracje utworzone w ten sposób mogą pomylić narzędzia GUI. W najlepszym razie nie pokażą ci adresów statycznych.

Ville Koivunen
źródło
0

Debian Buster / 10 NetworkManager nm-connection-editormoże teraz to zrobić z graficznego interfejsu użytkownika.

Edytuj połączenie, otwórz kartę „Ustawienia IPv4”, a następnie:

  1. Ustaw metodę na „Automatyczny (DHCP)”.
  2. Dodaj „Dodatkowe adresy statyczne” poniżej.

Spowoduje to zapisanie następujących ustawień w /etc/NetworkManager/system-connections/connection.nmconnection:

[ipv4]
address1=10.0.0.1/24
method=auto
użytkownik1338062
źródło