[Debian 8.2/ESXi/DNSmasq] DHCPOFFER wird nicht angenommen

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
AdrianGillmann
Beiträge: 7
Registriert: 02.10.2015 10:23:57

[Debian 8.2/ESXi/DNSmasq] DHCPOFFER wird nicht angenommen

Beitrag von AdrianGillmann » 02.10.2015 10:58:10

Hallo in die Runde,

nachdem Ich nun mehrere Debian System unter dem immer gleichen Schema aufgesetzt habe (Debian 8.2, DNSmasq) und es bisher immer funktioniert hat, stellt sich beim Debian unter ESXi 5.5 ein komisches Verhalten:

Server: Lenovo Thinkserver RD340 - da dieser leider kein Debian Supportet (installieren lässt es sich, aber nicht booten :( ) habe Ich mich dazu entschlossen einen ESXi darauf zu installieren (dieses wird offiziell in der Version 5.5 Supportet) und als Gast System Debian (Konfiguration siehe unten). Der Server hat drei Physische Netzwerk Interfaces, und zwei Controller: 2 Normale NIC's liegen auf dem ersten Controller, und das dritte NIC liegt auf einem anderen Controller (das dritte NIC ist für Management - wird auch nicht benutzt).

Im ESXi sind zwei vSwitche Konfiguriert: vSwitch0 mit eth0/NIC0 sowie vSwitch1 mit eth1/NIC1, der virtuellen Maschine wurden zwei Netzwerkadapter zugeordnet (vSwitch0 und vSwitch1).

Der Server wurde wie folgt frisch installiert:

Debian 8.2 (ohne GUI, mit Web Server [Apache2] und SSH Server installiert) Netzwerk Konfiguration:

Code: Alles auswählen

 # eth0 WAN
allow-hotplug eth0
iface eth0 inet dhcp

# eth1 LAN
allow-hotplug eth1
iface eth1 inet static
   address 10.0.0.1
   netmask 255.0.0.0
   network 10.0.0.0
   broadcast 10.255.255.255
DNSmasq (apgt-get install dnsmasq) mit folgender Konfiguration:

Code: Alles auswählen

interface=eth1
listen-address=127.0.0.1
domain=domain.local
dhcp-range=10.0.1.1,10.0.254.254,24h
D.h.: im Normalfall sollte nun eth0 eine IP via DHCP erhalten und eth1 mit statischer IP (10.0.0.1) DHCP IP's vergeben.

Auf den "Standalone" Varianten ohne ESXi funktioniert dies auch hervorragend, als ESXi Gast bekommen die Clients allerdings die DHCPOFFER nicht mit, im Debian daemon Log sehe Ich endlose "DHCPDISCOVER" mit folgendem "DHCPOFFER" - allerdings keine "DHCPREQUEST" oder "DHCPACK".

Es hat sich herausgestellt das wenn ich mit

Code: Alles auswählen

ifdown eth0
ifup eth0
das NIC eth0 kurz deaktiviere und direkt danach wieder aktiviere, alles wie gewohnt funktioniert. Würde es auch so nun als "workaround" machen, allerdings wäre es natürlich schon super wenn es ohne workaround geht.


Für jede Hilfe bin Ich dankbar!

Viele Grüsse

Adrian

Benutzeravatar
MSfree
Beiträge: 11741
Registriert: 25.09.2007 19:59:30

Re: [Debian 8.2/ESXi/DNSmasq] DHCPOFFER wird nicht angenomme

Beitrag von MSfree » 02.10.2015 11:46:43

Gehe ich richtig in der Annahme, daß sich eth0 und eth1 auf der gleichen Hardware befinden?
Du versuchst also eth0 sich selbst konfigurieren zu lassen, indem du eth0 über Loopback und DHCP eine IP-Adresse vergibst?

Ich vermisse das Loopbackinterface in deiner /etc/network/interfaces, da müßte

Code: Alles auswählen

auto lo
iface lo inet loopback
stehen.

Eventuell kann es auch zu einem Problem mit der Reihenfolge der Netzwerkinterfaces kommen, ein Versuch wäre, eth0 und eth1 zu tauschen.

AdrianGillmann
Beiträge: 7
Registriert: 02.10.2015 10:23:57

Re: [Debian 8.2/ESXi/DNSmasq] DHCPOFFER wird nicht angenomme

Beitrag von AdrianGillmann » 02.10.2015 13:58:28

Hallo MSfree,

dies ist die komplette Config für das Netzwerk:

Code: Alles auswählen

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# eth0 WAN
allow-hotplug eth0
iface eth0 inet dhcp

# eth1 LAN
allow-hotplug eth1
iface eth1 inet static
        address         10.0.0.1
        netmask         255.0.0.0
        network         10.0.0.0
        broadcast       10.255.255.255
Ein loopback ist drin, ist das so richtig?

Mit "auf der selben Hardware" meinst du auf dem selben Controller? Oder generell an dem Server?

Der Server hat 3 NIC's die sich auf 2 Controller aufteilen.

NIC0 und NIC1 sind die "Standard Ports" und hängen auf dem selben Controller, NIC2 ist der Management Port und haben einen separaten Controller.

Benutzeravatar
MSfree
Beiträge: 11741
Registriert: 25.09.2007 19:59:30

Re: [Debian 8.2/ESXi/DNSmasq] DHCPOFFER wird nicht angenomme

Beitrag von MSfree » 02.10.2015 14:41:37

AdrianGillmann hat geschrieben:Ein loopback ist drin, ist das so richtig?
Ja, das sollte passen.
Mit "auf der selben Hardware" meinst du auf dem selben Controller? Oder generell an dem Server?
Ich wollte darauf hinaus, ob das alles unter der Kontrolle ein und der selben Betriebssystemsinstanz ist. Es handelt sich also nicht um einen Server auf dem mehrere virtuelle Maschinen laufen, von denen jede ihre eigene NIC bekommt sondern um eine Instanz, die halt 3 Netzwerkschnittstellen hat. Da die Netzwerkschnittstellen nicht gebridget sind, handelt es sich also um einen Router.

Mir fällt aber gerade ein, DNSmasq ist ja ein Dienst, der erst gestartet werden kann, wenn die Netzwerkschnittstellen hochgebracht wurden. Egal ob Sysv-Init oder Systemd, Netzwerkdienste werden immer erst gestartet, wenn die Netzwerkschnittstellen konfiguriert sind. Du hast hier ein klassisches Henne-Ei-Problem, DNSmasq startet erst nach der Netzwerkschnittstelleninitíalisierung, während der Netzwerkschnittstelleninitíalisierung von eth0 versuchst du aber auf den Dienst DNSmasq, den es zu dem Zeitpunkt noch gar nicht geben kann, zuzugreifen.

Hier hilft nur, eth0 mit statischer IP zu konfigurieren oder ein Skript zu starten, das zu einem späteren Zeitpunkt eth0 noch mal runterfährt und nochmals hochfährt, wie in dem manuellen Workaround, den du oben beschreibst.

AdrianGillmann
Beiträge: 7
Registriert: 02.10.2015 10:23:57

Re: [Debian 8.2/ESXi/DNSmasq] DHCPOFFER wird nicht angenomme

Beitrag von AdrianGillmann » 02.10.2015 14:53:37

Also auf dem Server läuft ESXi eigentlich nur weil Debian nicht direkt als OS Supportet wird, somit ist das "Gast" OS mit Debian auch die einzige Virtuelle Maschine, somit teilen sich die NIC's nicht auf verschiedene Systeme auf - einzig das ESXi Management läuft noch zusätzlich über NIC0 - bin aber gerade dabei alles zu tauschen, also NIC0 mit NIC1 sowie eth0 mit eth1.

Genau das ganze soll ein Router werden zwischen zwei Netzen.

Henne Ei Problem sollte eigentlich nicht sein, ein NIC bekommen von einem anderen DHCP von "aussen" sozusagen eine IP und wird darüber mit Internet versorgt, das andere NIC behandelt ein internes Netzwerk und hier vergibt der DHCP auf dem Server die IP Adressen, und dort hat der Server ja eine Statische IP - da er sich ja nicht selbst mit einer IP versorgen kann ;)

