-
【求助】switch 的連接與網路運作
如下圖示是書上操下的,[color=blue]假如 Router 左邊只有 1 ip [/color]時:
[img]http://home.pchome.com.tw/family/b90220208/netpic.GIF[/img]
Q1:若硬要如此接,請問是否只有 switch B,C,D 屬於相同網域(EX: 203.204.136.0/24)
才有意義?
除非 Router 左邊有 3 ip 時, switch A,B,C 設成 3 個網段才有意義?
Q2: switch(A) 如何運作?
我知道 switch 是以每個 port 對應不同的 MAC 來運作,但是 switch(A) 所接的是其它 switch 而非電腦網卡,那它如何傳送經手的封包呢?
-
Q1. 3 個 subnet, Router 要有 3 個 ip
Q2. Switch 上的每個 Port 都有記錄來往的 MAC. 這樣下次再傳到同一個 MAC 就可以省一點手續. 如果要知道更詳細. 查一下書吧..大概要一二千字左右才能解釋的比較清楚...
-
[QUOTE=Giorgio]Q1. 3 個 subnet, Router 要有 3 個 ip
Q2. Switch 上的每個 Port 都有記錄來往的 MAC. 這樣下次再傳到同一個 MAC 就可以省一點手續. 如果要知道更詳細. 查一下書吧..大概要一二千字左右才能解釋的比較清楚...[/QUOTE]
1.若切 3 subnet 時,網芳是否無法跨越,因網芳的廣播是 subnet broadcast 我假設為:
destination ip: netID.255/24 ,
destination MAC: FF:FF:FF:FF:FF:FF
所以就算各 switch 都會過,但不同段的電腦也不會將封包給網芳程式處理,對不對呢?
2.但我的問題就是在 中間的 switch(A) 並無連接電腦網卡,那又如何記 MAC 呢?
-
1. 將 BCD 切成 3 個 subnet, 中間沒有裝置連接, BCD 是無法溝通的. subnet 跟 subnet 的溝通要靠 Router. 如果你有 3 個 subnet, 你的 Router 就需要 3 個 IP.
PS: Switch 會通過, 但 Router 預設是會略過 FF:FF:FF:FF:FF:FF ( Broadcast ), 這也是為什麼要分割子網路的一個原因
2. 靠 MAC Table 記錄, 一般可以記憶 8000 組 MAC. 在 MAC Table 裡, MAC 會對應到一個 Port, 這樣 switch 就知道下次看到 00-00-00-00-00-ff 要送到 Port 11
-
Thanks!
可是假設 switch(A) 的 port1 接 switch(B)
那 port1 怎麼知道要對應 pc1 還是 pc2 的 MAC 呢?
-
建議你可以找一下有關 flood or flooding 的文章
PS: 了解 flooding 之後, 你就可以清楚的知道 Hub, Bridge, Switch 的區別了
-
[QUOTE=b90220208]Thanks!
可是假設 switch(A) 的 port1 接 switch(B)
那 port1 怎麼知道要對應 pc1 還是 pc2 的 MAC 呢?[/QUOTE]
每一個port可以紀錄很多組MAC,所以對應上不成問題..........
這個問題蠻單純的,不要想得太複雜。
-
比如說
pc3 --> SW(C) --> SW(A) --> SW(B) --> pc2
S(A), S(B), S(C) 會記錄 pc2 & pc3 的 MAC
-
[img]http://home.pchome.com.tw/family/b90220208/netpic.GIF[/img]
switch(A) 接 switch(B) 的 port 會記得 pc1 , pc2 的 MAC, 所以當
pc3 要給 pc2 的封包流到 A 後, A 便知道應往連接 B 的 port 傳送.
那反過來 pc2 要給 pc3 的封包在流到 B 後, B 是如何判斷要往連接 A 的 port 傳送呢?
難道說 B 連接 A 的 port 記得所有 pc3,pc4,pc5,pc6 的 MAC 嗎?
另外同樣的圖,可否把 switch(A) 去掉,直接將
switch(B) , switch(D) 連接上 switch(C) 呢? (以及有何差別呢?)
-
[img]http://www.pczone.com.tw/upload/002/img001.jpg[/img]
[img]http://www.pczone.com.tw/upload/002/img002.jpg[/img]
[img]http://www.pczone.com.tw/upload/002/img003.jpg[/img]
[img]http://www.pczone.com.tw/upload/002/img004.jpg[/img]
[img]http://www.pczone.com.tw/upload/002/img005.jpg[/img]
[img]http://www.pczone.com.tw/upload/002/img006.jpg[/img]
[img]http://www.pczone.com.tw/upload/002/img007.jpg[/img]
[img]http://www.pczone.com.tw/upload/002/img008.jpg[/img]
[img]http://www.pczone.com.tw/upload/002/img009.jpg[/img]
[img]http://www.pczone.com.tw/upload/002/img010.jpg[/img]
[COLOR=Red]Designated content are the property of the owner.[/COLOR]
-
太感謝了,以下是我的解讀,有誤煩請指正:
[B]SWITCH[/B] 就是一接到封包就先作比對 (比對自己維護的 MAC Address Table) ,
若其中還沒有紀錄該封包的 source address 與 port 之對應,則先填上.
反之,若已有,就繼續比對該封包中的 destination address 與 port 之對應 --
1.
若有,就直接 forward 到對應的 port ,而此行為就是所謂的:
"forwarding" and "filtering" ,即推進/轉送 封包至正確,適當的 port
並且過濾掉不須轉送的 port 以免於網路資源與效率上的浪費!
2.
若無,則進行 flood(一如水流般,除了進水道外,會流往每個通道),流往
每個 port ,然後只有目的電腦才會有所回應.然後回應封包在送往 switch 後,就
又開始了比對的機制.
另外,
關於我前文的疑問,
[img]http://home.pchome.com.tw/family/b90220208/netpic.GIF[/img]
那反過來 pc2 要給 pc3 的封包在流到 B 後, B 是如何判斷要往連接 A 的 port 傳送呢?
難道說 B 連接 A 的 port 記得所有 pc3,pc4,pc5,pc6 的 MAC 嗎?
->我改成:
switch(B) 維護的 table 關於連接 switch(A) 的 port 又是如何紀錄此 port 的對應關係呢?
還有,可否把 switch(A) 去掉,直接將
router , switch(B) , switch(D) 連接上 switch(C) 呢? (以及有何差別呢?)
-
1. 大致正確, 但裡面有些細節錯了, 再多看幾遍唄
2. Layer 2 跑的東西叫框訊 (frame), 不叫封包 (packet)
3. 每一個 port都有一個 MAC Address, 但習慣上是說對應到 port
[QUOTE]
另外, 那反過來 pc2 要給 pc3 的封包在流到 B 後, B 是如何判斷要往連接 A 的 port 傳送呢?
難道說 B 連接 A 的 port 記得所有 pc3,pc4,pc5,pc6 的 MAC 嗎?
->我改成:
switch(B) 維護的 table 關於連接 switch(A) 的 port 又是如何紀錄此 port 的對應關係呢?
[/QUOTE]
Q: pc2 --> pc3
A:
pc2 --> SW(B) --> SW(B) floods to pc1 & SW(A)
SW(A) floods to SW(C) & SW(D)
SW(C) floods to pc3 & pc4
SW(D) floods to pc5 & pc6
pc3 responses the broadcast --> SW(C) --> SW(A) --> SW(B) --> pc2
SW(A, B, C, D) 都有 pc2 的 MAC
SW(A, B, C) 都有 pc3 的 MAC
[QUOTE]
還有,可否把 switch(A) 去掉,直接將
router , switch(B) , switch(D) 連接上 switch(C) 呢? (以及有何差別呢?)[/QUOTE]
如果 pc1-6 只是單純的 Client, 因為 SW(B, C, D) 不是 Hub, 沒啥問題唄.....
-
[quote=Giorgio]1. 大致正確, 但裡面有些細節錯了, 再多看幾遍唄[/quote]
請問您指的是哪些細節? (教學圖片的文字不多,我看了好幾遍了...)
-
-
[QUOTE=b90220208]那反過來 pc2 要給 pc3 的封包在流到 B 後, B 是如何判斷要往連接 A 的 port 傳送呢?
難道說 B 連接 A 的 port 記得所有 pc3,pc4,pc5,pc6 的 MAC 嗎?
[/QUOTE]
沒錯,只要訊框有通過port都會被解析並將來源MAC紀錄下來,所以每個PORT並不是只能記憶一組MAC,在DES-1008D規格上就有這麼一條:「 每台可過濾8K之網路硬體住址,且網路硬體位址可以自動學習記錄」,由此可證一個PORT可記憶非常非常多組MAC。
-
Thanks a lot!!
[quote=Giorgio]試著再詳細描述一次 pc2 --> pc3[/quote]
[img]http://home.pchome.com.tw/family/b90220208/netpic.GIF[/img]
我試著再解讀看看,
所以若 pc2 -> pc3 的情況下:(以下英文大寫字母表 SWITCH)
frame 到 B 時, B 先比對 table 看要否增加一筆 pc2 MAC 對應到接收到該 frame 的 port,然後再比對該 frame 的 destination MAC(即 pc3) ,不管有或無都會往連接 A 的 port 送,只是若無時是以 flood 的方式罷了.
再來到 A 時, A 再看看是否須新增 pc2 MAC 對應到該接收 port 的紀錄,然後再比對 table 看看有無 pc3 MAC 的對應,一樣地,若有則直接 forward 到連接 C 的 port,若無,則 flood 出去.
再來到 C 時, C 再看看是否須新增 pc2 MAC 對應到該接收 port 的紀錄,然後再比對 table 看看有無 pc3 MAC 的對應,一樣地,若有則直接 forward 到連接 pc3 的 port,若無,則 flood 出去.而若為 flood 時,則只有 pc3 會回應.
[quote=ysc_kyy]沒錯,只要訊框有通過port都會被解析並將來源MAC紀錄下來,所以每個PORT並不是只能記憶一組MAC,在DES-1008D規格上就有這麼一條:「 每台可過濾8K之網路硬體住址,且網路硬體位址可以自動學習記錄」,由此可證一個PORT可記憶非常非常多組MAC。[/quote]
應再改成:
流入 port 的訊框都會被解析並紀錄下來源 MAC ,.........
因為 "通過" 一詞包含訊框是從 port 流出的(不論是被 forward 或 flood 出),但此時無須紀錄下訊框的來源 MAC.
若有誤麻煩再指正了,謝謝!
-
之前的解讀好像不大正確,
綜合各位的觀點,我再整理了一下並列出如下:(有誤的話還麻煩前輩指正)
[img]http://home.pchome.com.tw/family/b90220208/netpic.GIF[/img]
[b][u][條件][/u][/b]
router 有 4 張卡
假設所有 SWITCH 都是 layer2 設備,
各網段依次為:
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24
[b][u][事件][/u][/b]
pc2 -聯繫-> pc3 -回應-> pc2
[b][u] [流程] [/u][/b]
[b][color=blue][pc2 以 ARP broadcast 求 router 的 MAC][/color][/b]
因 pc2,pc3 分處於不同網段,所以一定要經由路由器 forward,
假設 pc2 還不知道 router 的 MAC ,則會作 ARP 廣播,
[u]<frame 的相關訊息>[/u]
來源 ip 為 pc2's ip ,目的 ip 為 192.168.1.255
來源 MAC 為 pc2's MAC ,目的 MAC 為 FF:FF:FF:FF:FF:FF
[u]<frame 的流程則是>[/u]
當 frame 經 SWITCH(B) 時, SWITCH(B) 會比對來源 MAC 看看是否需要新增一筆 pc2 與端口的對應紀錄,
接著 flood 出去.
當 SWITCH(A) 收到 frame 時,一樣 SWITCH(A) 會比對來源 MAC 看看是否需要新增一筆 pc2 與端口的對應紀錄,
然後再 flood 出去.
[b][color=blue][router 回應 pc2 的 ARP broadcast][/color][/b]
當 router 收到 frame 後就會回應 pc2 告知自己的 MAC 值,
因為此時 router 已經知道 pc2 的 MAC 且又與 pc2 有同網段的介面,所以就直接以 unicast 回應 pc2 .
[u]<frame 的相關訊息>[/u]
來源 ip 為 router's ip ,目的 ip 為 pc2's ip
來源 MAC 為 router's MAC ,目的 MAC 為 pc2's MAC
[u]<frame 的流程則是>[/u]
流經 SWITCH(A) , SWITCH(A) 會比對來源 MAC 看看是否需要新增一筆 router 與端口的對應紀錄,
然後由於 TABLE 中已有 pc2's MAC 的對應紀錄所以就直接 forward 出去給 SWITCH(B).
到了 SWITCH(B) 一樣會比對來源 MAC 看看是否需要新增一筆 router 與端口的對應紀錄,
然後由於 TABLE 中已有 pc2's MAC 的對應紀錄所以就直接 forward 給 pc2.
-----
[b][color=blue][pc2 始聯繫 pc3 並找 router 幫忙][/color][/b]
再來 pc2 因知道了 router 的 MAC 所以就直接找 router 幫忙 forward 要給 pc3 的 frame
[u]<frame 的相關訊息>[/u]
來源 ip 為 pc2's ip ,目的 ip 為 pc3's ip ,
來源 MAC 為 pc2's MAC ,目的 MAC 為 router's MAC
[u]<frame 的流程則是>[/u]
流經 SWITCH(B) 一樣先比對來源 MAC 看看是否需要新增一筆 pc2 與端口的對應紀錄,
然後由於 TABLE 中已有 router's MAC 的對應紀錄所以就直接 forward 給 SWITCH(A).
到了 SWITCH(A) 一樣先比對來源 MAC 看看是否需要新增一筆 pc2 與端口的對應紀錄,
然後由於 TABLE 中已有 router's MAC 的對應紀錄所以就直接 forward 給 router.
[b][color=blue][router 進行 forward 幫忙轉送][/color][/b]
router 收到後就 forward 到與 pc3 同網段的介面.
(這裡我省略其經由ARP廣播得知pc3's MAC的流程,以及,pc3也因此而知道了router的MAC位址,
還有 SWITCH(A) , SWITCH(C) 因此而在自己的 TABLE 中有了 pc3's MAC 以及 router's MAC 的對應端口紀錄 )
[u]<frame 的相關訊息>[/u]
來源 ip 為 pc2's ip ,目的 ip 為 pc3's ip
來源 MAC 為 router's MAC ,目的 MAC 則為 pc3's MAC
[u]<frame 的流程則是>[/u]
流經 SWITCH(A) 一樣先比對來源 MAC 看看是否需要新增一筆 router 與端口的對應紀錄,
然後由於 TABLE 中已有 pc3's MAC 的對應紀錄所以就直接 forward 到 SWITCH(C).
來到了 SWITCH(C) 一樣先比對來源 MAC 看看是否需要新增一筆 router 與端口的對應紀錄,
然後由於 TABLE 中已有 pc3's MAC 的對應紀錄所以就直接 forward 到 pc3.
-----
[b][color=blue][pc3 決定回應 pc2 並找 router 幫忙][/color][/b]
[color=red]因為是不同網段,所以 pc3 還是得透過 router 作 forward.[/color]
也因為 pc3 知道 router 的 MAC 了,所以就直接找 router 幫忙,
[u]<frame 的相關訊息>[/u]
來源 ip 為 pc3's ip ,目的 ip 為 pc2's ip.
來源 MAC 為 pc3's MAC ,目的 MAC 為 router's MAC.
[u]<frame 的流程則是>[/u]
流經 SWITCH(C) 一樣先比對來源 MAC 看看是否需要新增一筆 pc3 與端口的對應紀錄,
然後由於 TABLE 中已有 router's MAC 的對應紀錄所以就直接 forward 給 SWITCH(A).
來到了 SWITCH(A) 一樣先比對來源 MAC 看看是否需要新增一筆 pc3 與端口的對應紀錄,
然後由於 TABLE 中已有 router's MAC 的對應紀錄所以就直接 forward 給 router.
[b][color=blue][router 進行 forward 幫忙轉送][/color][/b]
來到了 router,由於其已經知道 pc2 的 MAC ,就不用作 ARP broadcast ,所以就直接 forward 到與 pc2 同網段的介面.
[u]<frame 的相關訊息>[/u]
來源 ip 為 pc3's ip ,目的 ip 為 pc2's ip.
來源 MAC 為 router's MAC ,目的 MAC 為 pc2's MAC.
[u]<frame 的流程則是>[/u]
流經 SWITCH(A) 一樣先比對來源 MAC 看看是否需要新增一筆 router 與端口的對應紀錄,
然後由於 TABLE 中已有 pc2's MAC 的對應紀錄所以就直接 forward 給 SWITCH(B).
來到了 SWITCH(B) 一樣先比對來源 MAC 看看是否需要新增一筆 router 與端口的對應紀錄,
然後由於 TABLE 中已有 pc2's MAC 的對應紀錄所以就直接 forward 給 pc2.
-----
[b][u]所以關於某網友提到的[/u][/b]:[quote]
如果第一次路由成功後...
第二次傳送封包..則採用比對mac 的方式傳送....而不路由... [/quote]
請問這是為何?...應該不可能吧.
-
-
:eye: [quote="某網友說"]
這我不知是不是特殊功能....在 cisco 的 mls
多層交換中..有特別提到 route once
switch many ......不過書上並未強
調是cisco 的特技...不過前提是用L3
交換器才算是 MLS ...
有興趣的話可以去翻看看 CISCO PRESS
給CCNP 的 BCMSN ..中譯本參考看看..[/quote]
以下純脆憑空猜測的想法:
關於 L3 SWITCH 我腦中閃過的想法是--
其該不會是採用 ip 對應 port 端口吧...不知其運作之原理為何,可否請了解的人說一下?
既然其可像 ffff 前輩說的不必經由 router 就可 forward 來源與目的 ip 網段不同的訊框往更快的方向去,那麼難不成該 SWITCH 能夠改寫訊框的目的 MAC 值,這樣當訊框被 forward 到目的電腦時才可能被收下處理...不是嗎?
-
Go to Cisco website, and search "NFFC"