iT邦幫忙

0

【電腦網路】MAC封包傳送的來源與目的應該是什麼才對?

  • 分享至 

  • twitterImage

假設架構
Host A - Switch 1 - Router - Switch 2 - Host B
A 要傳送封包給 B

問題:在 A 傳送封包給 Switch 1 時,目的 MAC 應該為 A 的 MAC?還是應該為 Switch 1 的 MAC?
我以為經過 ARP 之後,A 的 ARP Cache 應該只知道 B 的 MAC,但是有些資料上都寫傳送至 Switch 1 的 MAC?不知道我哪邊搞錯了...
{【來源MAC為A】【目的MAC為何?】(【來源IP為A】【目的IP為B】)}


Switch 1 收到封包,先查 MAC TABLE 後,將封包傳送給 Router 時,
{【來源MAC為Switch 1】【目的MAC為Router】(【來源IP為A】【目的IP為B】)}
Router 收到封包,先查 MAC TABLE 後,將封包傳送給 Switch 2 時,
{【來源MAC為Router】【目的MAC為Switch 2】(【來源IP為A】【目的IP為B】)}
Switch 2 收到封包,先查 MAC TABLE 後,將封包傳送給 B 時,
{【來源MAC為Switch 2】【目的MAC為B】(【來源IP為A】【目的IP為B】)}
B 收到封包
結束

看更多先前的討論...收起先前的討論...
weiclin iT邦高手 4 級 ‧ 2019-05-30 23:29:53 檢舉
https://networkengineering.stackexchange.com/questions/28329/does-the-source-mac-address-of-a-frame-change-when-it-passes-through-several-swi
slime iT邦大師 1 級 ‧ 2019-05-30 23:30:47 檢舉
先不要管 Switch , 先想一下 MAC Address 在什麼情況下用到?
只有在"區域廣播"用到.

如果架構是 Host A - Router - Host B :
Host A 只會知道 Router 的 MAC Address ;
而 Router 會知道 Host A 與 Host B 的 MAC , 但歸在不同的 interface ;
Host B 則只知道 Router 的 MAC Address .

Switch 是為了降低廣播封包的過濾/控管功能, 本身的 MAC Address 並沒有用在封包轉送, 所以這個例子上可以忽略.
小麥粉 iT邦新手 5 級 ‧ 2019-05-31 09:16:53 檢舉
MAC Address不是在Host A的Data Link 層就會使用到了嗎?
A的IP層將TCP/IP封包以IP標頭封裝,下送至Data Link 層,再以Data Link Layer標頭封裝
所以source以及destination應該就是A的MAC以及B的MAC沒錯吧?

Switch 1 收到後先查MAC TABLE解封,再往IP層送,IP層會查ARP TABLE 後將封包再下送至Data Link 層
Data Link 層查MAC TABLE再重新封裝,所以source以及destination應該就是Switch 1的MAC以及Router 的MAC
因為IP封包沒有被改變,所以維持原樣【來源IP為A】【目的IP為B】

所以我怎麼想Host A 傳送封包給 Switch 1 時,destination應該不可能會是Switch 1的MAC,但是書上寫的卻又不一樣...
A到B..
來源IP A, MAC A ,目的IP B, MAC Router
關SWITCH什麼事? 除非SWITCH是當L3介面在用.
slime iT邦大師 1 級 ‧ 2019-05-31 11:00:03 檢舉
A IP 要送給 B IP , 先在區域網路查詢 B IP 對應的 MAC Address , 這時候會發現 B IP 不在區域網路內.

而這時後 A IP 有設定 Default Gateway 是 Router , 就去查 Default Gateway 的 IP 對應的 MAC , 而 Router 回應自己的 MAC , 這時後 A IP 就會知道 Router 的 MAC .

而到 Router 後, 就照同樣的模式, 看看 B IP 該往哪邊連線, 往其他介面(Interface)廣播, 而剛好 B 在另一個介面上, Router 會學到 IP B 的 MAC Address , B 也會知道 Router 的 MAC Address .

Switch 在這種架構下, 對於有特定要過濾或快取的 MAC Address 才有意義, 如果沒有這種功能需求, 當一台普通 Hub , 對 MAC Address 沒有特別功能.
weiclin iT邦高手 4 級 ‧ 2019-05-31 14:05:35 檢舉
你要不要把書上寫的截圖貼一下, 說不定只是描述方式有誤解
小麥粉 iT邦新手 5 級 ‧ 2019-05-31 15:40:27 檢舉
總結一下:
A 發起 ARP 取得B的MAC之後,因為B和A不在相同網段,所以A依然不知道要往哪裡送,但是因為A有設定Default Gateway,所以會往Default Gateway送