Benutzeravatar
MSfree
Beiträge: 11741
Registriert: 25.09.2007 19:59:30

Re: [Debian 8.2/ESXi/DNSmasq] DHCPOFFER wird nicht angenomme

Beitrag von MSfree » 02.10.2015 15:00:33

AdrianGillmann hat geschrieben:ein NIC bekommen von einem anderen DHCP von "aussen" sozusagen eine IP und wird darüber mit Internet versorgt, das andere NIC behandelt ein internes Netzwerk und hier vergibt der DHCP auf dem Server die IP Adressen, und dort hat der Server ja eine Statische IP - da er sich ja nicht selbst mit einer IP versorgen kann ;)
Bist du ganz sicher, daß eth0 von aussen mit DHCP versorgt wird?

Welche IP-Adresse hat dann eth0 nachdem du
ifdown eth0
ifup eth0

ausgeführt hast?

AdrianGillmann
Beiträge: 7
Registriert: 02.10.2015 10:23:57

Re: [Debian 8.2/ESXi/DNSmasq] DHCPOFFER wird nicht angenomme

Beitrag von AdrianGillmann » 02.10.2015 15:09:54

Hier mal die Antwort von ifconfig: (nachdem Ich nun die Interfaces getauscht habe):

Code: Alles auswählen

