根據這個答案,路由器可以在 ISP 面前隱藏多個設備,並使其看起來好像只有一台設備(路由器),具有一個 mac 位址(只有路由器的 mac 位址!)接收網路服務。
但是,這一定是要求路由器?是否支援 DHCP/NAT意味著 (或需要)隱藏 MAC 位址? (即無線連接到路由器的裝置)
例如,雖然我知道路由器似乎有“一個 IP”(每個接口,但無論如何!),就 ISP 或調製解調器而言,我不明白為什麼它們不能簡單地複製確切的 MAC 地址連接設備的數據包到其乙太網路封包中。這似乎會讓路由器的工作變得更加容易,因為從互聯網到其(路由器)IP 位址的封包/幀已經具有確切的 MAC 位址立即指定有興趣的設備!
答案1
但是,這一定是路由器的要求嗎? DHCP/NAT 是否表示(或需要)隱藏 MAC 位址? (即無線連接到路由器的裝置)
首先,DHCP 和 NAT 都不是路由器的要求…而另一方面,提供無線連線並不需要要求路由器。
但除此之外 – 是的,「路由器」是處理 IP 封包的設備沒有MAC 包裝。一旦封包傳送到路由器,它就會丟棄原始 MAC 位址並完全根據 IP 封包中的內容做出路由決策,並使用適合輸出介面的新 MAC 標頭重新傳送封包。
這意味著路由器可以連接具有不同類型 MAC 位址的網路(即不僅僅是乙太網路通常的 48 位元位址)。它甚至可以連接網絡沒有MAC 位址,例如 ADSL 電路或 3G/4G 行動連接,只要它們講 IP。
這似乎會讓路由器的工作變得更加容易,因為從互聯網發送到其(路由器)IP 位址的封包/幀已經立即指定了感興趣設備的確切 MAC 位址!
並不真地;這僅意味著寄件者 –第二距離較遠的路由器 – 需要知道您裝置的 MAC 位址。這意味著您的路由器必須透過 ARP 查詢,也就是它仍然會執行與已經執行的工作量幾乎相同的工作。
因此,它只會將工作轉移到其他地方,因為第二個路由器將執行與您的路由器現在所做的基本相同的操作(ARP 查詢以了解MAC 位址),除了不再記住每個客戶1 個MAC,現在它需要記住每個顧客 5 或 10 個。這同樣適用於中間的任何 L2 交換機,它們沒有無限的記憶體。
另外:MAC 位址並不總是全域唯一的。它們必須是獨一無二的在L2網路上,但同一個 MAC 位址有可能存在於多個網路上,無論是由於意外衝突,還是由於特殊協定(VRRP「高可用性」),或者由於某些客戶故意惡意。當然,在某些情況下,甚至路由器的 MAC 位址也可能發生衝突,但我懷疑這比最終用戶設備更容易解決。
(這也忽略了諸如不使用相同類型 MAC 標頭的網路等問題,例如 4G。)
但最重要的是,這是一個路由器。它是實際工作是根據其路由表(如果啟用了 NAT,則還包括其 conntrack 狀態表)來決定哪個裝置根據 IP 位址接收哪些封包。因此從技術上講,您可以擁有一個完全在 MAC 層級工作的設備,甚至包括 NAT,但它實際上不再是「路由器」。
答案2
MAC 位址是點對點位址。因此,每個分割廣播網域的裝置都會「隱藏」 MAC 位址。乙太網路是第二層協定。
除非您直接連接到擁有該位址的設備或共用分割廣播網域的相同設備,否則您無法使用 MAC 位址做太多事情。
更詳盡的解釋請參閱:MAC位址的具體用途是什麼?