Networking
由 dnsmasq 管理的單交換機乙太網網路中的節點是直接通信還是通過路由器通信?
這個問題存在變體,但我不能確定我的確切情況已被問到。
我正在建立一個簡單的乙太網,如下所示:
在節點 0(“rpi1”)上,我將 dnsmasq 作為 DNS 和 DHCP 伺服器執行。這是它的一部分
/etc/dnsmasq.conf
(減去 MAC 地址詳細資訊):# 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
DNS 和 DHCP 方面都在工作。每個節點都被分配了其預期的
10.0.0.X
IP 地址,我可以通過執行例如dig rpi4
(->... 10.0.0.4
) 來解析任何節點上的任何域。而且,例如,如果我在 rpi2 內部,那麼我可以使用 rpi3 進入 rpi3ssh rpi3
,並且我可以例如ping rpi4
orping 10.0.0.4
並獲得 0% 的封包遺失。我不清楚的是我是直接通過交換機還是通過 rpi1(執行 dnsmasq 並提供路由器服務)在節點之間進行通信。
如果節點直接通信,那麼我假設它們必須知道彼此的 MAC 地址才能發出通過交換機直接到達彼此的幀。如果是這樣,那麼我總結的問題是:
- 一個節點在什麼時候學習其他節點的 MAC 地址?
- 以及如何檢查 rpi2 上的例如 rpi3 的 MAC 地址以查看它們是否相互了解?
提前致謝!
一個節點在什麼時候學習其他節點的 MAC 地址?
首先,他們會從 DNS 伺服器上查詢其他節點的 IP 地址。之後,他們將向所有節點發送“arp”請求,具有IP地址的節點將使用其MAC地址回复該“arp”請求。
以及如何檢查 rpi2 上的例如 rpi3 的 MAC 地址以查看它們是否相互了解?
‘arp -a’ 通常會為您提供 arp 表,您可以檢查條目以查看它們是否已經學習了彼此的 MAC 地址。