Es gibt Variationen dieser Frage, aber ich kann nicht sicher sein, ob meine genaue Situation dort angesprochen wurde.
Ich richte ein einfaches Ethernet-Netzwerk ein, das so aussieht:
Auf Knoten 0 („rpi1“) führe ich dnsmasq sowohl als DNS- als auch als DHCP-Server aus. Hier ist ein Abschnitt davon /etc/dnsmasq.conf
(abzüglich der MAC-Adressdetails):
# Assign static IPs to cluster members
# Format = MAC:hostname:IP
dhcp-host=ZZ:YY:XX:WW:VV:UU,rpi1,10.0.0.1 # Node 0
dhcp-host=ZZ:YY:XX:WW:VV:UU,rpi2,10.0.0.2 # Node 1
dhcp-host=ZZ:YY:XX:WW:VV:UU,rpi3,10.0.0.3 # Node 2
dhcp-host=ZZ:YY:XX:WW:VV:UU,rpi4,10.0.0.4 # Node 3
Sowohl der DNS- als auch der DHCP-Aspekt funktionieren. Jedem Knoten wird die vorgesehene 10.0.0.X
IP-Adresse zugewiesen und ich kann jede Domäne auf jedem Knoten auflösen, indem ich beispielsweise dig rpi4
(-> ... 10.0.0.4
) ausführe. Und wenn ich mich beispielsweise in rpi2 befinde, kann ich mit in rpi3 gelangen ssh rpi3
und ich kann beispielsweise ping rpi4
oder ping 10.0.0.4
verwenden und habe 0 % Paketverlust.
Was mir jedoch nicht klar ist, ist, ob ich zwischen den Knoten direkt über den Switch oder über rpi1 (das dnsmasq betreibt und Routerdienste bereitstellt) kommuniziere.
Wenn die Knoten direkt kommunizieren, gehe ich davon aus, dass sie die MAC-Adressen der anderen Knoten kennen müssen, um Frames auszusenden, die über den Switch direkt aneinander gesendet werden. Wenn das so ist, lauten meine Fragen zusammengefasst:
- Wann erfährt ein Knoten die MAC-Adressen der anderen Knoten?
- Und wie kann ich die MAC-Adresse von zB rpi3 auf rpi2 untersuchen um zu sehen, dass sie voneinander erfahren haben?
Dank im Voraus!
Antwort1
Wann erfährt ein Knoten die MAC-Adressen der anderen Knoten?
Zuerst fragen sie beim DNS-Server die IP-Adresse anderer Knoten ab. Danach senden sie eine ARP-Anfrage an alle Knoten, und der Knoten mit der IP-Adresse antwortet auf diese ARP-Anfrage mit seiner MAC-Adresse.
Und wie kann ich die MAC-Adresse von zB rpi3 auf rpi2 untersuchen um zu sehen, dass sie voneinander erfahren haben?
Mit „arp -a“ erhalten Sie normalerweise eine ARP-Tabelle und können die Einträge prüfen, um festzustellen, ob sie die MAC-Adressen voneinander gelernt haben.