假設Switch 1和Switch 2為L3
A的Default Gateway就會設定成Switch 1,A查Switch 1的IP對應的MAC,所以destination才會設定成Switch 1的MAC
而Switch 1在A 發起 ARP 取得B的MAC時,已經學習到B的MAC必須往Router送,所以destination是Router的MAC
Router和Switch 2亦同

假設Switch 1和Switch 2為L2
A的Default Gateway就會設定成Router,而destination則是設定成Router,Switch 1收到封包會直接轉送給Router
Router在A 發起 ARP 取得B的MAC時,已經學習到B的MAC必須往Switch 2送
Switch 2收到封包會直接轉送給B

這樣對嗎?
AB不同網段為什麼要發起ARP?
A根本不會有B的MAC資料.
slime iT邦大師 1 級 ‧ 2019-05-31 16:54:39 檢舉
"A 發起 ARP 取得B的MAC之後,因為B和A不在相同網段"

A並沒有取得B的MAC,
A只是先查看看B的IP是否在同一個區域網路,而發現區域網路無B的IP,所以查看看Default Gateway是否存在。
A在傳送給B的時候..就會先做routing desction.
發現不同網段就直接送給gateway, 並不會發ARP來問B的MAC.
反而如果沒有gateway的MAC時, 才會發ARP問gateway的MAC.
然後再封包的目的IP填入B的IP. 目的MAC填入gateway的MAC, 再丟給SWITCH.
小麥粉 iT邦新手 5 級 ‧ 2019-05-31 17:36:39 檢舉
原來如此
如果L3的Switch 1 也沒有Router的MAC,就發ARP問Router的MAC,所以封包的目的IP填入B的IP,目的MAC才會是Router的MAC,然後才發給Router
而Router也是因為沒有Switch 2的MAC,才發ARP問Switch 2的MAC,所以封包的目的IP填入B的IP,目的MAC是Switch 2的MAC,然後才發給Switch 2
最後Switch 2因為和B有相連,所以藉由Route Decision送給B

目前的理解是這樣
slime iT邦大師 1 級 ‧ 2019-05-31 17:52:38 檢舉
先問問為什麼這麼執著在 Switch ?
或者您認定的 L3 Switch 功能為何?
小麥粉 iT邦新手 5 級 ‧ 2019-05-31 20:09:16 檢舉
A
 \
  S1
 / \

    R1 — Internet

 \ /
  S2
 /


我認知上的網路架構,不考慮VLAN,A和B由S1構成同一網段,C和D由S2構成另一網段,兩個網段由R1構成區域網路
所以封包必定會經過Switch
小麥粉 iT邦新手 5 級 ‧ 2019-05-31 20:19:27 檢舉
我認知上的L2 Switch和Hub最大的差異,就是Switch可以同時處理封包,不會像Hub那樣封包同時傳送就會發生碰撞
L3 Switch 就是增加能夠處理網路層IP封包的功能,可以看懂IP封包,好像也就這樣,印象中沒有很大的差距
slime iT邦大師 1 級 ‧ 2019-06-01 10:58:42 檢舉
1. 封包同時傳送還是會碰撞.
2. Switcching Hub (L2) 只是降低不必要的封包, 而降低碰撞機會, 對於廣播封包或還是屬於同一個 port 的封包還是有可能碰撞.
3. Switch 有很多種說法, Switching Hub (L2) 是其中一種可能, 如果考試就背老師要求的, 如果實務應用, 直接拿產品功能跟基本原理來參考.
4. 與其在意 Switch , 不如先確認 Router , IGMP 等基本功能, 無論哪種 Switch , 都是因為這種基本功能有所不足或市場取向而產生的產品, 所以先從基本的純設備間互通來學.
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1

過 Route 路由
NAT
Proxy
Repeater
MAC Address 就會被換掉

echochio iT邦高手 1 級 ‧ 2019-05-31 11:39:53 檢舉

簡單的說L3以上,包含L3的會換MAC
L2是 MAC 層不會換 MAC

Repeater 可能不是

我要發表回答

立即登入回答