eth0      Link encap:Ethernet  HWaddr 00:0c:29:79:3a:3b  
          inet addr:10.0.0.1  Bcast:10.255.255.255  Mask:255.0.0.0
          inet6 addr: fe80::20c:29ff:fe79:3a3b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:94 errors:0 dropped:0 overruns:0 frame:0
          TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:9399 (9.1 KiB)  TX bytes:1278 (1.2 KiB)

eth1      Link encap:Ethernet  HWaddr 00:0c:29:79:3a:45  
          inet addr:10.0.10.35  Bcast:10.255.255.255  Mask:255.0.0.0
          inet6 addr: fe80::20c:29ff:fe79:3a45/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:392 errors:0 dropped:0 overruns:0 frame:0
          TX packets:245 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:42417 (41.4 KiB)  TX bytes:186506 (182.1 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:7 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2527 (2.4 KiB)  TX bytes:2527 (2.4 KiB)
eth0 hat die Fest definierte Adresse wie es auch in der Konfig beschrieben ist (aktualisierte Konfig siehe unten), eth1 hat auch eine IP von aussen bekommen (Addresspool stimmt, und ich kann von aussen auf die Maschine).

/etc/network/interfaces aktualisierte Version:

Code: Alles auswählen

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# eth1 WAN
allow-hotplug eth1
iface eth1 inet dhcp

# eth0 LAN
allow-hotplug eth0
iface eth0 inet static
        address         10.0.0.1
        netmask         255.0.0.0
        network         10.0.0.0
        broadcast       10.255.255.255
Leider hat das tauschen der Ports auch nichts gebracht.

Ausgabe von ifdown eth1:

Code: Alles auswählen

Killed old client process
Internet Systems Consortium DHCP Client 4.3.1

Listening on LPF/eth1/00:0c:29:xx:xx:xx
Sending on LPF/eth1/00:0c:29:xx:xx:xx
Sending on Socket/fallback
DHCPRELEASE on eth1 to 10.0.0.20 port 67
Ausgabe von ifup eth1:

Code: Alles auswählen

Listening on LPF/eth1/00:0c:29:xx:xx:xx
Sending on LPF/eth1/00:0c:29:xx:xx:xx
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 4
DHCPREQUEST on eth1 to 255.255.255.255 port 67
DHCPOFFER from 10.0.0.20
DHCPACK from 10.0.0.20
bound to 10.0.10.35 -- renewal in 3026 seconds.
Habe das abgetippt - da ich durch das runterfahren des Ports nicht via SSH mehr drauf kann ;) habe nur Copyright Infos ausgelassen - ansonsten 1zu1 abgeschrieben.

Wie oben schon erwähnt nachdem ifdown eth1/ifup eth1 funktioniert der DHCP, bzw. die Weitergabe der DHCPREQUEST's.

AdrianGillmann
Beiträge: 7
Registriert: 02.10.2015 10:23:57

Re: [Debian 8.2/ESXi/DNSmasq] DHCPOFFER wird nicht angenomme

Beitrag von AdrianGillmann » 02.10.2015 15:22:07

Hier auch mal ein Auszug aus dem daemon.log:

Code: Alles auswählen

