概述
GMRP(garp multicast registration protocol,garp 組播注冊協議)是基于 GARP(Generic Attribute Registration Protocol,通用屬性注冊協議)的一個組播注冊協議, 用于注冊和注銷組播屬性。
技術介紹
GMRP 協議是一個動態二層組播注冊協議,所有支持 GMRP 的
交換機都能夠接收來自其他交換機的組播注冊信息,并動態更新本地的組播注冊信息,同時也能將本地的組播注冊信息向其他交換機傳播。這種信息交換機制,確保了同一交換網內所有支持 GMRP 的設備維護的組播信息的一致性。
當一臺主機想要加入某個組播組時,它將發出 GMRP 加入消息。交換機將接到 GMRP 加入消息的端口加入到該組播組中,并在接收端口所在的 VLAN 中廣播該 GMRP 加入消息,VLAN中的組播源就可以知曉組播成員的存在。當組播源向組播組發送組播報文時,交換機就只把組播報文轉發給與該組播組成員相連的端口,從而實現了在 vlan 內的二層組播。
交換機會周期性發送 GMRP 查詢,如果主機想留在組播組中,它就會響應 GMRP 查詢, 在該情況下,交換機沒有任何操作;如果主機不想留在組播組中,它既可以發送一個 leave 信息也可以不響應周期性 GMRP 查詢。一旦交換機在計時器(leave all timer)設定期間收到主機 leave 信息或沒有收到響應信息,它便從組播組中刪除該主機。
那么為什么需要二層組播協議呢?與 IGMP 協議一樣,如果我們在自己的局域網內成立一個組播組,可能我們的局域網包含了很多交換機。如果這些交換機沒有實現二層組播協議的話,那么某個組員給其他組員發送數據包時,交換機就會將該數據包向所有的端口廣播。因為交換機不知道哪個端口有人加入了該組播組,唯一的解決辦法就是管理員配置交換機,只有這樣才能將這種廣播轉發數據包的發送方式限制住。而組播本身是動態的,所以通過這種靠管理員的配置來實現組播的方式是不現實的。因此,就需要有一個二層組播協議來動態管理組員。
GMRP 消息類型
1.Join 消息
當一個 GMRP 應用實體希望其它設備注冊自己的屬性信息時,它將對外發送 Join 消息; 當收到其它實體的 Join 消息或本設備靜態配置了某些屬性,需要其它 GMRP 應用實體進行注冊時,它也會向外發送 Join 消息。
2.Leave 消息
當一個 GMRP 應用實體希望其它設備注銷自己的屬性信息時,它將對外發送 Leave 消息; 當收到其它實體的 Leave 消息注銷某些屬性或靜態注銷了某些屬性后,它也會向外發送Leave 消息。
3.LeaveAll 消息
每個應用實體啟動后,將同時啟動 LeaveAll 定時器,當該定時器超時后應用實體將對外發送 LeaveAll 消息。
LeaveAll 消息用來注銷所有的屬性,以使其它應用實體重新注冊本實體上所有的屬性信息,以此來周期性地清除網絡中的垃圾屬性(例如某個屬性已經被刪除,但由于設備突然斷電,并沒有發送 Leave 消息來通知其他實體注銷此屬性)。
GMRP 定時器
1.Join 定時器
Join 定時器是用來控制 Join 消息的發送的。
為了保證 Join 消息能夠可靠的傳輸到其它應用實體,發送第一個 Join 消息后將等待一個 Join 定時器的時間間隔,如果在一個 Join 定時器時間內收到 JoinIn 消息,則不發送第二個 Join 消息;如果沒收到,則再發送一個 Join 消息。
2.Hold 定時器
Hold 定時器是用來控制 Join 消息和 Leave 消息的發送的。
當在應用實體上配置屬性或應用實體接收到消息時不會立刻將該消息傳播到其它設備,而是在等待一個 Hold 定時器后再發送消息,設備將此 Hold 定時器時間段內接收到的消息盡可能封裝成最少數量的報文,這樣可以減少報文的發送量。如果沒有 Hold 定時器的話,每來一個消息就發送一個,造成網絡上報文量太大,既不利于網絡的穩定,也不利于充分利用每個報文的數據容量。Hold 定時器的值要小于等于 Join 定時器值的一半。
3.Leave 定時器
Leave 定時器是用來控制屬性注銷的。
每個應用實體接收到 Leave 或 LeaveAll 消息后會啟動 Leave 定時器,如果在 Leave 定時器超時之前沒有接收到該屬性的 Join 消息,屬性才會被注銷。這是因為網絡中如果有一個實體因為不存在某個屬性而發送了 Leave 消息,并不代表所有的實體都不存在該屬性了, 因此不能立刻注銷屬性,而是要等待其他實體的消息。例如,某個屬性在網絡中有兩個源, 分別在應用實體 A 和 B 上,其他應用實體通過協議注冊了該屬性。當把此屬性從應用實體A 上刪除的時候,實體 A 發送 Leave 消息,由于實體 B 上還存在該屬性源,在接收到 Leave 消息之后,會發送 Join 消息,以表示它還有該屬性。其他應用實體如果收到了應用實體 B 發送的 Join 消息,則該屬性仍然被保留,不會被注銷。只有當其它應用實體等待兩個 Join 定時器以上仍沒有收到該屬性的 Join 消息時,才能認為網絡中確實沒有該屬性了,所以這就要求 Leave 定時器的值大于 2 倍 Join 定時器的值。
4.LeaveAll 定時器
每個 GMRP 應用實體啟動后,將同時啟動 LeaveAll 定時器,當該定時器超時后 GMRP 應用實體將對外發送 LeaveAll 消息,隨后再啟動 LeaveAll 定時器,開始新的一輪循環。
接收到 LeaveAll 消息的實體將重新啟動所有的定時器,包括 LeaveAll 定時器。在自己的 LeaveAll 定時器重新超時之后才會再次發送 LeaveAll 消息,這樣就避免了短時間內發送多個 LeaveAll 消息。
一次 LeaveAll 事件相當于全網所有屬性的一次 Leave。由于 LeaveAll 影響范圍很廣, 所以建議 LeaveAll 定時器的值不能太小,至少應該大于 Leave 定時器的值。
每個設備只在全局維護一個 LeaveAll 定時器。
GMRP 配置
全局設置
配置步驟
1.在導航欄中選擇[GMRP/GMRP 配置],進入 GMRP 配置界面。
2.在[GMRP 全局設置]界面中可以查看 GMRP 的全局配置,如下圖所示。
3.如需修改 GMRP 的全局配置,在 GMRP 全局配置框中修改相應配置,然后單擊<應用>。
配置項說明
[GMRP 全局設置]的相關界面的配置項說明。
配置項 |
說明 |
管理狀態 |
GMRP全局使能開關。
使能:使能GMRP功能;
禁止:關閉GMRP功能。注意:默認關閉。 |
Hold Time |
Hold 定時器周期,范圍為100-32760(ms),默認值為100ms;
注意 hold time*2 <= join time。 |
Join Time |
Join 定時器周期,范圍為100-32760(ms),默認值為200ms;
注意 join time*2<=leave time。 |
Leave Time |
Leave 定時器周期,范圍為100-32760(ms),默認值為600ms;
注意 leave time<=leaveall time |
Leaveall Time |
Leaveall 定時器周期,范圍為100-32760(ms),默認值為10000ms;
注意 leaveall time>=leave time |
GMRP 端口配置
配置步驟
1.在導航欄中選擇[GMRP/GMRP 配置],進入 GMRP 配置界面。
2.在[GMRP 端口設置]界面中可以查看 GMRP 的端口配置,如下圖所示。
3.如需修改 GMRP 的端口配置,單擊指定端口后面的修改按鈕,進入 GMRP 端口配置修改界面,如下圖所示,,配置好后,然后單擊<應用>。
配置項說明
GMRP[端口配置]的相關界面的配置項說明。
配置項 |
說明 |
端口 |
端口名稱信息。 |
VLAN 模式 |
端口的 GMRP 模式,默認為 Forbidden。 |
飛暢科技擁有超20年的研發生產售后服務經驗,專業提供各類
光端機、
電話光端機、
工業交換機、
光纖收發器,
協議轉換器,
串口服務器等,誠信為本!質量保障!服務至上!是您選擇廠商的不二之選!咨詢熱線:0571-8700-7140。