09-GVRP配置
本章節下載: 09-GVRP配置 (249.5 KB)
GARP(Generic Attribute Registration Protocol,通用屬性注冊協議)作為一個屬性注冊協議的載體,可以用來傳播屬性。遵循GARP協議的應用實體稱為GARP應用,GVRP(GARP VLAN Registration Protocol,GARP VLAN注冊協議)就是GARP的應用之一,用於注冊和注銷VLAN屬性。下麵首先了解一下GARP的相關內容。
GARP提供了一種機製,用於協助同一局域網內各成員之間分發、傳播和注冊某種信息(如VLAN、組播地址等)。
設備上每一個參與協議的端口都可以視為一個應用實體,當GARP應用(如GVRP)在端口上啟動之後,該端口就可視為一個GARP應用實體。
通過GARP機製,一個GARP應用實體上的配置信息會迅速傳遍整個局域網。如圖1-1所示,GARP應用實體通過發送聲明或回收聲明來通知其它GARP應用實體來注冊或注銷自己的屬性信息,並根據其它實體發來的聲明或回收聲明來注冊或注銷對方的屬性信息。
圖1-1 GARP實現機製示意圖
譬如,GVRP協議實現VLAN屬性注冊和注銷的方式如下:
· 當端口收到一個VLAN屬性的聲明時,該端口將注冊該聲明中所包含的VLAN屬性(即,該端口加入到該VLAN中)。
· 當端口收到一個VLAN屬性的回收聲明時,該端口將注銷該聲明中所包含的VLAN屬性(即,該端口退出該VLAN)。
GARP應用實體之間的信息交換借助於傳遞各種消息來完成,主要包括Join消息、Leave消息和LeaveAll消息,它們通過互相配合來確保信息的注冊或注銷。由於GVRP基於GARP實現,因此,GVRP也是通過GARP消息進行信息交互的。
(1) Join消息
當一個GARP應用實體希望其它GARP實體注冊自己的屬性信息時,它會發送Join消息;當收到來自其它實體的Join消息或由於本設備靜態配置了某些屬性而需要其它實體進行注冊時,它也會發送Join消息。Join消息又分為JoinEmpty和JoinIn兩種,二者的區別如下:
· JoinEmpty:用於聲明一個本身沒有注冊的屬性。
· JoinIn:用於聲明一個本身已經注冊的屬性。
(2) Leave消息
當一個GARP應用實體希望其它GARP實體注銷自己的屬性信息時,它會發送Leave消息;當收到來自其它實體的Leave消息注銷某些屬性或靜態注銷了某些屬性後,它也會發送Leave消息。Leave消息又分為LeaveEmpty和LeaveIn兩種,二者的區別如下:
· LeaveEmpty:用於注銷一個本身沒有注冊的屬性。
· LeaveIn:用於注銷一個本身已經注冊的屬性。
(3) LeaveAll消息
每個GARP應用實體啟動時都會啟動各自的LeaveAll定時器,當該定時器超時後,它就會發送LeaveAll消息來注銷所有的屬性,從而使其它GARP實體重新注冊屬性信息;當收到來自其它實體的LeaveAll消息時,它也會發送LeaveAll消息。在發送LeaveAll消息同時重新啟動LeaveAll定時器,開始新的一輪循環。
GARP定義了四種定時器,用於控製各種GARP消息的發送。
· GARP定時器值的改變將應用於同一局域網內所有運行的GARP應用(如GVRP)上。
· 設備的每個端口上都獨立維護自己的Hold定時器、Join定時器和Leave定時器,而每台設備則隻在全局維護一個LeaveAll定時器。
· Hold定時器、Join定時器、Leave定時器和LeaveAll定時器的取值範圍之間存在著相互製約的關係,具體情況請參見表1-5。
(1) Hold定時器
Hold定時器用來控製GARP消息(包括Join消息和Leave消息)的發送。當GARP應用實體的屬性改變或收到來自其它實體的GARP消息時,不會立即將該消息發送出去,而是在Hold定時器超時後,將此時段內待發送的所有GARP消息封裝成盡可能少的報文發送出去,這樣就減少了報文的發送數量,從而節省了帶寬資源。
(2) Join定時器
Join定時器用來控製Join消息的發送。為了保證Join消息能夠可靠地傳輸到其它實體,GARP應用實體在發出Join消息後將等待一個Join定時器的時間間隔:如果在該定時器超時前收到了其它實體發來的JoinIn消息,它便不會重發該Join消息;否則,它將重發一次該Join消息。
並非每個屬性都有自己的Join定時器,而是每個GARP應用實體共用一個。因此,Join定時器應該足夠大,以保證所有屬性能夠在一次聲明過程中全部發送出去。
(3) Leave定時器
Leave定時器用來控製屬性的注銷。當GARP應用實體希望其它實體注銷自己的某屬性信息時會發送Leave消息,收到該消息的實體將啟動Leave定時器,隻有在該定時器超時前沒有收到該屬性信息的Join消息,該屬性信息才會被注銷。
(4) LeaveAll定時器
每個GARP應用實體啟動時都會啟動各自的LeaveAll定時器,當該定時器超時後,GARP應用實體就會對外發送LeaveAll消息,從而使其它實體重新注冊屬性信息。隨後再重新啟動LeaveAll定時器,開始新一輪的循環。收到LeaveAll消息的實體將重新啟動所有的定時器,其中也包括LeaveAll定時器。
· 每一次LeaveAll定時器超時,都會引起全網所有屬性的注銷。由於其影響範圍很廣,所以LeaveAll定時器的值不能太小,其取值必須大於所有端口上Leave定時器的值,並建議用戶配置的LeaveAll定時器值不要小於其缺省值(即1000厘秒)。
· 盡管全網各設備上LeaveAll定時器的值有可能不同,但這些設備都將以LeaveAll定時器的全網最小值為周期來發送LeaveAll消息。這是由於各設備在收到LeaveAll消息後都會清零自己的LeaveAll定時器,而隻有具備最小LeaveAll定時器值的設備才來得及將LeaveAll消息發出,因此實際上隻有具備全網最小值的LeaveAll定時器才會生效。
圖1-2 GARP協議報文封裝格式
如圖1-2所示,GARP協議報文采用IEEE 802.3 Ethernet封裝格式,其中主要字段的說明如表1-1所示。
表1-1 GARP協議報文主要字段說明
字段 |
說明 |
GARP PDU |
封裝在GARP協議報文中的GARP PDU(Protocol Data Unit,協議數據單元) |
Protocol ID |
協議編號,GARP PDU的協議編號為0x0001 |
Message |
屬性消息,每個消息都由Attribute type和Attribute list兩個字段構成 |
End mark |
結束標誌,取值為0x00 |
Attribute type |
屬性類型,由具體的GARP應用來定義。取值為0x01時表示VLAN ID,代表GVRP應用 |
Attribute list |
屬性列表,由多個屬性構成 |
Attribute |
屬性,每個屬性都由Attribute length、Attribute event和Attribute value這三個字段構成 |
Attribute length |
屬性長度(包括本字段在內),取值範圍為2~255,單位為字節 |
Attribute event |
屬性所描述的事件,取值及含義如下: · 0x00:表示LeaveAll事件 · 0x01:表示JoinEmpty事件 · 0x02:表示JoinIn事件 · 0x03:表示LeaveEmpty事件 · 0x04:表示LeaveIn事件 · 0x05:表示Empty事件 |
Attribute value |
屬性取值。GVRP應用的屬性取值為VLAN ID,但當Attribute event字段的取值為0x00時(即LeaveAll事件),本字段無效 |
GARP協議報文以特定組播MAC地址為目的MAC,如GVRP的目的MAC地址為01-80-C2-00-00-21。當設備在收到GARP應用實體的報文後,會根據其目的MAC地址分發給不同的GARP應用進行處理。
GVRP是GARP應用的一種,它基於GARP的工作機製來維護設備中的VLAN動態注冊信息,並將該信息向其它設備傳播:當設備啟動了GVRP之後,就能夠接收來自其它設備的VLAN注冊信息,並動態更新本地的VLAN注冊信息,包括當前的VLAN成員及這些VLAN成員可通過哪個端口到達等;此外,設備還能夠將本地的VLAN注冊信息向其它設備傳播,從而使同一局域網內所有設備的VLAN信息都達成一致。
GVRP傳播的VLAN注冊信息既包括本地手工配置的靜態注冊信息,也包括來自其它設備的動態注冊信息。
我們將通過手工創建的VLAN稱為靜態VLAN,通過GVRP協議創建的VLAN稱為動態VLAN。GVRP有三種注冊模式,不同注冊模式對靜態VLAN和動態VLAN的處理方式也不同。
(1) Normal模式
該模式下的端口允許進行動態VLAN的注冊或注銷,並允許發送動態和靜態VLAN的聲明。
(2) Fixed模式
該模式下的端口禁止進行動態VLAN的注冊或注銷,且隻允許發送靜態VLAN的聲明。也就是說,該模式下的Trunk端口,即使允許所有VLAN通過,實際通過的VLAN也隻能是手工創建的那部分VLAN。
(3) Forbidden模式
該模式下的端口禁止進行動態VLAN的注冊或注銷,且隻允許發送VLAN 1的聲明。也就是說,該模式下的Trunk端口,即使允許所有VLAN通過,實際通過的VLAN也隻能是VLAN 1。
與GVRP相關的協議規範有:
· IEEE 802.1Q:Virtual Bridged Local Area Networks
表1-2 GVRP配置任務簡介
配置任務 |
說明 |
詳細配置 |
配置GVRP功能 |
必選 |
|
配置GARP定時器 |
可選 |
對於GVRP的相關配置來說:
· 以太網接口視圖下或二層聚合接口視圖下的配置隻對當前接口有效;端口組視圖下的配置對當前端口組中的所有端口有效。
· 聚合成員端口上的配置隻有當該端口退出聚合組後才會生效。
在使能端口的GVRP功能之前,必須先全局使能GVRP功能。此外,GVRP功能隻能配置在Trunk端口上,並且需要通過配置來保證所有動態注冊的VLAN都能夠從該端口通過。
表1-3 配置GVRP功能
操作 |
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
|
全局使能GVRP功能 |
gvrp |
必選 缺省情況下,全局的GVRP功能處於關閉狀態 |
|
進入相應視圖 |
進入以太網或二層聚合接口視圖 |
interface interface-type interface-number |
二者必選其一 |
進入端口組視圖 |
port-group manual port-group-name |
||
配置端口的鏈路類型為Trunk類型 |
port link-type trunk |
必選 缺省情況下,端口的鏈路類型為Access類型 |
|
允許所有VLAN都通過當前Trunk端口 |
port trunk permit vlan all |
必選 缺省情況下,Trunk端口隻允許VLAN 1通過 |
|
使能端口上的GVRP功能 |
gvrp |
必選 缺省情況下,端口上的GVRP功能處於關閉狀態 |
|
配置GVRP端口的注冊模式 |
gvrp registration { fixed | forbidden | normal } |
可選 缺省情況下,GVRP端口的注冊模式為Normal模式 需要注意的是,在配置Forbidden模式時,建議用戶保證該端口允許VLAN 1通過 |
· 有關port link-type trunk和port trunk permit vlan all命令的詳細介紹,請參見“二層技術-以太網交換命令參考”中的“VLAN”。
· GVRP功能與業務環回功能互斥,兩者不可以同時應用。
· GVRP功能隻能與STP、RSTP或MSTP CIST配合使用,而無法與PVST配合使用。在與MSTP CIST配合使用時,CIST上被MSTP阻塞的端口將不能收發GVRP協議報文。有關STP、RSTP、MSTP CIST和PVST的詳細介紹,請參見“二層技術-以太網交換配置指導”中的“生成樹”。
· 建議不要同時啟用遠程端口鏡像功能和GVRP功能,否則GVRP可能將遠程鏡像VLAN注冊到不希望的端口上,此時在鏡像目的端口就會收到很多不必要的報文。有關端口鏡像的詳細介紹,請參見“網絡管理和監控配置指導”中的“鏡像”。
· 在二層聚合接口上啟用了GVRP功能後,會同時在二層聚合接口和對應的所有選中成員端口上進行動態VLAN的注冊或注銷。
在配置GARP定時器時:
· LeaveAll定時器的配置將對所有端口都生效;
· Hold定時器、Join定時器和Leave定時器的配置隻對所配置的端口生效。
表1-4 配置GARP定時器
命令 |
說明 |
||
進入係統視圖 |
system-view |
- |
|
配置LeaveAll定時器 |
garp timer leaveall timer-value |
可選 缺省情況下,LeaveAll定時器的值為1000厘秒 |
|
進入相關視圖 |
進入以太網或二層聚合接口視圖 |
interface interface-type interface-number |
二者必選其一 |
進入端口組視圖 |
port-group manual port-group-name |
||
配置Hold定時器 |
garp timer hold timer-value |
可選 缺省情況下,Hold定時器的值為10厘秒 |
|
配置Join定時器 |
garp timer join timer-value |
可選 缺省情況下,Join定時器的值為20厘秒 |
|
配置Leave定時器 |
garp timer leave timer-value |
可選 缺省情況下,Leave定時器的值為60厘秒 |
如表1-5所示,各GARP定時器的取值範圍之間存在著相互製約的關係:
· 當配置某定時器時,如果配置值超出了該定時器當前有效的取值範圍,則該配置無效。用戶可以通過改變相關定時器的值來重新進行配置。
· 當用戶欲恢複各定時器的值為缺省值時,須按照Hold定時器->Join定時器->Leave定時器->LeaveAll定時器的順序依次恢複。
過小的LeaveAll定時器值可能會影響通過GVRP學習到的動態VLAN的穩定性,建議LeaveAll定時器的取值不要小於其缺省值(即1000厘秒)。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後GARP或GVRP的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以清除GARP的統計信息。
表1-6 GVRP顯示和維護
操作 |
命令 |
顯示端口上GARP的統計信息 |
display garp statistics [ interface interface-list ] [ | { begin | exclude | include } regular-expression ] |
顯示端口上各GARP定時器的取值 |
display garp timer [ interface interface-list ] [ | { begin | exclude | include } regular-expression ] |
顯示端口上GVRP本地VLAN的信息 |
display gvrp local-vlan interface interface-type interface-number [ | { begin | exclude | include } regular-expression ] |
顯示端口上指定VLAN內各GVRP狀態機的信息 |
display gvrp state interface interface-type interface-number vlan vlan-id [ | { begin | exclude | include } regular-expression ] |
顯示Trunk端口上GVRP的統計信息 |
display gvrp statistics [ interface interface-list ] [ | { begin | exclude | include } regular-expression ] |
顯示GVRP的全局狀態信息 |
display gvrp status [ | { begin | exclude | include } regular-expression ] |
顯示端口上當前的動態VLAN操作信息 |
display gvrp vlan-operation interface interface-type interface-number [ | { begin | exclude | include } regular-expression ] |
清除端口上GARP的統計信息 |
reset garp statistics [ interface interface-list ] |
· Device A和Device B分別通過各自的端口GigabitEthernet3/0/1相連。
· 通過啟用GVRP功能,並配置GVRP的注冊模式為Normal模式,來實現Device A和Device B之間所有動態和靜態VLAN的注冊。
圖1-3 GVRP Normal注冊模式配置組網圖
(1) 配置Device A
# 全局使能GVRP功能。
<DeviceA> system-view
[DeviceA] gvrp
# 將端口GigabitEthernet3/0/1配置為Trunk端口,並允許所有VLAN通過。
[DeviceA] interface GigabitEthernet 3/0/1
[DeviceA-GigabitEthernet3/0/1] port link-type trunk
[DeviceA-GigabitEthernet3/0/1] port trunk permit vlan all
# 在端口GigabitEthernet3/0/1上使能GVRP功能。
[DeviceA-GigabitEthernet3/0/1] gvrp
[DeviceA-GigabitEthernet3/0/1] quit
# 配置靜態VLAN 2。
[DeviceA] vlan 2
[DeviceA-vlan2] quit
(2) 配置Device B
# 使能全局的GVRP功能。
<DeviceB> system-view
[DeviceB] gvrp
# 將端口GigabitEthernet3/0/1配置為Trunk端口,並允許所有VLAN通過。
[DeviceB] interface GigabitEthernet 3/0/1
[DeviceB-GigabitEthernet3/0/1] port link-type trunk
[DeviceB-GigabitEthernet3/0/1] port trunk permit vlan all
# 在端口GigabitEthernet3/0/1上使能GVRP功能。
[DeviceB-GigabitEthernet3/0/1] gvrp
[DeviceB-GigabitEthernet3/0/1] quit
# 配置靜態VLAN 3。
[DeviceB] vlan 3
[DeviceB-vlan3] quit
(3) 檢驗配置效果
通過使用display gvrp local-vlan命令可以查看端口上GVRP本地VLAN的信息,例如:
# 查看Device A的端口GigabitEthernet3/0/1上GVRP本地VLAN的信息。
[DeviceA] display gvrp local-vlan interface GigabitEthernet 3/0/1
Following VLANs exist in GVRP local database:
1(default),2-3
由此可見,VLAN 1的信息、在本設備上創建VLAN 2的靜態VLAN信息,以及在Device B上創建VLAN 3的動態VLAN信息都已通過GVRP協議進行了注冊。
# 查看Device B的端口GigabitEthernet3/0/1上GVRP本地VLAN的信息。
[DeviceB] display gvrp local-vlan interface GigabitEthernet 3/0/1
Following VLANs exist in GVRP local database:
1(default),2-3
由此可見,VLAN 1的信息、在本設備上創建VLAN 3的靜態VLAN信息,以及在Device A上創建VLAN 2的動態VLAN信息都已通過GVRP協議進行了注冊。
· Device A和Device B分別通過各自的端口GigabitEthernet3/0/1相連。
· 通過啟用GVRP功能,並配置GVRP的注冊模式為Fixed模式,來實現Device A和Device B之間所有靜態VLAN的注冊。
圖1-4 GVRP Fixed注冊模式配置組網圖
(1) 配置Device A
# 全局使能GVRP功能。
<DeviceA> system-view
[DeviceA] gvrp
# 將端口GigabitEthernet3/0/1配置為Trunk端口,並允許所有VLAN通過。
[DeviceA] interface GigabitEthernet 3/0/1
[DeviceA-GigabitEthernet3/0/1] port link-type trunk
[DeviceA-GigabitEthernet3/0/1] port trunk permit vlan all
# 在端口GigabitEthernet3/0/1上使能GVRP功能,並配置其注冊模式為Fixed模式。
[DeviceA-GigabitEthernet3/0/1] gvrp
[DeviceA-GigabitEthernet3/0/1] gvrp registration fixed
[DeviceA-GigabitEthernet3/0/1] quit
# 配置靜態VLAN 2。
[DeviceA] vlan 2
[DeviceA-vlan2] quit
(2) 配置Device B
# 使能全局的GVRP功能。
<DeviceB> system-view
[DeviceB] gvrp
# 將端口GigabitEthernet3/0/1配置為Trunk端口,並允許所有VLAN通過。
[DeviceB] interface GigabitEthernet 3/0/1
[DeviceB-GigabitEthernet3/0/1] port link-type trunk
[DeviceB-GigabitEthernet3/0/1] port trunk permit vlan all
# 在端口GigabitEthernet3/0/1上使能GVRP功能,並配置其注冊模式為Fixed模式。
[DeviceB-GigabitEthernet3/0/1] gvrp
[DeviceB-GigabitEthernet3/0/1] gvrp registration fixed
[DeviceB-GigabitEthernet3/0/1] quit
# 配置靜態VLAN 3。
[DeviceB] vlan 3
[DeviceB-vlan3] quit
(3) 檢驗配置效果
通過使用display gvrp local-vlan命令可以查看端口上GVRP本地VLAN的信息,例如:
# 查看Device A的端口GigabitEthernet3/0/1上GVRP本地VLAN的信息。
[DeviceA] display gvrp local-vlan interface GigabitEthernet 3/0/1
Following VLANs exist in GVRP local database:
1(default), 2
由此可見,VLAN 1的信息以及在本設備上創建VLAN 2的靜態VLAN信息已通過GVRP協議進行了注冊,而在Device B上創建VLAN 3的動態VLAN信息並未通過GVRP協議進行注冊。
# 查看Device B的端口GigabitEthernet3/0/1上GVRP本地VLAN的信息。
[DeviceB] display gvrp local-vlan interface GigabitEthernet 3/0/1
Following VLANs exist in GVRP local database:
1(default), 3
由此可見,VLAN 1的信息以及在本設備上創建VLAN 3的靜態VLAN信息已通過GVRP協議進行了注冊,而在Device A上創建VLAN 2的動態VLAN信息並未通過GVRP協議進行注冊。
· Device A和Device B分別通過各自的端口GigabitEthernet3/0/1相連。
· 通過啟用GVRP功能,並配置GVRP的注冊模式為Forbidden模式,來阻止Device A和Device B之間除VLAN 1以外所有VLAN的注冊。
圖1-5 GVRP Forbidden注冊模式配置組網圖
(1) 配置Device A
# 全局使能GVRP功能。
<DeviceA> system-view
[DeviceA] gvrp
# 將端口GigabitEthernet3/0/1配置為Trunk端口,並允許所有VLAN通過。
[DeviceA] interface GigabitEthernet 3/0/1
[DeviceA-GigabitEthernet3/0/1] port link-type trunk
[DeviceA-GigabitEthernet3/0/1] port trunk permit vlan all
# 在端口GigabitEthernet3/0/1上使能GVRP功能,並配置其注冊模式為Forbidden模式。
[DeviceA-GigabitEthernet3/0/1] gvrp
[DeviceA-GigabitEthernet3/0/1] gvrp registration forbidden
[DeviceA-GigabitEthernet3/0/1] quit
# 配置靜態VLAN 2。
[DeviceA] vlan 2
[DeviceA-vlan2] quit
(2) 配置Device B
# 使能全局GVRP。
<DeviceB> system-view
[DeviceB] gvrp
# 將端口GigabitEthernet3/0/1配置為Trunk端口,並允許所有VLAN通過。
[DeviceB] interface GigabitEthernet 3/0/1
[DeviceB-GigabitEthernet3/0/1] port link-type trunk
[DeviceB-GigabitEthernet3/0/1] port trunk permit vlan all
# 在端口GigabitEthernet3/0/1上使能GVRP功能,並配置其注冊模式為Forbidden模式。
[DeviceB-GigabitEthernet3/0/1] gvrp
[DeviceB-GigabitEthernet3/0/1] gvrp registration forbidden
[DeviceB-GigabitEthernet3/0/1] quit
# 配置靜態VLAN 3。
[DeviceB] vlan 3
[DeviceB-vlan3] quit
(3) 檢驗配置效果
通過使用display gvrp local-vlan命令可以查看端口上GVRP本地VLAN的信息,例如:
# 查看Device A的端口GigabitEthernet3/0/1上GVRP本地VLAN的信息。
[DeviceA] display gvrp local-vlan interface GigabitEthernet 3/0/1
Following VLANs exist in GVRP local database:
1(default)
由此可見,除VLAN 1的信息外,在本設備上創建VLAN 2的靜態VLAN信息,以及在Device B上創建VLAN 3的動態VLAN信息都未通過GVRP協議進行注冊。
# 查看Device B的端口GigabitEthernet3/0/1上GVRP本地VLAN的信息。
[DeviceB] display gvrp local-vlan interface GigabitEthernet 3/0/1
Following VLANs exist in GVRP local database:
1(default)
由此可見,除VLAN 1的信息外,在本設備上創建VLAN 3的靜態VLAN信息,以及在Device A上創建VLAN 2的動態VLAN信息都未通過GVRP協議進行注冊。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!