三層交換機相關知識

三層交換機相關知識

這次的作死之路又要開始了。這次的對象主要是交換機:還是三層的;

 

 

這是這次實驗的總體用圖:

現在現根據圖上的標誌:將所有的主機配置好;目前沒有做任何vlan;所以PC1和PC3是能夠互通的;

 

接下來:我想先去探索下三層交換機關閉portswitch會怎麼樣:

第一步:先關閉了再說:

 

因爲按照圖中的設計;PC1的幀如果想要到達PC2,那麼就必然要經過LSW1、但是現在我關閉了g0/0/1端口的portswitch:現在pc1並不能ping通pc2;

 

 

通過百度:三層交換機的端口不僅具有二層交換功能外還有三層路由功能。三層交換機端口默認爲二層口,接口配置模式下使用不帶參數的 portswitch命令,把一個接口設置爲2層模式。如果需要啓用三層功能就需要在此端口輸入undo portswitch命令。

個人理解:一開始配置三層交換機的時候,三層交換機的端口啓用的是二層口的功能:所以當PC1嘗試ping通PC3的時候,因爲PC1會知道自己和目標主機是屬於同一個網段下的。所以就會選擇二層通信;而三層交換機的端口目前是二層口的功能,所以能夠轉發幀;但是當我把三層交換機的端口設置爲三層口的時候:(等於變成了一個路由器),這個三層口隔絕了二層通信。所以當PC1再次嘗試ping通PC3的時候,會發現在自己的網絡下並沒有主機能夠恢復它的arp請求。所以就找不到目的主機;

 

所以我們現在就將就設置爲路由器功能的交換機來接着做:

。。。。。。結果我發現:貌似現在並不能夠對交換機的端口進行ip的設置了 :所以選擇在交換機端口進行vlanif虛擬端口進行設置(貌似:交換機端口本來就不能進行ip設置;),然後還要把主機設置好默認路由:

 

[SW1-Vlanif10]int vlanif 20

[SW1-Vlanif20]ip address 10.0.1.10 24

[SW1-Vlanif20]int vlanif

[SW1-Vlanif10]ip address 10.0.0.10 24   在這裏對vlan進行設置;

 

然後;我選擇用PC1ping通pc2(因爲不在一個網段下,看是否能夠進行轉發;)

事實告訴我們,並沒有成功;所以我現在先選擇看到底是哪兒出了問題:

先看看能不能從PC1ping通默認網關:10.0.0.1

 

 

然而並沒有成功:到底是哪兒的問題;?所以準備抓包尋找原因:

 

 

(這個圖抓包抓的是二層交換機與三層交換機之間的鏈路)發現還是出現了arp啊;但是只看到PC1發送的arp,但是麼有看到任何應答:

 

所以我去百度了;

當我看到下面這段話的時候:

當接口由三層模式切換到二層模式時,接口的三層功能和標識將被禁止,採用系統的
MAC 地址。

交換機物理接口默認是二層的,如果需要配置IP地址,可以配置對應的vlanif,然後在vlanif視圖下配置IP地址。
物理接口的二三層轉換有一條命令:undo portswitch,但是通過這條命令把接口轉化爲三層後,該物理接口也不能直接配置IP地址。一般把接口轉換爲三層,是用來綁定***用的。

我就知道我一開始所探究的東西是不對的:我在我之後的實驗組圖中看到了:關閉portswitch的作用主要是用來做鏈路聚合還有上面提到的綁定***;

 

好了。上面這個實驗就這樣不了了之了。不過也無所謂;往這上個沒有解決的問題接着探究:

 

 

對於之前探討發現的問題:爲什麼不能夠ping通呢?

 

這個問題其實答案很簡單的:(以下個人理解:)

因爲我們在三層交換機上設置了虛擬接口VLANif10 ,並在這裏面設置了ip地址;(簡單說就是如果我的報文沒有出現在vlan10中,就不會發現該ip地址;);而我之前直接從PC1pingPC2,我沒有對發送的這個幀添加任何的標籤(vlan10),所以這個幀會按照默認的vlan1的方式去尋找目的ip。但是我們設置的ip地址是被添加到vlan10.所以纔會顯示了目的不可達的差錯;

所以解決辦法還是比較容易的:只要我們爲發送的幀添加上我們需要的vlan的標籤:

LSW2上做如下設置:

[Huawei-Ethernet0/0/1]port hybrid pvid vlan 10

[Huawei-Ethernet0/0/1]port hybrid untagged vlan 10

[Huawei-Ethernet0/0/3]port hybrid  tagged vlan all

在LSW1上做如下設置:

[ Huawei-Ethernet0/0/1]int e0/0/3

[Huawei-Ethernet0/0/3]port hybrid  tagged vlan all

利用最簡單的hybrid端口:讓添加了pvid標籤的幀在鏈路上傳遞;這樣子pc1ping通到PC2的幀都是帶有了pvid=10標籤,這樣才能找到在三層交換機上vlan10中設置的ip地址;

 

然後我還發現了一個小問題:就是如果你undo portswitch ,你就不能配置鏈路狀態:

http://jingyan.baidu.com/article/8275fc867c4e2946a03cf63c.html

既然所有的問題都明瞭了話,那就最後將整個網絡ping通吧~

結果我又發現了一個小問題:

 

 

現在就只針對這一邊的發送情況做一個簡單的測試,結果發現:PC1竟然能夠ping通PC2.正常來說這並不應該的啊,因爲我的PC1帶有的幀是pvid爲10 的,但是我在e0/0/2上設置了只允許pvid爲20的通過,然而他們還是ping通了。這不應該啊!

於是乎,我選擇在e0/0/3上進行抓包(搞不懂的就抓包!)

 

 

我們可以很清楚的發現:在這條鏈路上有request和reply兩種報文!

於是乎,我們再進一步看報文:

 

 

這個是request;我們可以看到802.1Q這個幀 id=10;

 

然而在reply報文中,我們發現了802.1Q這個幀的ID自動變成了id-=20;

正是因爲這樣的變化,才導致了ping報文能夠通過e0/0/2的篩選進入到目標主機中;

 

個人總結:對於三層路由器來說(或者二層也行吧),當設置了一個vlanif後,在這個虛擬口中設置ip,當有幀進入到了這個虛擬口中,會對它的目標地址進行路由:選擇正確的目標投遞;在這裏是vlanif=20的虛擬口;但是重要的是:它不僅會改變源MAC地址,還會改變802.1Q的標籤的值;改變爲目的虛擬口的vlan的值;

 

 

靈魂畫手的處女作品:

 

不過呢,這有帶來個小問題:就是vlan又被三層路由給破壞了。這個問題和之前探討的問題都出現了相同的麻煩。反正呢,能通就是好事。

 

現在所有的都能ping通啦。

 

 

不過呢,雖然他們都能夠互相ping通。不過還是有不一樣的地方,就是路由路徑:

 

這個是我用pc1ping通不同網段下的PC2的路徑:

這個是我用pc1 PING通 相同網段下的PC3的路徑;

 

 

最後總結下這個問題:其實路由這個東西很傻瓜的。他不知道目標的主機到底是不是自己同一網段還是被隔離的通一個網段;它只會知道:目標的和自己是同一網段,那就二層通信,如果目標的和自己不是同一網段,那就三層通信:

其實三層路由器的存在對於相同網段下的PC1和PC3是透明的,他根本不知道這個交換機的存在;

 

2017/3/2


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章