Oct  2 15:19:14 event-router dnsmasq-dhcp[480]: DHCPDISCOVER(eth0) 0c:4d:e9:xx:xx:xx
Oct  2 15:19:14 event-router dnsmasq-dhcp[480]: DHCPOFFER(eth0) 10.0.163.247 0c:4d:e9:xx:xx:xx
Oct  2 15:19:14 event-router dnsmasq-dhcp[480]: DHCPDISCOVER(eth0) 0c:4d:e9:xx:xx:xx
Oct  2 15:19:14 event-router dnsmasq-dhcp[480]: DHCPOFFER(eth0) 10.0.163.247 0c:4d:e9:xx:xx:xx
Oct  2 15:19:16 event-router dnsmasq-dhcp[480]: DHCPDISCOVER(eth0) 0c:4d:e9:xx:xx:xx
Oct  2 15:19:16 event-router dnsmasq-dhcp[480]: DHCPOFFER(eth0) 10.0.163.247 0c:4d:e9:xx:xx:xx
Oct  2 15:19:18 event-router dnsmasq-dhcp[480]: DHCPDISCOVER(eth0) 0c:4d:e9:xx:xx:xx
Oct  2 15:19:18 event-router dnsmasq-dhcp[480]: DHCPOFFER(eth0) 10.0.163.247 0c:4d:e9:xx:xx:xx
Oct  2 15:19:22 event-router dnsmasq-dhcp[480]: DHCPDISCOVER(eth0) 0c:4d:e9:xx:xx:xx
Oct  2 15:19:22 event-router dnsmasq-dhcp[480]: DHCPOFFER(eth0) 10.0.163.247 0c:4d:e9:xx:xx:xx
Dies zieht sich halt endlos dahin, die DHCPOFFER kommen wohl nicht am Client an. Erst nachdem ich den "WAN" Port (eth1 jetzt) neu starte mit ifdown und ifup

Benutzeravatar
MSfree
Beiträge: 11741
Registriert: 25.09.2007 19:59:30

Re: [Debian 8.2/ESXi/DNSmasq] DHCPOFFER wird nicht angenomme

Beitrag von MSfree » 02.10.2015 15:52:14

Ich fürchte, der Fehler liegt in deinen Subnetzen. Nach dem Boot ist dein Netz offensichtlich so konfiguriert:

Code: Alles auswählen

eth0      Link encap:Ethernet  HWaddr 00:0c:29:79:3a:3b 
          inet addr:10.0.0.1  Bcast:10.255.255.255  Mask:255.0.0.0
 
eth1      Link encap:Ethernet  HWaddr 00:0c:29:79:3a:45 
          inet addr:10.0.0.20 Bcast:10.255.255.255  Mask:255.0.0.0
Das geht nämlich aus der Ausgabe von ifdown hervor.

Grundsätzlich darf aber nur ein DHCP-Server pro Subnetz arbeiten, eth0 und eth1 sind aber im gleichen Subnetz, so daß wohl beide DHCP-Server, dein eigener und der von aussen, über den du die IP für eth1 beziehst, aktiv sind.

Nach dem ifup ändert sich eth1 in

Code: Alles auswählen

eth1      Link encap:Ethernet  HWaddr 00:0c:29:79:3a:45 
          inet addr:10.0.10.35  Bcast:10.255.255.255  Mask:255.0.0.0
Die Frage nun ist, brauchst du wirklich ein 10er Subnetz mit 16 Millionen IP-Adressen oder reicht dir auch ein kleineres Subnetz mit 255 IP-Adressen?

Ich würde es mal forgendermassen konfigurieren:

DNSmasq mit folgender Konfiguration:

Code: Alles auswählen

interface=eth1
    listen-address=127.0.0.1
    domain=domain.local
    dhcp-range=192.168.45.10,192.168.45.240,24h
Das gibt dir immerhin 231 IP-Adressen im Subnetz 192.168.45.0/24
Unten sind die IPs von .1 bis .9 und oben die IP .241 bis .254 frei, die du für Geräte verwenden kannst, die sich nicht mit DCHP konfigurieren lassen. Die .1 wird für eth1 belegt.

Und /etc/network/interfaces mit:

Code: Alles auswählen

# eth1 LAN
allow-hotplug eth1
iface eth1 inet static
   address 192.168.45.1
   netmask 255.255.255.0
   network 192.168.45.0
   broadcast 192.168.45.255

AdrianGillmann
Beiträge: 7
Registriert: 02.10.2015 10:23:57

Re: [Debian 8.2/ESXi/DNSmasq] DHCPOFFER wird nicht angenomme

Beitrag von AdrianGillmann » 02.10.2015 16:23:25

