HCNA Routing&Switching之GVRP

1874發表於2021-08-07

  前文我們瞭解了不同vlan間路由相關話題,回顧請參考https://www.cnblogs.com/qiuhom-1874/p/15110336.html,今天我們來聊一聊vlan動態註冊相關話題;

  首先在說GVRP之前我們先來了解下GARP;GARP是Generic Attribute Registration Protocol的首字母縮寫,通用屬性註冊協議;它是一種協議規範,主要作用是用來在交換機間分發、傳播、註冊某種資訊(VLAN屬性、組播地址等),主要用於大中型網路中,用來提升交換機的管理效率;而GVRP是GARP的一種具體實現,GARP VLAN Registration Protocol,VLAN註冊協議;主要用於維護裝置動態VLAN屬性;通過GVRP協議,一臺交換機的vlan會迅速傳播至整個交換網路;GVRP實現了VLAN屬性的動態分發,註冊和傳播,從而減少了管理員的工作量,也能保證VLAN配置的正確性;

  技術背景

  實驗:如下拓撲,實現相同VLAN的pc互通

  分析:上述實驗拓撲要想實現pc1 和pc3 通訊,pc2和pc4通訊,我們只需要在sw1和sw2上建立vlan 10 和vlan 20,然後把對應的埠加入到對應的vlan裡,然後把各交換機相互連線的埠設定為trunk即可;

  sw1的配置

HCNA Routing&Switching之GVRP
sys
sys sw1
vlan batch 10 20
int g0/0/1
p l a
p d v 10
int g0/0/3
p l a
p d v 20
int g0/0/2
p l t
p t a v 10 20 
View Code

  驗證:檢視sw1上的vlan資訊

  sw2的配置

HCNA Routing&Switching之GVRP
sys
sys sw2
int g0/0/1
p l t
p t a v all 
int g0/0/2
p l t
p t a v all
View Code

  驗證:檢視sw2的埠vlan資訊

  提示:可以看到g0/0/1和g0/0/2兩個介面都是trunk,並允許所有vlan通過;

  sw3的配置

