it-swarm.com.de

So konfigurieren Sie eine statische IP-Adresse, aber DNS über DHCP

Ich habe eine statische IP-Adresse in der Datei /etc/network/interfaces konfiguriert:

auto eth0
iface eth0 inet static
    address 10.152.187.122
    gateway 10.152.187.1
    netmask 255.255.255.0

Aber ich möchte, dass DNS automatisch mit DHCP konfiguriert wird. Wenn ich beispielsweise dhclient ausführe, füllt es /etc/resolv.conf ordnungsgemäß mit Daten. Aber ich möchte, dass dies beim Start ausgeführt wird, und ich bin nicht sicher, wo der richtige Weg ist, dies einzurichten.

Dies ist auf dem Ubuntu 12.04 (Precise Pangolin) Wolkenbild .

3
Ian Kelling

Mit DHCP erhalten Sie die DNS-Nameserver-Adressen, die der Router erhält, wenn er eine IP-Adresse von Ihrem Internetdienstanbieter (ISP) erhält. Sie können die DNS-Nameserver-Adressen des Routers folgendermaßen verwenden:

auto eth0
iface eth0 inet static
  address 10.152.187.122   
  netmask 255.255.255.0
  gateway 10.152.187.1
  dns-nameservers 10.152.187.1
2
chili555

Was Sie verlangen, ist im Wesentlichen eine Hybridkonfiguration aus statischer IP, aber DHCP-DNS. Es gibt keine solche Art der Netzwerkeinrichtung - Sie haben entweder statische oder DHCP.

Sie können jedoch explizit DNS-Nameserver in Ihrer Konfiguration definieren. Dadurch werden statische Adressen beibehalten, DNS wird jedoch leider nicht dynamisch festgelegt (was in einem Hybrid-Setup wie diesem nicht möglich ist).

auto eth0
iface eth0 inet static
  address 10.152.187.122
  netmask 255.255.255.0
  gateway 10.152.187.1
  dns-nameservers 10.152.187.1
  dns-nameservers 8.8.8.8
  dns-nameservers 8.8.4.4
  ...

TL; DR: Es gibt keine Möglichkeit, DHCP-DNS (statische IP) abzurufen, es sei denn, Sie haben einen statischen Eintrag in der DHCP-Zuweisungstabelle des Routers festgelegt. Dadurch wird sichergestellt, dass Sie immer diese IP erhalten, da diese speziell bereits für dieses bestimmte System reserviert ist /MAC-Adresse

2
Thomas Ward

Ich bin auch daran interessiert, DNS-Server über DHCP abzufragen, ohne andere Informationen zu verwenden.

Dhcpcd erlaubt möglicherweise, es abzufragen (dhcpcd -o domain_name_servers -T), aber ich konnte nichts für dhclient finden.

Neben der Verwendung eines modifizierten dhclient (siehe hier auf GitHub und hier auf Stack Overflow ) oder eines Test-Clients ( wie in diesem Blog ) oder eines anderen Skripte ( siehe dies bei Stack Overflow ) Ich habe eine Powershell-Lösung gefunden hier bei indented.co.uk .

Dies brachte mich dazu, "die Grundlagen" unter Linux zu verwenden, und ich endete mit einer gestalteten DHCP-Anfrage unter Verwendung von printf.

Einige Felder sind möglicherweise gefälscht (z. B. mac aa: bb: cc: dd: ee: ff), enthalten jedoch die Optionen 53 = 0x35 (len 1/value 1 = Request) und 55 = 0x37 (len 1/value 6 für DNS).

Für Rundfunk wird socat verwendet:

printf "\x1\x1\x6\x0\xd3\x44\x33\xeb\x0\x0\x80\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\xaa\xbb\xcc\xdd\xee\xff\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x0\x63\x82\x53\x63\x35\x01\x01\x37\x01\x06\xff" |  socat - UDP4-DATAGRAM:255.255.255.255:67,broadcast

Simliar socat wird zum Empfangen einer Antwort verwendet

socat -u udp-recv:68,reuseaddr -

oder

socat -u udp-recv:68 - | dd bs=1 skip=$( printf "%d" 0xec )

Mit xxd habe ich gefunden, wonach ich gesucht habe ...

0