題 如何在沒有ARP的情況下獲取路由器的MAC地址?


如何主機不支持 互聯網協議 (它繼續運行 第2層 只獲取路由器的MAC地址,以便它可以發送以太網數據包?


3
2017-09-09 16:10


起源


@Ramhound,只需一個以太網地址,我們就可以將以太網數據包從一台計算機發送到另一台計算機了嗎? - Pacerier
平心而論,MAC尋址在許多802.x L2協議中使用,包括Ethernet / EthernetII,IEEE802.3,802.5(令牌環)等,因此我一直將術語“以太網地址”視為口語。 - Frank Thomas


答案:


簡短回答取決於L2主機上可用的協議。

每個第2層協議族都有一些方法來通告/發現局域網上系統的MAC。正如HeavyD所提到的,這通常由Broadcast完成,並且該技術用於ARP。

回到過去(當你的問題是相關的)時,執行網絡相關任務的唯一人員就是網絡管理員,他們在設置跨越時可以輕鬆地從路由器/網橋上的標籤上讀取MAC樹或其他非路由多分段LAN。您將不得不依賴於名稱映射協議(如舊學校的NetBUI,如果您感興趣,它依賴於廣播),或者手動配置它們。


3
2017-09-09 16:44



通過“手動配置”,您的意思是如果貼紙丟失,硬件基本上沒用嗎? - Pacerier
你必須以某種方式解決它。如果沒有別的,直接連接到路由器,並發送廣播幀。響應應該是您的路由器MAC。 - Frank Thomas
但是請記住,將僅L2或非IP系統連接到IP路由器已經沒用了。如果你試圖將它用作一個開關,你無論如何都不需要知道路由器的MAC。交換結構(交換機上維護的端口目標表)將無形地處理所有映射問題。 - Frank Thomas


如果您不知道實際MAC,則可以始終使用以太網廣播地址(FF:FF:FF:FF:FF:FF)。

這實際上是ARP工作的方式,請求被發送到廣播地址,然後請求IP的主機以其自己的MAC響應。如果僅使用廣播不是一個可行的選項,您將需要實現類似於ARP的協議來發現主機。


2
2017-09-09 16:34



在ARP中,以太網廣播將說“如果你是192.168.0.1給我你的mac地址”。但由於我們的主持人不會說IP,所以 信息 它會發送以太網廣播嗎? - Pacerier
en.wikipedia.org/wiki/EtherType - 以太網幀告訴上層它是什麼協議(即 應該 是)。所以說IP不是處理ARP的必要條件(也不是因為ARP消息可以用於任何協議,而不僅僅是IP),並且ARP消息格式在這裡很好地描述: en.wikipedia.org/wiki/Address_Resolution_Protocol。 - LawrenceC
@Pacerier,正如Frank提到的ARP應該對你有用,但你需要一些方法來識別你想要與之交談的主機。此外,其中很多假設您可以更改主機上的軟件如何響應ARP請求。如果您的設備尚未編程為響應此類請求,則設備外部的任何設備都無法提供幫助。我想一些更詳細的關於你有什麼樣的設備你正在努力實現的東西會有所幫助。 - heavyd
@heavyd,我只是想了解ARP如何在不了解IP的主機上運行。而且我試圖找出除了手動配置之外還有其他選擇。 - Pacerier
我仍然不確定我完全理解...使用ARP主機有一個IP地址,並正在尋找具有該IP地址的主機的MAC。你有什麼可以用來識別你正在尋找的主機? - heavyd


如果它不支持IPv4,則不需要IPv4路由器的MAC地址。

如果它甚至不知道IPv4是什麼,它怎麼知道IPv4路由器甚至是什麼?為什麼需要與IPv4路由器通信?

重要的是要意識到您在LAN上考慮的“路由器”實際上是IPv4概念,位於網絡層(第3層)。沒有“以太網層路由器”這樣的東西;網絡間路由是網絡層(第3層)任務。在以太網層,網絡上可能有通過多個交換機(技術上稱為“網橋”)的“轉發路徑”,但這種以太網層路徑查找稱為“交換”或“橋接”,而不是“路由” 。使用精確術語時,我們為第3層設備執行的操作保留術語“路由”。

如果主機支持某些其他可路由的第3層協議,它將使用該其他可路由第3層協議定義的協議找到該協議的第3層路由器。

例如,IPv6使用與IPv4不同的EtherType(以太網協議ID號)。 IPv4使用0x0800,而IPv6使用0x86dd。 IPv6主機使用IPv6的鄰居發現協議(NDP)在同一以太網LAN上查找其相鄰主機和路由器的MAC地址。 NDP建立在ICMPv6上,當然它建立在IPv6之上。

另一個例子是,在TCP / IP接管之前,AppleTalk是80年代和90年代Apple的專有協議棧。 AppleTalk的網絡層(第3層)稱為DDP(數據報傳送協議)。 AppleTalk主機通過AppleTalk地址解析協議(AARP),EtherType 0x80f3找到了他們的DDP路由器。

其他人可能會舉例說明TCP / IP最終征服的所有80和90專有協議棧如何完成類似的事情:Novell IPX / SPX,Banyan VINES,DECnet等。

目前仍在使用的少數基於非IPv4 / ARP / IPv6以太網的協議通常不能直接路由到當前以太網LAN的邊緣,因此不需要找到任何第3層路由器。我們想到了PPPoE,802.1X(EAPOL)和802.1D生成樹協議(STP)。 PPPoE通過稱為PPPoE Active Discovery(PAD)的基於廣播的協議找到PPPoE接入集中器(服務器)及其MAC地址。 802.1X和STP只是將其數據包多播到特定的多播MAC地址,這些MAC地址由IEEE為這些協議的目的而指定和保留。


1
2017-09-17 01:08