Jak zastąpić serwer nazw dostarczany przez DHCP?

13

Myślę (myślę), że skonfigurowałem statyczny adres IP w /etc/network/interfaces:

# The primary network interface 
auto eth0 
iface eth0 inet static
    address 10.1.1.2
    netmask 255.255.255.0
    network 10.1.1.0
    broadcast 10.1.1.255
    gateway 10.1.1.1

I zmieniam plik, /etc/resolv.confaby zawierał żądane serwery nazw.

Następnie ponownie uruchamiam sieć sudo /etc/init.d/networking restart

Ale po kilku godzinach resolv.conf zawsze wraca do serwera nazw DHCP.


Należy również powiedzieć, że jest to Ubuntu Server z tylko l0i eth0interfejsy.

David Parks
źródło
Czy resolvconfpakiet jest zainstalowany?
Gilles „SO- przestań być zły”,
Czy próbujesz użyć dhclient na innym interfejsie sieciowym (być może Wi-Fi lub interfejsie dial-up), czy też dhclient działa niepoprawnie na eth0, nawet jeśli ma być statyczny?
poolie
Jest tylko eth0 i lo0, ręcznie ustawiony adres IP jest taki sam, jak otrzymany adres IP DHCP (serwer DHCP zawsze będzie obsługiwał ten sam statyczny adres IP). Ale nie chcę używać serwera nazw podanego przez serwer DHCP, więc pomyślałem, że sam ustawię adres IP i nie będzie żadnego DHCP, ale nie rozumiem, dlaczego resolv.conf jest ciągle aktualizowany.
David Parks,
Gilles - nie, uruchomiłem: dpkg -L resolvconf, i otrzymałem: Pakiet `resolvconf 'nie został zainstalowany.
David Parks,

Odpowiedzi:

35

Jeśli chcesz zastąpić lub dołączyć do serwerów nazw sugerowanych przez serwer DHCP, możesz to skonfigurować /etc/dhcp/dhclient.conf, np .:

interface "eth0" {
    prepend domain-name-servers 10.0.0.2;
}

Możesz to również zrobić za pomocą kontrolki „Edytuj połączenia” we wskaźniku sieci w Unity lub GNOME.

poolie
źródło
4
To było najlepsze rozwiązanie, zamieściłem inną opcję, ale zdałem sobie sprawę, że ustawienie statycznego adresu IP nie jest dobrym pomysłem w środowisku AWS EC2. :)
David Parks
Co jeśli chcesz dodać kilka serwerów nazw domen?
dangonfast
127.0.0.1Wydaje się, że serwer nazw domen z wyprzedzeniem odrzuca serwer nazw dostarczony przez dhcp (nie zdarza się to z wyprzedzeniem innych serwerów nazw)
dangonfast
2
Wymienić prependz supersedenadpisać wartości DHCP całkowicie.
Sqerstet
Dzięki. Czy mogę również dodać serwer DNS dla wszystkich interfejsów (może z wyjątkami)? Czy lista interfejsów?
ctrl-alt-delor
1

Rozwiązaniem, które rozwiąże problem, jest skonfigurowanie resolvconfpakietu. Daje to pierwszeństwo preferowanym serwerom nazw, a także innym wymaganym ustawieniom resolv.conf, takim jak preferencje wyszukiwania i domeny.

Edytuj plik: /etc/resolvconf/resolv.conf.d/head

Umieść żądane serwery nazw i wszelkie inne konfiguracje, które chcesz wybrać, gdy nastąpi tam zmiana sieci. Gdy wystąpią jakiekolwiek zmiany w sieci, konfiguracja zawsze będzie miała pierwszeństwo.

Przykład /etc/resolvconf/resolv.conf.d/headpliku:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

nameserver 8.8.8.8
search mydomain.com

Spójrz na odpowiedź na podobne pytanie:
przesłonić serwer nazw DNS

Uwaga:
Upewnij się, że po ostatnim wpisie masz kanał. Większość redaktorów automatycznie podaje wiersz podczas zapisywania pliku.

LD James
źródło
-2

Znalazłem odniesienie do usunięcia klienta dhcp, myślę, że to był główny winowajca. Zrobiłem to i jeszcze nie widziałem problemu. Będzie czekać do rana, aby potwierdzić, ale wygląda na to, że klient dhcp nadal działał i musiał zostać zatrzymany i odinstalowany.

apt-get remove isc-dhcp-client dhcp3-client dhcpcd
David Parks
źródło
Jestem nieco zdezorientowany, czy rozwiązaniem było polecenie prepend, czy też faktycznie usuwało ono klienta DHCP.
Eugene van der Merwe
@EugenevanderMerwe To polecenie poprzedzające. Plakat powiedział: „To najlepsze rozwiązanie, zamieściłem inną opcję, ale zdałem sobie sprawę, że ustawienie statycznego adresu IP nie jest dobrym pomysłem w środowisku AWS EC2. :)”
Grammargeek
-3

Zasadniczo należy zawsze odinstalowywać wszystkie używane usługi sieciowe apt-get --purge remove <package-name>. W ten sposób zostaną również usunięte wszystkie pliki konfiguracyjne.

W takim przypadku polecenie brzmiałoby:

apt-get --purge remove isc-dhcp-client isc-dhcp-common

To polecenie całkowicie usunie isc-dhcp-client.

Miikael Ljung
źródło
4
Jak to jest istotne i dlaczego uważasz, że to dobra ogólna zasada? Nie chce przestać używać DHCP?
poolie 11.10.2013