論router-on-a-stick和VLAN-IF

前幾日有同學在韓老師的會員羣裏面提了這樣一個問題:

有個問題搞半天沒弄明白,我在覈心交換機上劃分了幾個vlan,其中一個端口與防火牆相連,防火牆配置爲192.168.100.1/30,核心交換機上連接防火牆的接口沒有配置IP,而是將這個接口加入到了vlan100下邊,vlan100的IP是192.168.100.2/30,華爲工程師說這樣就行了,我不理解爲什麼交換機端口不用設置IP?

曾經我也有此疑問,後來隨着對交換機的理解不斷加深,這個問題就慢慢解決了,於是我寫了一些自己的理解給這個同學,下面我把我的回答整理一下。

首先,從一個比較淺層面的角度去回答一下這位同學的疑問,這位同學不理解爲什麼交換機端口不能設置IP,交換機的物理接口本就不能設置IP地址(忽略接口狀態轉換的前提下),如果我就這樣告訴這位同學的話,這個同學依然對此問題迷茫,我想從一個主觀的、比較深的層次去理解一下這個問題。

我認爲這位同學是因爲對交換機的理解過於淺薄,我認爲他的淺薄之處有三:

1.誤認爲交換機的二層物理接口可以配置IP地址。

2.於vlanif接口理解不深刻。

3.對交換機進行三層轉換時的路由和TAG理解的不透徹。

先解決一下這位同學的第一個淺薄之處。這位同學誤認爲在二層接口可以配置IP地址!實際上二層是不能配置IP地址的,因爲IP地址是網絡層的概念(三層),而交換機的物理接口屬於鏈路層的概念(二層),三層對二層,這豈不是“對牛彈琴”。二層的物理接口只可以有MAC地址,因爲MAC地址也是二層的;IP是三層概念,因此只能配置在三層接口上,而二層交換機是沒有三層物理接口的,但是三層交換機是有三層的邏輯接口的,我們可以把IP地址配置在交換機的三層邏輯接口上。上述是在沒有考慮到接口狀態轉換的情況下,現在有一些交換機是可以進行接口狀態轉換的,就是把二層接口轉換成三層的,僅僅需要一個命令就足夠,當交換機的二層接口轉換成爲三層接口之後,IP地址就可以配置在接口之上了,因爲這是典型的三層概念對三層接口。

然後再解決一下這位同學的第二個理解上淺薄之處。這位同學對vlanif接口沒有概念。我們在說到在交換機上有三層邏輯接口時,其實這個三層邏輯接口就是vlanif接口,這個vlanif接口,這個vlanif接口到底是個什麼東西呢?我們可以把這個vlanif接口理解成爲單臂路由上的路由接口嵌入到了交換機內部了,至於單臂路由的路由轉發過程,我會再下文當中說明。

最後再解決一下這位同學的第三理解上的個淺薄之處。其實這個最是關鍵,因爲vlanif接口涉及到路由轉發和TAG的轉換。我們通過一個小實驗來說明兩臺計算機通信時路由轉發和TAG轉換過程。

image.png

PC1與PC2之間的通信過程:192.168.10.1---------------192.168.20.1

第一步:PC1會對目標IP(192.168.20.1)進行與運算,發現目標IP與本地IP並不是處在同一個網段當中,所以PC1下一步會發ARP廣播訪問網關(192.168.10.254)的MAC地址,ARP包從G0/0/1接口進入交換機內部之後會被打上VLAN10的TAG,交換機會交此報文轉發至所有屬於vlan10的接口,其中G0/0/1接口屬於vlan10接口,此外還有一個接口屬於vlan10裏面的接口,就是vlanif10接口,這個接口也屬於vlan10,並且這個接口的IP就是網關,所以vlanif10接口就會通過ARP的回覆包告知PC1自己的MAC地址。

第二步:PC1將網關的MAC地址封裝好之後,將數據包發送到網關之上,網關收到之後會解封裝至三層,看見了目標IP是192.168.20.1之後會進行路由,路由的過程就是查看自己的路由表,看有沒有到達192.168.20.1的路由條目?結果會發現有一條到達192.168.20.0/24網段的路由,這個路由指向vlanif20這個接口,意思就是到達192.168.20.1/24,下一跳交給vlanif20這個接口就可以了。

第三步:當vlanif20這個接口收到數據包之後,發現目標IP是192.168.20.1,與自己是在一個網段,於是VLANIF20接口會發送ARP請求報文請求目標IP(PC2)的MAC地址,在這個過程當中數據包由原本的TAG由VLAN10變化成了VLAN20,爲什麼TAG要轉換成VLAN20呢?因爲ACCESS接口只會向外發送本幀VLAN,如果不把TAG更換的話,數據包是無法從交換機的vlanif20接口向外發送的,因爲VLANIF20也有ACCESS接口屬性,它的本幀VLAN也是VLAN20。


注意:VLANIF20接口只是通過G0/0/2接口進行轉發,VLANIF20和G0/0/2並不是一個接口。


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