Bonjour:是苹果电脑公司在其开发的操作系统Mac OS X10.2版本之后引入的服务器搜索协议所使用的一个商标名,适用于LAN。 Bonjour使用多点传送域名系统服务记录来定位各种设备,比如打印机或者其他电脑,以及另外设备上的服务。
简单来说,就是终端可以通过Bonjour协议来发现局域网内同样支持Bonjour协议的服务器。
Bonjour协议基于RFC6762:MDNS协议。
Airplay:AirPlay是苹果公司的在iOS4.2及OS X Mountain Lion中加入的一种播放技术,可以将iPhone、iPod touch、iPad及Mac(需要OS X Mountain Lion或更新版)上的视频镜像传送到支持Airplay的设备(如:音箱、Apple TV)中播放。使用Airplay需要iOS4.2版本的设备或Mac电脑上的iTunes10.1以上版本。视频镜像则需要iOS 5及OS X Mountain Lion。
通过Airplay,可以把iOS、macOS系统的屏幕显示的信息通过无线网络镜像到支持Airplay投影的设备上,比如Apple TV或者一些电视盒子。
基本组网,STA和服务器不在一个网段,通过配置多媒体网关功能可以实现跨网段的发现。
能够主动查询网络中的服务器。
能够接收并保存服务器发出的服务通告。
能够接收终端发出的查询报文并根据设备保存的服务器信息进行应答。
能够控制网络中的mDNS报文,使得功能开启之后,终端和服务器发出的所有mDNS报文,都只能由设备进行回应,即使终端和服务器在同一个网段,终端和服务器发出的mDNS报文也需要由设备进行接管。
原生的Airplay实现存在如下问题:
使用组播地址进行服务器发现,无法实现跨网段的发现,只能在同一个子网内发现服务。
不同的终端使用搜索Airplay服务器之后,可以相互投影到Airplay服务器,可能出现用户投影到一半,另一个用户又进行投影,将前一个用户的投影打断的情况。
发现的投影服务器名字可能重复,导致用户不知道自己连接的投影服务器具体是哪个。
具体解决方法如下:
1、跨三层发现:设备定时向局域网内发出查询服务的报文,如果存在对应的服务器,服务器会响应应答,设备收到响应之后就会把应答的结果缓存起来,以便终端查询的时候设备能够直接返回对应的结果。
2、抢占功能:一个终端投影到服务器的时候,设备能够发现并记录终端的投影信息,其他终端查询的时候,就查询不到已经连接的服务器的信息,直到前一个终端断开连接,其他终端才能查询。
3、自动命名:设备会自动将Airplay服务器的名字后面加上IP地址作为区分。
不支持部署环境中多台AC同时开启功能。
不支持AC间漫游。
不支持IPv6。
VAC场景下,不支持主备AC之间服务器表项、抢占表项的备份,主备切换的时候服务无法发现、防抢占和自动命名功能也会失效。
VAP场景下,只支持在主AC上开启多媒体网关功能。
WS6024不支持多媒体网关功能。
本地转发终端三层漫游后使用Bonjour功能,终端搜索不到Server(通告143075)。
iPad、Apple TV、Print分别位于不同VLAN上,iPad需要借助Bonjour网关获取Apple TV、Print的IP地址,进而与Apple TV、Print进行通信。
开启Bonjour网关功能
【配置方法】 |
开启Bonjour网关功能。 |
Ruijie# configure terminal Ruijie(config)# interface vlan 2 Ruijie(config-if-vlan 2 )# bonjour-gateway enable |
|
【检验方法】 | 检查是否开启Bonjour网关功能。 |
Ruijie# show run | begin interface vlan 2 Current configuration : 491 bytes
interface vlan 2 bonjour-gateway enable ! |
配置Bonjour策略
【配置方法】 |
配置Bonjour策略。 |
Ruijie# configure terminal Enter configuration commands, one per line. End with CNTL/Z. Ruijie(config)# bonjour-gateway strategy-mode teacher Ruijie(config-bonjour-gateway)#service type ftp ip 10.0.0.5 Ruijie(config-bonjour-gateway)#service vlan range 5 6 Ruijie(config-bonjour-gateway)#service vlan access-vlan Ruijie(config-bonjour-gateway)#exit Ruijie(config)# Ruijie(config)#interface vlan 2 Ruijie(config-if-vlan 1)# bonjour-gateway enable Ruijie(config-if-vlan 1)# bonjour-gateway strategy teacher |
|
【检验方法】 |
检查是否启动Bonjour网关功能。 Ruijie#show run | begin interface VLAN 1 Current configuration : 491 bytes
interface VLAN 2 bonjour-gateway enable bonjour-gateway strategy teacher ! 检查是否配置Bonjour策略。Ruijie#show run | begin bonjour-gateway Current configuration : 491 bytes
bonjour-gateway strategy-mode teacher service type ftp ip 10.0.0.5 service vlan range 5 service vlan access-vlan ! |
配置设备关闭自动命名功能
【配置方法】 |
配置设备关闭自动命名功能。 |
Ruijie#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Ruijie(config)# bonjour-gateway airplay-rename disable |
|
【检验方法】 |
检查是否配置设备关闭自动命名功能。 Ruijie#show run | begin bonjour-gateway Current configuration : 491 bytes
bonjour-gateway airplay-rename disable! |
配置设备主动查询Bonjour服务
【配置方法】 |
配置设备主动查询Bonjour服务。 |
Ruijie#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Ruijie(config)#bonjour-gateway query enable Ruijie(config)#bonjour-gateway query interval 20 |
|
【检验方法】 |
检查是否配置设备主动查询Bonjour服务。 Ruijie#show run | begin bonjour-gateway Current configuration : 491 bytes
bonjour-gateway query enable bonjour-gateway query interval 20 ! |
关闭Bonjour定点投屏功能
【配置效果】 |
启动Bonjour定点投屏功能,Bonjour将根据绑定关系应答给终端。 |
【配置方法】 |
关闭Bonjour定点投屏功能。 |
Ruijie#configure terminal Ruijie(config)# Ruijie(config)#no bonjour-gateway airplay-fixed enable |
|
【检验方法】 |
检查是否已关闭Bonjour定点投屏功能。 Ruijie#sh run | include fixed Ruijie# |
查看是否存在Bonjour服务器
命令:show bonjour-gateway service-database [ ip xxx.xxx.xxx.xxx ]
查看终端是否进行投屏
命令:show bonjour-gateway con sta [ mac ]
查看终端是否进行抢占投屏
关闭禁止抢占功能 bonjour-gateway airplay-preemption disable |
开启禁止抢占功能 no bonjour-gateway airplay-preemption disable |
查看SCC表项:debug scc acl-show all
查看ACL表项:debug acl efacl acl-show all
允许10.104.93.222访问10.104.196.46,访问目的端口为7100和6361,不允许其他地址访问10.104.196.46的这两个端口。
查询代理和响应转发
如下图所示,iPad、Apple TV、Print分别位于不同VLAN上,iPad需要借助Bonjour网关获取Apple TV、Print的IP地址,进而与Apple TV、Print进行通信。
多媒体网关禁止抢占功能
同时,不同终端可能会在同一时间使用Apple TV的屏幕投影功能,这个时候 ,不同的终端在没有开启Bonjour网关功能的时候会相互抢占,开启Bonjour网关之后就能够实现禁止抢占的功能。
多媒体网关服务器自动命名功能
如果网络中存在多个Apple TV,可能终端上显示的投影设备的名字是一样的,造成混淆,目前支持自动以名字+IP进行命名,用来区分不同的服务器。
功能部属
全局开启Bonjour网关功能,Bonjour网关才能处理该接口收到的组播DNS请求报文;开启禁止抢占功能,不能关闭;能够自动命名发现的服务器。
开启Bonjour功能时,旧版本中会出现AP内存使用过高,Bonjour缓存太多的VSP报文。
初步判断:
1、版本早于AP_RGOS 11.9(6)W3B1。
2、AC端查看配置确认开启了bonjour_gateway enable。
3、AP端查看总内存超过80%,bonjour_gateway使用内存(rss字段)超过50000基本就可以判断环境中存在此问题。
解决方案:
1、升级到AP_RGOS 11.9(6)W3B1及之后版本。
2、bonjour gateway属于三层代理和跨网段投屏功能,在没有此使用功能需求时,不开启此功能。
3、如果有三层代理和跨网段投屏功能需求时,对开启bonjour_gateway功能网段进行裁剪,仅投屏服务器和投屏终端所在的网段进行开启,其余无此需求的网段不开启。
4、可以把确认不需要投屏的AP关闭Bonjour功能(AP中配置bonjour mdns-disable)。
Bonjour功能使用的是广播,且在全局下开启bonjour-gateway enable后会在所有的接口下均开启,如果无跨三层进行投屏的需求,不建议开启Bonjour功能,开启会增加很多系统的消耗。