Există variații la această întrebare, dar nu pot fi sigur că mi s-a întrebat situația exactă.
Am configurat o rețea ethernet simplă care arată astfel:
Pe Nodul 0 ("rpi1") rulez dnsmasq atât ca server DNS, cât și ca server DHCP. Iată o secțiune a acestuia /etc/dnsmasq.conf
(minus detaliile adresei MAC):
# Atribuiți IP-uri statice membrilor clusterului
# Format = MAC:hostname:IP
dhcp-host=ZZ:YY:XX:WW:VV:UU,rpi1,10.0.0.1 # Nodul 0
dhcp-host=ZZ:YY:XX:WW:VV:UU,rpi2,10.0.0.2 # Nodul 1
dhcp-host=ZZ:YY:XX:WW:VV:UU,rpi3,10.0.0.3 # Nodul 2
dhcp-host=ZZ:YY:XX:WW:VV:UU,rpi4,10.0.0.4 # Nodul 3
Ambele aspecte DNS și DHCP funcționează. Fiecărui nod i se atribuie intenția sa 10.0.0.X
Adresă IP și pot rezolva orice domeniu de pe orice nod rulând de ex. dig rpi4
(-> ... 10.0.0.4
). Și, de exemplu, dacă sunt în interiorul rpi2, atunci pot intra în rpi3 cu ssh rpi3
, și pot de ex. ping rpi4
sau ping 10.0.0.4
și obțineți 0% pierdere de pachete.
Ceea ce nu este clar pentru mine este dacă comunic între noduri direct prin comutator sau prin rpi1 (care operează dnsmasq și oferă servicii de router).
Dacă nodurile comunică direct, presupun că trebuie să cunoască adresa MAC a celuilalt pentru a emite cadre care merg direct unul către celălalt prin intermediul comutatorului. Dacă este așa, atunci întrebările mele în rezumat sunt:
- În ce moment învață un nod adresele MAC ale celorlalte noduri?
- Și cum pot examina adresa MAC a de ex. rpi3 pe rpi2 pentru a vedea că au învățat unul de celălalt?
Mulțumesc anticipat!