HCNA Routing&Switching之GVRP


  前文我們了解了不同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的配置

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的配置

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的配置

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信息;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM