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