HCNA Routing&Switching之GVRP
sys
sys sw3
vlan batch 10 20
int g0/0/1
p l a
p d v 10
int g0/0/3
p l a
p d v 20
int g0/0/2
p l t
p t a v 10 20
View Code

  驗證:檢視sw3的vlan資訊

  驗證:pc1 ping pc3或者pc2ping pc4看看是否能通?

  提示:可以看到pc1現在ping不通pc3,同樣pc2也ping不通pc4;

  在sw2的g0/0/1口上抓包看看,看看對應pc1pingpc2的包是否過去了?

  提示:可以看到pc1傳送到arp廣播到達了sw2,但是沒有回覆;

  在sw2的g0/0/2口抓包,看看對應arp是否通過了g0/0/2?

  提示:可以看到在sw2口g0/0/2口抓包,並沒有抓到pc1傳送到arp廣播,這說明pc1傳送的資料在sw2就被丟棄了;這是為什麼呢?其實原因很簡單,在pc1傳送arp廣播時,在sw1收到以後,它會被打傷vlan10的標籤,然後從sw1的g0/0/2口傳送出去,在sw2收到了sw1傳送到帶有vlan10的標籤的資料包時,雖然sw2的trunk都允許所有vlan的資料包通過,但是sw2上並沒有vlan10 和vlan20,所以sw2並沒有任何一個埠是在vlan10 和vlan20 ,所以當sw2收到帶有vlan10 或vlan20標籤的資料,它根據就泛洪不出去(交換機泛洪是在同vlan埠下泛洪,預設都是vlan1);

  解決上述問題的方式很簡單,就是在sw2上面建立vlan10 或vlan20即可;

  驗證:在sw2上建立vlan10,看看pc1是否能夠ping通pc3呢?

  提示:可以看到當sw2上建立vlan10以後,對應g0/0/1和g0/0/2口會自動加入到這個vlan裡(原因是trunk允許vlan列表裡包含vlan10);此時如果sw2收到帶有vlan10的標籤廣播,就可以從g0/0/1和g0/0/2口泛洪出去;

  驗證:pc1 ping pc3 看看是否能通?

  提示:可以看到此時pc1就能ping通pc3了;從上面的實驗我們可以總結一點,如果同vlan跨裝置通訊,沿途鏈路所有交換機必須要有對應的vlan,資料包才能從該交換機通過,僅僅是trunk允許對應vlan,沒有對應vlan,資料包是泛洪不出去的;

  GVRP主要就是解決上述類似問題,上面實驗拓撲比較簡單,我們是手動建立vlan就解決了問題,當現網拓撲環境複雜,vlan較多,人工手動管理vlan很容易出錯,為了方便管理員配置和動態的管理vlan,GVRP可以實現動態的註冊、登出vlan,讓其他交換機動態的學習vlan,並自動將對應埠加入到對應vlan裡;

  GVRP的應用

  1、接收來自其它交換機的VLAN註冊資訊,並動態更新本地的VLAN註冊資訊,包括當前的VLAN、VLAN成員等。

  2、將本地的VLAN註冊資訊向其它交換機傳播,以便使同一交換網內所有支援GVRP特性的裝置的VLAN資訊達成一致。

  3、交換機可以靜態建立VLAN,也可以動態通過GVRP獲取VLAN資訊。手動配置的VLAN是靜態VLAN,通過GVRP建立的VLAN是動態VLAN。GVRP傳播的VLAN註冊資訊包括本地手工配置的靜態註冊資訊和來自其它交換機的動態註冊資訊。

  GARP訊息型別

  提示:當一個交換機希望其他交換機註冊自己的屬性,它會對外傳送join訊息;當一個交換機希望其他交換機登出自己的屬性資訊時,它會對外傳送leave訊息;當交換機傳送leave all訊息時,收到該訊息的其他交換機會登出所有的屬性;

  實驗:還是上述實驗拓撲,各交換機在對應介面開啟GVRP,然後在sw1上靜態建立vlan20,看看其他交換機上的vlan變化

  sw1的g0/0/2口開啟gvrp

  sw2的g0/0/1和g0/0/2口開啟gvrp

  sw3的g0/0/2口開啟gvrp

  提示:開啟GVRP必須要在系統模式下現全域性開啟gvrp,然後進入埠模式再開啟gvrp才行,其次gvrp只能在trunk口上開啟,非trunk口開啟不了;

  驗證:檢視sw2上是否學習到vlan20?

  提示:可以看到在sw2上,通過gvrp學習到了vlan20,並把g0/0/1口和g0/0/2口都加入到vlan20裡;這裡說明一點,gvrp的註冊和登出都是單向,只有收到gvrp訊息的埠才能學習並加入到對應vlan裡;對於登出也是單向的,只有收到對應gvrp的leave訊息,對應埠才會從對應vlan裡刪除;

  GVRP單向註冊

  實驗:在上述實驗環境中,在sw1上建立vlan100,看看sw2和sw3那些埠可以加入到vlan100?

  提示:這裡需要注意一點,我們建立的vlan必須是對應trunk允許列表裡的vlan,對應vlan才會被髮送出去,讓其他交換機學習註冊;

  驗證:檢視sw2上的vlan資訊

  提示:可以看到在sw2上,動態的建立了vlan100,並且g0/0/1口加入到vlan100裡,g0/0/2口並沒有加入到vlan 100裡,其原因是g0/0/2口並沒有收到交換機1的join訊息;

  驗證:檢視sw3上的vlan資訊

  提示:可以看到sw3上並沒有學習到vlan100,其原因是vlan100沒有在sw3的trunk口的允許列表裡,所以sw3沒有學習到vlan100;

  驗證:修改sw3trunk的允許列表為允許所有vlan,看看sw3是否能夠學習到vlan100 呢?

  提示:可以看到當把sw3的g0/0/2口的允許vlan列表修改為允許所有vlan通過後,對應sw3就學習到vlan100並且g0/0/2口也加入到vlan100裡(原因是g0/0/2口能夠收到sw2轉發的join訊息);

   GVRP單向登出

  實驗:在上述實驗環境中,在sw3上刪除vlan20,看看sw2上的vlan資訊會有什麼變化?

  提示:可以看到在sw3上刪除了vlan20以後,對應vlan20從原來的靜態變為了動態,並且對應g0/0/2口加入其中,這說明這個動態的vlan20是從g0/0/2口收到的,即從sw2學習到的vlan20;

  驗證:檢視sw2上的vlan資訊

  提示:從上面的截圖可以看到,在sw3上刪除vlan20之前,sw2上g0/0/1和g0/0/2口都加入到vlan20;在sw3上刪除vlan20以後,對應g0/0/2口就從vlan20裡刪除,g0/0/1口還在vlan20裡;這裡的原因和單向註冊是一樣的,因為g0/0/1收到了sw3的leave訊息,所以g0/0/2從vlan20裡刪除,而g0/0/1並沒有收到sw3的leave訊息,所以它還會在vlan20裡;

  驗證:檢視sw1上的vlan資訊,看看有什麼變化沒有?

  提示:在sw1上檢視vlan資訊,對應vlan20並沒有什麼變化,原因是在sw1上vlan20是我們手動建立的,靜態建立的vlan優先順序要比動態學習的優先順序高,所以即便sw1收到sw2轉發的leave資訊,sw1上的vlan20也不會被刪除,對應埠也不會從vlan20裡刪除;通過上述的實驗,我們可以總結一點,GVRP的註冊和登出都是單向的,只有收到對應訊息的埠才會加入對應的vlan或者從對應vlan裡刪除;其次靜態優先順序高於動態;

  GVRP的註冊模式

  GVRP的註冊模式有三種,分別是normal,fixed,forbidden模式;預設開啟gvrp時就是normal模式;

  1、normal模式:預設模式,允許對應埠靜態和動態vlan註冊,登出,同時會傳送動態和靜態vlan的宣告訊息(即,埠為normal模式,它會接收和傳送其他交換機傳送的動態和靜態的vlan註冊或登出訊息);

  2、fixed模式:不允許動態vlan在埠上註冊或登出,且只傳送靜態vlan的宣告訊息;(我們可以理解為fixed模式只能傳送靜態vlan的註冊或登出,不學習動態vlan,如果之前學習的有,隨之刪除,它只限制本交換機對應埠學習和傳送動態vlan資訊)

  3、forbidden模式:不允許動態vlan在埠上註冊或登出,同時刪除埠上除vlan1外的所有vlan;即不學習動態VLAN,同時將對應埠之前學習到的vlan全部清空,保留VLAN1;

  驗證:檢視sw1的gvrp的註冊模式

  驗證:上述實驗,在sw1上將g0/0/2的註冊模式修改為forbidden模式,看看對應vlan會有什麼變化?

  提示:可以看到在sw1上將註冊模式修改為forbidden以後,對應g0/0/2在所有除vlan1以外的所有vlan裡被刪除了;

  驗證:檢視sw2和sw3上的vlan,看看有什麼變化?

  提示:可以看到在sw2上和sw3之前在sw1上學習的vlan20也隨之被登出;

  驗證:在sw3上建立vlan1000,看看sw1是否會學習呢?

  在sw3上建立vlan1000

  在sw1上檢視,是否學習到sw3上的vlan1000呢?

  提示:可以看到在sw3上建立vlan 1000,在sw1上並沒有學習;說明把註冊模式修改為forbidden以後,對應鏈路上的動態vlan對於該埠來說,它不會學習,同時它會向外傳送登出所有vlan訊息,讓其他交換機刪除從該埠學習到的動態vlan;即該模式下對應埠即不傳送動態或靜態註冊訊息,也不接受別的交換機傳送的註冊或登出訊息,同時它只會傳送leave all訊息給其他交換機;

  驗證:將上述實驗中sw3的g0/0/2口註冊模式修改為fixed,看看對應vlan有什麼變化?

  提示:可以看到在sw3上把g0/0/2修改為fixed模式,對應sw3來說,vlan資訊並沒有什麼變化,其原因是在sw3上的所有vlan都是靜態的;

  驗證:在sw2上建立vlan500,看看sw3是否能夠學習到呢?

  提示:我們在sw3的g0/0/2口修改註冊模式為fixed,對應sw2上的vlan資訊也沒有變化,vlan1000還是可以從sw3學習到;

  在sw3上檢視對應vlan500是否學習到?

  提示:可以看到在sw3上並沒有學習到vlan500;通過上述實驗我們可以看到fixed註冊模式,只是限制了對應埠動態學習別的交換機的vlan資訊,當並不影響自己向其他交換機傳送自己的vlan資訊,也不影響別的交換機學習自己的vlan資訊,和forbidden模式相比,fixed模式只限制自己學習別的交換機的vlan資訊(如果之前有動態學習到的vlan,會隨之被刪除,從該埠轉發的動態vlan給其他交換機,其他交換機上對應的vlan資訊也會被刪除,即該埠只有靜態vlan,沒有動態vlan,動態vlan從該埠也過不去,只有靜態vlan從該埠出去),並不限制其他交換機學習自己的vlan資訊;而forbidden模式,它即限制了自己學習別的交換機vlan資訊,同時也限制了別的交換機學習自己的vlan資訊;

相關文章