Grundsätzlich darf aber nur ein DHCP-Server pro Subnetz arbeiten, eth0 und eth1 sind aber im gleichen Subnetz, so daß wohl beide DHCP-Server, dein eigener und der von aussen, über den du die IP für eth1 beziehst, aktiv sind.
Ahh ok, du meinst das beide ein 10.x.x.x/8 Netz haben? Wobei das bei anderen Systemen (Nativ Debian ohne Virtualisierung) funktioniert?
Die Frage nun ist, brauchst du wirklich ein 10er Subnetz mit 16 Millionen IP-Adressen oder reicht dir auch ein kleineres Subnetz mit 255 IP-Adressen?
255 bzw. 253 würden auf keinen Fall ausreichen, es werden mindestens 1000 - eher mehr (bis max. 8000) benötigt.

Das nach dem Boot eth1 die IP 10.0.0.20 bekommt denke Ich nicht - unser DHCP Server läuft da drauf (der Interne DHCP, nicht der auf der Maschine hier) - ist das nicht eher so das der die IP Adresse wieder am Server Releasen will? Also so verstehe Ich das

Code: Alles auswählen

DHCPRELEASE on eth1 to 10.0.0.20 port 67
hab hier auch einen Link dazu gefunden: http://www.freesoft.org/CIE/RFC/2131/35.htm

Benutzeravatar
MSfree
Beiträge: 11741
Registriert: 25.09.2007 19:59:30

Re: [Debian 8.2/ESXi/DNSmasq] DHCPOFFER wird nicht angenomme

Beitrag von MSfree » 02.10.2015 17:33:57

AdrianGillmann hat geschrieben:Ahh ok, du meinst das beide ein 10.x.x.x/8 Netz haben?
Richtig.
Wobei das bei anderen Systemen (Nativ Debian ohne Virtualisierung) funktioniert?
Nein, das hat mit Virtualisierung oder nativ nichts zu tun, auch Windows oder BSD-Unix hätten das gleiche Problem.
255 bzw. 253 würden auf keinen Fall ausreichen, es werden mindestens 1000 - eher mehr (bis max. 8000) benötigt.
OK, auch das ist kein Problem. Dann wähl ein Subnetz zwischen
172.16.0.0/16 und 172.31.0.0/16, das gibt dir Raum für rund 65000 IP-Adressen, siehe auch:
https://de.wikipedia.org/wiki/Private_IP-Adresse
Das nach dem Boot eth1 die IP 10.0.0.20 bekommt denke Ich nicht
Nun ja, es spielt eigentlich keine große Rolle, denn es ist egal, ob eth1 nun 10.0.0.20 oder 10.0.10.35, beide IPs liegen im gleichen 10.0.0.0/8 Subnetz.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: [Debian 8.2/ESXi/DNSmasq] DHCPOFFER wird nicht angenomme

Beitrag von rendegast » 02.10.2015 17:53:43

Mal sowas probieren?

Code: Alles auswählen

auto lo
iface lo inet loopback

allow-hotplug eth0
iface eth0 inet manual

allow-hotplug eth1
iface eth1 inet manual

auto br0
iface br0 inet dhcp
    bridge_ports eth0
    
auto br1
iface br1 inet static
    bridge_ports eth1
   address 10.0.0.1
   netmask 255....
   network 10.0.0.0
   broadcast 10.255.255.255    
Was vielleicht auch ginge, wäre nur eine Bridge

Code: Alles auswählen

auto br0
iface br0 inet static
    bridge_ports eth0 eth1
   address 10.0.0.1
   netmask 255.0.0.0
   network 10.0.0.0
   broadcast 10.255.255.255    
und das Routing dann mit den bridge-Tools erledigen.


interface=eth1
listen-address=127.0.0.1
würde ich

Code: Alles auswählen

#interface=eth1
    listen-address=127.0.0.1
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

AdrianGillmann
Beiträge: 7
Registriert: 02.10.2015 10:23:57

Re: [Debian 8.2/ESXi/DNSmasq] DHCPOFFER wird nicht angenomme

Beitrag von AdrianGillmann » 03.10.2015 12:31:45

Der Vorschlag von rendegast hat leider nichts geholfen, werde wohl ein anderes Netz nehmen müssen - owbei Ich nicht verstehe warum das bei allen anderen Kisten hier funktioniert, nur die Virtuelle Maschine geht nicht? :/


Aber Danke trotzdem für die Hilfe

Antworten