Gibt es bei Verwendung von CentOS mit statischer IP-Adresse eine Möglichkeit, mithilfe von Bash festzustellen, ob ein DHCP-Server im Netzwerk ausgeführt wird?
linux
networking
centos
dhcp
Steve
quelle
quelle
Falls im Repository verfügbar, gibt es dhcpdump
von der Manpage:
quelle
Wenn Sie über
tcpdump
die folgenden Parameter verfügen , können Sie den Server leichter finden, indem Sie das Programm als root aufrufen:Leider kann ich aufgrund des Netzwerklayouts keinen vollständigen DHCP-Handshake sofort erfassen. Ich sehe jedoch eine DHCP-Anfrage von meinem iPad:
Nachdem ich "tcpdump" über Nacht laufen ließ, sah ich schließlich diese ACK:
Wenn beim Ausführen dieses
tcpdump
Befehls ein BOOTP / DHCP-Angebot oder eine Bestätigung (Nack) angezeigt wird, stammt dies von einem DHCP-Server, und die MAC-Adresse des Servers steht direkt nach dem Zeitstempel in der ersten Zeile.Der (gültige) DHCP-Server hat hier also die MAC-Adresse a8: 39: 44: 96: fa: b8`.
Unter Verwendung eines der vielen MAC-Adressensuch-Tools im Web sehe ich, dass dieser MAC zu
A8:39:44 Actiontec Electronics, Inc
meinem Router gehört.Um unerwünschte DHCP-Serverpakete aufzufangen, muss dieser
tcpdump
Prozess im Terminalfenster ausgeführt werden:tcpdump -i en0 -nev udp src port 67 and not ether host a8:39:44:96:fa:b8
Dies zeigt mir nur DHCP-Serverantworten von anderen Hosts als meinem gültigen DHCP-Server an, solange der Prozess in einem eigenen Fenster ausgeführt wird.
Der folgende Befehl wird im Hintergrund ausgeführt, bis 100 Pakete erfasst wurden, und alle unerwünschten DHCP-Servermeldungen an die Datei angehängt
/tmp/rogue
. Auch hier muss die MAC-Adresse Ihres gültigen DHCP-Servers an der richtigen Stelle verwendet werden, sowie der Schnittstellendeskriptor auf Ihrem System.tcpdump -U -i en0 -c 100 -nev udp src port 67 and not ether host a8:39:44:96:fa:b8 >> /tmp/rogue 2>&1 &
`
quelle
tcpdump
Befehl ausgeführt lassen, werden DHCP-Serverpakete angezeigt, die von einer MAC-Adresse gesendet werden, die sich von denen Ihres DHCP-Servers unterscheidet. Natürlich müssen Sie die Adresse an der angegebenen Stelle angeben ... Ich werde sie in meine Antwort einfügen, um eine bessere Formatierung zu erhalten.Wenn genügend Zeit zur Verfügung steht, kann die Erkennung möglicherweise passiv durchgeführt werden: Denken Sie daran, dass ein initialisierender Client eine DHCPDISCOVER-Übertragung sendet. Wenn ein DHCP-Server verfügbar ist, erhält er ein Angebot und sendet (erneut als Broadcast!) Eine DHCP-Anfrage. Somit
Der Erfolg der ersten beiden Punkte hängt von der Anzahl der anderen neu an das Netzwerk angeschlossenen / gebooteten Hosts sowie von den Lease-Zeiten ab.
quelle
Sie können versuchen, ein Alias-Gerät zu erstellen und einen DHCP-Client im Testmodus zu verwenden, der alle Antworten ausgibt, ohne die Schnittstelle neu zu konfigurieren:
Ich habe nur Zugriff auf eine Debian-Box. Wenn Sie also eine andere DHCP-Implementierung haben, könnte die Trockenlaufoption anders sein, wie bei dhcpcd:
Früher habe ich ein Cron-Skript mit so etwas ausgeführt, das den Administrator (mich!) Über nicht autorisierte DHCP-Server alarmierte.
quelle
ifconfig eth0:1 up
die Ausgabe aufrufenSIOCSIFFLAGS: Cannot assign requested address