06-mDNS网关配置
本章节下载: 06-mDNS网关配置 (308.78 KB)
mDNS(multicast Domain Name System,组播域名系统)网关用于在大规模网络中实现跨VLAN/VSI的mDNS服务发现。mDNS网关可以记录网络中所有可用的服务列表,并应答mDNS用户终端的服务请求。同时,mDNS网关还支持mDNS服务主动发现和访问权限控制等功能。
如图1-1所示,典型的mDNS组网模型中包括四类实体:mDNS终端用户设备、mDNS服务提供设备、mDNS网关和mDNS中继。下面将以不同VLAN间的mDNS设备互相通信的组网环境为例,介绍各实体的涵义及作用。
图1-1 mDNS组网模型图
mDNS终端用户设备通过mDNS协议访问网络中提供mDNS服务的设备,如苹果公司生产的终端设备等。
mDNS服务提供设备为mDNS终端用户设备提供服务的设备,如支持mDNS协议的打印机和Apple TV等。
mDNS网关能够记录网络中的mDNS服务提供设备的信息,应答mDNS终端用户设备的服务请求。在连接mDNS服务提供设备的网络设备(Device B)上开启mDNS网关功能后,Device B将作为mDNS网关帮助mDNS终端用户设备发现其它VLAN中的mDNS服务提供设备。
如果mDNS终端用户设备与mDNS网关处于不同网段,则需要部署mDNS中继设备,来实现mDNS报文跨网段转发,以保证mDNS终端用户设备和mDNS服务提供设备可以互通。关于mDNS中继的详细描述,请参见“三层技术-IP业务配置指导”中的“mDNS中继”。
mDNS网关能够通过管理员设定的策略来管理终端用户设备和服务提供设备,实现mDNS协议在大规模网络中的应用。mDNS策略中包含用户VLAN/VSI和服务VLAN/VSI,用来保证某些用户VLAN/VSI中的终端用户设备只能访问对应服务VLAN/VSI中服务提供设备。
mDNS网关的作用包括:
· 响应代答
· 服务发现
在mDNS网关已经获取到mDNS终端用户设备需要查询的服务时,mDNS网关的任务是响应代答。当mDNS网关发现mDNS终端用户设备查询的服务资源表项中有关于此服务的信息时,将直接向终端用户设备发送响应报文,称为响应代答。
图1-2 mDNS网关相应代答过程图
以不同VLAN间的mDNS设备互相通信的组网环境为例,当管理员在mDNS网关上创建mDNS策略,并配置用户VLAN和服务VLAN的对应关系后,mDNS网关进行响应代答过程如图1-2所示:
(1) mDNS服务提供设备发送mDNS应答报文,在网络中通告其支持的服务。
(2) mDNS网关收到mDNS应答报文后,就会建立mDNS服务提供设备的mDNS服务资源表项,包括服务实例名和服务类型等信息。
(3) mDNS终端用户设备向mDNS网关发送关于mDNS服务提供设备提供的服务的查询报文。
(4) mDNS网关查询策略表,根据mDNS终端用户设备的用户VLAN查询对应的服务VLAN是否存在服务提供设备,如果有,则向mDNS终端用户设备发送应答报文;如果没有,则进行服务发现操作。mDNS终端用户设备收到应答报文后即可获取提供Apple TV或打印机服务的设备信息。
mDNS网关收到mDNS终端用户设备的组播查询报文后,先根据策略表找到和mDNS终端用户所在用户VLAN对应的服务VLAN,再从服务VLAN查找mDNS终端用户设备请求的服务资源表项。但某些情况下,mDNS网关可能无法查询到对应的服务资源表项。这时,mDNS网关需要对指定服务进行服务查询。mDNS网关会向用户VLAN对应的服务VLAN列表转发查询报文,如果收到关于此服务的应答报文,就会将此服务的信息添加到mDNS服务资源表项,然后回复应答报文给mDNS终端用户设备。
图1-3 mDNS网关服务发现过程图
以不同VLAN间的mDNS设备互相通信的组网环境为例,mDNS网关进行服务发现过程如图1-3所示:
(1) mDNS网关收到iPad发出的一个对打印机服务的查询报文。
(2) mDNS网关根据mDNS策略中用户VLAN和服务VLAN的对应关系,在对应的服务VLAN中查找mDNS服务资源表项,发现表项内没有关于打印机服务的内容。mDNS网关就根据mDNS策略向对应的服务VLAN转发mDNS请求报文。
(3) 打印机收到mDNS网关发送的mDNS请求报文后,回复mDNS应答报文。
(4) mDNS网关收到应答报文后,将服务信息记录到mDNS服务资源表项中,再发送mDNS应答报文给mDNS终端用户设备。
和mDNS相关的协议规范有:
RFC 6762:Multicast DNS
mDNS网关配置任务如下:
(1) 开启mDNS网关功能
(2) (可选)创建mDNS网关策略
(3) (可选)配置允许mDNS网关学习的mDNS服务类型
(4) (可选)配置mDNS网关信任设备的地址
(5) (可选)配置mDNS网关发送报文的源IP地址
(6) (可选)开启mDNS网关的服务定时探测功能
(1) 进入系统视图。
system-view
(2) 开启mDNS网关功能。
mdns gateway enable
缺省情况下,mDNS网关功能处于关闭状态。
在mDNS网关上,管理员创建mDNS网关策略后,需根据实际组网环境配置VLAN或VSI信息。
根据用户的VLAN或VSI信息,可以访问对应mDNS网关策略内服务VLAN和服务VSI内的服务资源。例如一条mDNS网关策略存在多个服务VLAN和服务VSI,则mDNS网关收到匹配该条策略的用户请求报文后,会在该策略中所有的服务VLAN和服务VSI中查询用户请求的服务。
如果未配置任何mDNS网关策略,mDNS网关收到mDNS终端用户设备发送的请求报文后,会查找记录的所有服务资源信息,并将查询到的服务资源应答mDNS终端用户设备。
如果mDNS网关上存在mDNS网关策略,当收到的mDNS终端用户设备不属于任何mDNS网关策略中的用户VLAN或用户VSI,则mDNS网关不处理该请求。
(1) 进入系统视图。
system-view
(2) 创建mDNS网关策略,并进入mDNS网关策略视图。
mdns gateway policy policy-name
(3) 配置服务VLAN。
service vlan vlan-id-list
缺省情况下,未配置任何服务VLAN。
(4) 配置服务VSI。
service vsi vsi-name
缺省情况下,未配置任何服务VSI。
(5) 配置用户VLAN。
user vlan vlan-id-list
缺省情况下,未配置任何用户VLAN。
(6) 配置用户VSI。
user vsi vsi-name
缺省情况下,未配置任何用户VSI。
缺省情况下,mDNS网关允许学习所有预定义类型的服务。学习大量的服务资源信息会占用mDNS网关设备的大量内存空间,且网络中很多服务资源可能也不常用。因此,管理员可以根据网络中的需求配置允许mDNS网关学习的服务类型。配置本命令后,mDNS网关只学习允许mDNS网关学习的服务类型,其它服务类型不会学习。
(1) 进入系统视图。
system-view
(2) 配置允许mDNS网关学习的mDNS服务类型。
mdns gateway permit service-type { predefined-service-type | user-defined user-defined-service-type } [ max-entry-count count ]
缺省情况下,mDNS网关允许学习所有的mDNS服务类型。
在mDNS组网中,可能存在一些攻击设备仿冒mDNS信任设备发送伪造的mDNS报文的情况,伪造的mDNS攻击报文会对mDNS网关设备资源造成浪费,对网络安全造成威胁。为了解决这个问题,管理员可以通过本命令将信任的mDNS中继配置为信任的mDNS设备,mDNS网关只有收到信任mDNS中继发送过来的mDNS单播请求报文,才会进行处理;对于非信任设备发送的mDNS报文直接丢弃。
(1) 进入系统视图。
system-view
(2) 配置mDNS网关信任设备的地址。
mdns gateway trust device-ip ip-address [ vpn-instance vpn-instance-name ]
缺省情况下,未配置mDNS网关信任设备的地址。
当mDNS网关向某个VLAN/VSI内发送mDNS探测报文或转发/应答mDNS请求报文时,需要使用该VLAN接口/VSI接口的主IP地址作为mDNS探测报文、转发请求报文或应答报文的源IP地址。如果VLAN接口/VSI接口上未配置IP地址,则mDNS网关无法发送mDNS探测报文。如果mDNS网关设备上接入大量VLAN/VSI,为每个VLAN接口/VSI接口都配置一个IP地址,会极大浪费IP地址资源。执行本命令配置了mDNS网关转发mDNS报文的源地址后,当mDNS网关向某个VLAN/VSI内发送mDNS探测报文或转发/应答mDNS请求报文时,会将mDNS报文的源地址修改为该地址,再向VLAN/VSI内发送探测报文或转发/应答mDNS请求报文。
(1) 进入系统视图。
system-view
(2) 进入VLAN视图。
vlan vlan-id
(3) 配置mDNS网关发送报文的源IP地址。
mdns gateway source ip { interface interface-type interface-number | ip-address }
缺省情况下,使用VLAN出接口的主IP地址作为mDNS网关发送报文的源IP地址。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-id
(3) 配置mDNS网关发送报文的源IP地址。
mdns gateway source ip { interface interface-type interface-number | ip-address }
缺省情况下,使用VSI出接口的主IP地址作为mDNS网关发送报文的源IP地址。
mDNS服务提供设备接入网络时,会主动通告自己的服务。mDNS网关设备接入网络后,会收到后续接入网络的mDNS服务提供设备通告的服务信息。但对于网络中已经存在服务提供设备,服务提供设备不会再主动通告自己的服务,mDNS网关也就无法获取到服务信息。在mDNS网关上开启了服务定时探测功能后,mDNS网关会定时主动探测网络中的服务提供设备,根据收到的应答报文,及时更新网关上的服务信息列表。
(1) 进入系统视图。
system-view
(2) 进入VLAN视图。
vlan vlan-id
(3) 开启mDNS网关的服务定时探测功能,并设置探测的时间间隔。
mdns gateway probe interval interval
缺省情况下,mDNS网关的服务定时探测功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-id
(3) 开启mDNS网关的服务定时探测功能,并设置探测的时间间隔。
mdns gateway probe interval interval
缺省情况下,mDNS网关的服务定时探测功能处于关闭状态。
在完成上述配置后,在任意视图下执行display命令可以显示配置后mDNS网关的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令清除mDNS网关的相关信息。
表1-1 mDNS网关显示和维护
操作 |
命令 |
显示mDNS网关的配置信息 |
display mdns gateway |
显示mDNS网关的策略信息 |
display mdns gateway policy [ policy-name ] |
显示mDNS网关学习到的服务类型资源信息 |
display mdns gateway service { all | predefined-service-type | user-defined user-defined-service-type | vlan vlan-id | vsi vsi-name } |
显示mDNS网关的报文统计信息 |
display mdns gateway statistics |
清除mDNS网关学习到的服务类型资源信息 |
reset mdns gateway service { all | predefined-service-type | user-defined user-defined-service-type | vlan vlan-id | vsi vsi-name } |
清除mDNS网关的报文统计信息 |
reset mdns gateway statistics |
如图1-4所示,某学校内部网络使用mDNS协议为教师和学生提供服务,mDNS网络中包括Apple TV和打印机两种mDNS服务。学生和教师的iPad使用Apple TV和打印机服务。现要求学生只能使用打印机服务;教师则可以使用Apple TV和打印机服务。mDNS网关需要定时探测学校网络内的mDNS服务信息。
图1-4 mDNS网关基本组网图
# 开启mDNS网关功能。
<Device> system-view
[Device] mdns gateway enable
# 创建名称为student的mDNS网关策略。
[Device] mdns gateway policy student
# 配置名称为student的mDNS策略的用户VLAN为10,服务VLAN为30。
[Device-mdns-gateway-policy-student] user vlan 10
[Device-mdns-gateway-policy-student] service vlan 30
[Device-mdns-gateway-policy-student] quit
# 创建名称为teacher的mDNS网关策略。
[Device] mdns gateway policy teacher
# 配置名称为teacher的mDNS策略的用户VLAN为20,服务VLAN为30和40。
[Device-mdns-gateway-policy-teacher] user vlan 20
[Device-mdns-gateway-policy-teacher] service vlan 30 40
[Device-mdns-gateway-policy-teacher] quit
# 配置mDNS网关允许学习printer和Apple TV的服务。
[Device] mdns gateway permit service-type airplay
[Device] mdns gateway permit service-type raop
[Device] mdns gateway permit service-type printer
# 配置mDNS网关在VLAN 10内发送报文的源地址为192.168.1.1。
[Device] vlan 10
[Device-vlan10] mdns gateway source ip 192.168.1.1
[Device-vlan10] quit
# 配置mDNS网关在VLAN 20内发送报文的源地址为192.168.2.1。
[Device] vlan 20
[Device-vlan20] mdns gateway source ip 192.168.2.1
[Device-vlan20] quit
# 在VLAN 30内开启mDNS网关的服务定时探测功能,并设置探测的时间间隔为600秒。
[Device] vlan 30
[Device-vlan30] mdns gateway probe interval 600
[Device-vlan30] quit
# 在VLAN 40内开启mDNS网关的服务定时探测功能,并设置探测的时间间隔为600秒。
[Device] vlan 40
[Device-vlan40] mdns gateway probe interval 600
[Device-vlan40] quit
# 显示mDNS网关的配置信息。
[Device] display mdns gateway
mDNS gateway status: Enabled
mDNS gateway source IP:
VLAN 10: 192.168.1.1
VLAN 20: 192.168.2.1
mDNS gateway probe is enabled in the following VLANs: 30, 40
mDNS gateway probe is enabled in the following VSIs:
# 显示mDNS网关学到的服务资源信息。
[Device] display mdns gateway service all
Instance name Service type VLAN/VSI name TTL Pro IP
Apple TV airplay 40 120 TCP 192.168.2.100
Apple TV raop 40 120 TCP 192.168.2.100
Printer printer 30 120 TCP 192.168.1.100
Total mDNS gateway services: 3
配置完成后,VLAN 10内学生的iPad客户端只能访问VLAN 30内的打印机服务,VLAN 20内教师的iPad客户端可以访问VLAN 30内的打印机服务和VLAN 40内的Apple TV服务。
mDNS网关无法收到mDNS中继转发的报文。
可能有以下几个原因:
· 设备上未开启mDNS网关功能;
· 配置的信任设备地址不是发送报文的mDNS中继的地址。
(1) 执行display mdns gateway命令,查看当前的配置信息。如果mDNS网关功能未开启,则执行mdns gateway enable命令开启mDNS网关功能。
(2) 执行display current-configuration命令,查看配置过信任设备地址。如果未将发送报文的mDNS中继配置为信任设备的地址,则需要执行mdns gateway trust device-ip命令进行添加。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!