06-mDNS中繼配置
本章節下載: 06-mDNS中繼配置 (287.03 KB)
mDNS(Multicast DNS,組播域名)協議是基於mDNS服務的零配置網絡協議。mDNS協議致力於讓網絡配置更簡單,支持mDNS協議的服務提供設備能夠以組播方式發送服務信息,使局域網內的終端用戶設備在無需獲取服務提供設備信息的情況下,自動發現可提供服務的設備。
目前,mDNS協議僅定義了如何在網段內使用mDNS協議報文傳播服務信息,mDNS中繼用來實現跨網段轉發mDNS報文,實現mDNS協議在大規模網絡中的應用。
一個mDNS組網環境中,主要包括以下幾種設備類型:
· mDNS終端用戶設備:通過mDNS協議訪問網絡中提供mDNS服務的設備,如iPhone和iPad等。
· mDNS服務提供設備:為mDNS終端用戶設備提供服務的設備,如打印機和視頻服務器等。
· mDNS網關:記錄網絡中的mDNS服務提供設備的信息,應答mDNS終端用戶設備的服務請求。關於mDNS網關功能的詳細介紹,請參見“IP業務配置指導”中的“mDNS網關配置”。
· mDNS中繼:在跨網段組網中保證mDNS終端用戶設備和mDNS服務提供設備可以互通。mDNS中繼還支持定時探測網絡中的mDNS服務提供設備。
如圖1-1所示,在mDNS組網中,mDNS終端用戶設備(Apple TV和iPad等)和mDNS服務提供設備(打印機和服務器等)在不同的VLAN內,AP和AC間需要跨網段三層轉發。因為mDNS終端用戶設備和mDNS服務提供設備發送給mDNS網關的mDNS報文的目的地址填充的是組播地址,所以AC作為mDNS網關時,無法收到mDNS終端用戶設備和mDNS服務提供設備發送的mDNS報文。為了解決這個問題,需要在Device A和Device B上開啟mDNS中繼功能。mDNS中繼上配置了mDNS網關的地址,mDNS中繼收到mDNS終端用戶設備和mDNS服務提供設備發送的mDNS報文後,會將報文的目的地址改為mDNS網關的地址並轉發出去,保證mDNS網關可以收到mDNS終端用戶設備和mDNS服務提供設備發送的mDNS報文。
圖1-1 帶mDNS中繼的組網圖
在mDNS網絡中,mDNS中繼的主要功能包括:
· mDNS服務提供設備通告服務,mDNS中繼收到mDNS服務提供設備發送的通告報文後,將報文目的IP地址改為mDNS網關的IP地址,單播轉發給mDNS網關。
· mDNS終端用戶設備請求支持,mDNS中繼收到mDNS終端用戶設備發送的請求報文後,將報文目的IP地址改為mDNS網關的IP地址,單播轉發給mDNS網關。收到mDNS網關的mDNS應答報文後,將目的地址替換為組播地址轉發給mDNS終端用戶設備。
· mDNS中繼定時探測功能,mDNS中繼支持定時發送mDNS請求報文探測VLAN/VSI內mDNS服務提供設備,並將收到的mDNS應答報文轉發給mDNS網關,保證mDNS網關能及時更新記錄的mDNS服務表項信息。
mDNS服務提供設備接入網絡後,將所能提供的服務通告給mDNS網關。mDNS服務提供設備的通告信息包括主機名和服務名,主機名用來標識服務提供設備,服務名用來標識設備提供的服務類型等信息。
圖1-2 mDNS服務提供設備通告服務原理圖
如圖1-2所示,mDNS服務提供設備通告過程如下:
(1) 探測主機名階段
a. mDNS服務提供設備接入網絡後,就自動生成一個主機名。為了確保網絡中主機名唯一性,mDNS服務器發送一個目的地址為組播地址224.0.0.251的mDNS請求報文進行探測,並啟動探測周期定時器。
b. mDNS中繼收到該請求報文後,將目的地址替換為mDNS網關的IP地址,將該請求報文單播轉發給mDNS網關。
c. mDNS網關收到mDNS請求報文後,查詢本地記錄的主機名信息中是否有相同的主機名。如果存在相同的主機名,則mDNS網關回複一個mDNS衝突報文給mDNS中繼。mDNS中繼收到衝突報文後,將報文的目的地址改為組播地址224.0.0.251後轉發給mDNS服務提供設備。
d. mDNS衝突提供設備收到衝突報文後,會重新生成一個主機名,再啟動探測過程。
(2) 通告主機名階段
a. 如果在探測周期到期後,mDNS服務提供設備都未收到mDNS衝突報文,則mDNS服務提供設備發送一個目的地址為組播地址224.0.0.251的mDNS請求報文進行通告。
b. mDNS中繼收到該請求報文後,將目的地址替換為mDNS網關的IP地址,將該請求報文單播轉發給mDNS網關。
c. mDNS網關收到mDNS請求報文後,記錄請求報文中的主機名和IP地址信息。
(3) 探測服務名階段
a. 主機名通告結束後,mDNS服務提供設備為了確保網絡中服務名的唯一性,發送一個目的地址為組播地址224.0.0.251的mDNS請求報文進行探測,並啟動探測周期定時器。
b. mDNS中繼收到該請求報文後,將目的地址替換為mDNS網關的IP地址,將該請求報文單播轉發給mDNS網關。
c. mDNS網關收到mDNS請求報文後,查詢本地記錄的服務名信息中是否有相同的服務名。如果存在相同的服務名,則mDNS網關回複一個mDNS衝突報文給mDNS中繼。mDNS中繼收到衝突報文後,將報文的目的地址改為組播地址224.0.0.251後轉發給mDNS服務提供設備。
d. mDNS衝突提供設備收到衝突報文後,會重新生成一個服務名,再啟動探測過程。
(4) 通告服務名階段
a. 如果在探測周期到期後,mDNS服務提供設備都未收到mDNS衝突報文,則mDNS服務提供設備發送一個目的地址為組播地址224.0.0.251的mDNS請求報文進行通告。
b. mDNS中繼收到該請求報文後,將目的地址替換為mDNS網關的IP地址,將該請求報文單播轉發給mDNS網關。
c. mDNS網關收到mDNS請求報文後,記錄請求報文中的服務名信息。
如圖1-3所示,mDNS終端用戶設備需要訪問某些服務前,為了確定網絡中是否存在對應的服務提供設備,需要發送一個目的地址為組播地址224.0.0.251的mDNS查詢報文。mDNS中繼收到請求報文後,將目的地址替換為mDNS網關的IP地址,將該請求報文單播轉發給mDNS網關。mDNS網關收到請求報文後,根據報文中的服務名稱查詢記錄的表項。如果查到對應的表項信息,將服務提供設備的主機名和IP地址放到應答報文中,單播發送給mDNS中繼。mDNS中繼將應答報文的目的地址改為組播地址224.0.0.251後轉發給mDNS終端用戶設備。終端用戶設備收到應答報文後,可以根據報文中的IP地址訪問對應的服務提供設備。其他mDNS終端用戶設備收到應答報文後,也會學習並記錄報文中的mDNS服務提供設備信息。
圖1-3 mDNS終端用戶設備請求支持原理圖
mDNS服務提供設備接入網絡時,會主動向mDNS網關發送通告報文。mDNS網關收到某個mDNS服務提供設備的通告報文後,根據報文內的信息創建對應的mDNS服務提供設備的表項信息。如果mDNS網關接入網絡之前,網絡中已經存在mDNS服務提供設備,則mDNS服務提供設備不會主動向mDNS網關發送報文。mDNS網關就無法獲知該mDNS服務提供設備的信息。
mDNS網關上維護著網絡中所有mDNS服務提供設備的服務信息表項,在表項老化時間到達前,mDNS網關如果收到mDNS服務提供設備的更新消息,則重置老化時間;如果未收到mDNS服務提供設備的更新消息,則刪除對應的服務信息表項。當網絡規模較大,大量VLAN或VSI中都存在mDNS服務提供設備時,mDNS網關可能無法及時收到所有mDNS服務提供設備的更新消息,導致mDNS服務提供設備的服務信息表項被誤刪除。
為了解決上述問題,需要在mDNS中繼上開啟mDNS中繼的定時探測功能。開啟本功能後,mDNS中繼會按照配置的探測時間間隔向開啟了mDNS中繼功能的VLAN/VSI內發送mDNS請求報文。mDNS服務提供設備收到請求報文後,會向mDNS中繼發送mDNS應答報文。mDNS中繼收到應答報文後,會將應答報文單播轉發給mDNS網關,保證mDNS網關可以及時學習到網絡中所有mDNS服務提供設備的最新信息。
和mDNS相關的協議規範有:
· RFC 6762:Multicast DNS
mDNS中繼配置任務如下:
(1) 指定mDNS網關的地址
(2) 開啟mDNS中繼功能
(3) (可選)配置mDNS中繼轉發mDNS報文的源地址
(4) (可選)開啟mDNS中繼定時探測功能
在mDNS中繼上指定mDNS網關地址後,mDNS中繼收到mDNS終端用戶設備發送的mDNS請求報文後,會將報文目的組播地址修改為指定的mDNS網關的地址,並向mDNS網關單播轉發mDNS請求報文。當mDNS中繼收到mDNS網關應答的單播報文後,會將該單播報文轉換成組播報文,在mDNS終端用戶設備所在的VLAN或VSI內發送,保證發送請求的mDNS終端用戶設備能收到應答報文,其他mDNS終端用戶設備收到報文後,也能學習應答報文中的服務信息或刷新自身保存的服務信息。
(1) 進入係統視圖。
system-view
(2) 配置mDNS網關的地址。
mdns relay gateway ip ip-address [ vpn-instance vpn-instance-name ]
缺省情況下,mDNS中繼上未指定mDNS網關的地址。
隻有在mDNS中繼上指定mDNS網關的地址後,mDNS中繼功能才能生效。
(1) 進入係統視圖。
system-view
(2) 進入VLAN視圖。
vlan vlan-id
(3) 開啟mDNS中繼功能。
mdns relay enable
缺省情況下,mDNS中繼功能處於關閉狀態。
(1) 進入係統視圖。
system-view
(2) 進入VSI視圖。
vsi vsi-name
(3) 開啟mDNS中繼功能。
mdns relay enable
缺省情況下,mDNS中繼功能處於關閉狀態。
如果mDNS中繼向某個VLAN/VSI內發送mDNS探測報文或轉發mDNS應答報文時,則使用該VLAN接口/VSI虛接口的IP地址作為mDNS報文的源地址。如果VLAN接口/VSI虛接口上未配置IP地址,則mDNS中繼無法發送mDNS探測報文。如果mDNS中繼設備上接入大量VLAN/VSI,為每個VLAN/VSI虛接口都配置一個IP地址,會極大浪費IP地址資源。通過本命令配置了mDNS中繼轉發mDNS報文的源地址後,當mDNS中繼在某個VLAN/VSI內開啟mDNS定時探測功能時,會將mDNS探測報文的源地址修改為該地址,再向VLAN/VSI內發送探測報文。mDNS中繼收到mDNS組播報文後,將報文源地址修改為指定的IP地址,再轉發給mDNS網關。
指定的ip-address必須是mDNS中繼上的IP地址,且該地址到mDNS網關路由可達,否則mDNS中繼無法收到應答報文。
建議將源IP地址指定為mDNS中繼連接mDNS網關接口的IP地址。
(1) 進入係統視圖。
system-view
(2) 進入VLAN視圖。
vlan vlan-id
(3) 配置mDNS中繼轉發報文的源地址。
mdns relay source ip { ip-address | interface interface-type interface-number }
缺省情況下,如果mDNS中繼向某個VLAN內發送mDNS探測報文或轉發mDNS應答報文時,則使用該VLAN接口的IP地址作為mDNS報文的源地址。mDNS中繼收到mDNS組播報文後,將報文源地址修改為出接口地址,再轉發給mDNS網關。
(1) 進入係統視圖。
system-view
(2) 進入VSI視圖。
vsi vsi-name
(3) 配置mDNS中繼轉發報文的源地址。
mdns relay source ip { ip-address | interface interface-type interface-number }
缺省情況下,如果mDNS中繼向某個VSI內發送mDNS探測報文或轉發mDNS應答報文時,則使用該VSI虛接口的IP地址作為mDNS報文的源地址。mDNS中繼收到mDNS組播報文後,將報文源地址修改為出接口地址,再轉發給mDNS網關。
開啟本功能後,mDNS中繼會按照配置的探測時間間隔向開啟了mDNS中繼功能的VLAN/VSI內發送mDNS請求報文。mDNS服務提供設備收到請求報文後,會向mDNS中繼發送mDNS應答報文。mDNS中繼收到應答報文後,會將應答報文單播轉發給mDNS網關,保證mDNS網關可以及時學習到網絡中所有mDNS服務提供設備的最新信息。
(1) 進入係統視圖。
system-view
(2) 進入VLAN視圖。
vlan vlan-id
(3) 開啟mDNS中繼定時探測功能。
mdns relay probe interval interval
缺省情況下,mDNS中繼的定時探測功能處於關閉狀態。
(1) 進入係統視圖。
system-view
(2) 進入VSI視圖。
vsi vsi-name
(3) 開啟mDNS中繼定時探測功能。
mdns relay probe interval interval
缺省情況下,mDNS中繼的定時探測功能處於關閉狀態。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後mDNS中繼的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令清除mDNS中繼的相關信息。
表1-1 mDNS中繼顯示和維護
操作 |
命令 |
顯示mDNS中繼的配置信息 |
display mdns relay |
顯示mDNS中繼的報文統計信息 |
display mdns relay statistics |
清除mDNS中繼的報文統計信息 |
reset mdns relay statistics |
如圖1-4所示,某企業內部使用mDNS協議通信,工作區屬於VLAN10,服務區屬於VLAN20。VLAN10內終端設備通過AP設備接入,VLAN20內的服務設備通過mDNS中繼接入。工作區使用192.168.1.0網段,服務區使用192.168.2.0網段,mDNS中繼和mDNS網關間使用192.168.3.0網段。為了使工作區的工作人員需要使用服務區的打印機執行打印操作,需要在交換機設備上配置mDNS中繼功能。
圖1-4 mDNS中繼基本組網圖
(1) 配置mDNS網關
配置mDNS網關功能,配置AP、mDNS中繼和mDNS網關間路由可達,具體配置過程略。
(2) 配置mDNS中繼
# 配置mDNS網關地址為192.168.3.2。
<Switch> system-view
[Switch] mdns relay gateway ip 192.168.3.2
# 在VLAN10內開啟mDNS中繼功能。
[Switch] vlan 10
[Switch-vlan10] mdns relay enable
# 配置mDNS中繼轉發報文的源地址為192.168.3.1。
[Switch-vlan10] mdns relay source ip 192.168.3.1
[Switch-vlan10] quit
# 在VLAN20內開啟mDNS中繼功能。
[Switch] vlan 20
[Switch-vlan20] mdns relay enable
# 配置mDNS中繼轉發報文的源地址為192.168.3.1。
[Switch-vlan20] mdns relay source ip 192.168.3.1
[Switch-vlan20] quit
# 顯示mDNS中繼的配置信息。
[Switch] display mdns relay
mDNS relay configuration:
mDNS gateway IP: 192.168.3.2
mDNS relay configuration in VLANs:
VLAN ID Source IP address Probe interval (sec)
10 192.168.3.1 --
20 192.168.3.1 --
VLAN 10內的iPad可以訪問VLAN 20內的打印機,並完成打印工作。
mDNS中繼無法收到mDNS報文。
可能有以下幾個原因:
· 未開啟mDNS中繼功能;
· 未指定mDNS網關地址;
(1) 執行display mdns relay命令,查看當前的配置信息。
(2) 查看配置信息後,進行如下處理:
¡ 如果mDNS中繼功能未開啟,則配置mdns relay enable命令開啟。
¡ 如果mDNS中繼上不存在mDNS網關的地址,則配置mdns relay gateway ip命令指定。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!