一:组网需求
现在的酒店电视开始普及智能电视。手机,ipad这些移动终端只要是和智能电视在同一个网段,就可以把终端上的视频投屏到智能电视,但是目前酒店客户反馈存在如下问题:
a:酒店的拓扑往往是手机和TV处于不同网段,因此手机没法直接投屏到电视。
b:如何确保A房间 的电视只能被A房间住客 投屏,而无法被 B房间住客 投屏,避免法律风险;
c:二维码固定不变,可无限制重复利用,存在二维码外泄问题
d:扫描二维码后电视端没有反馈,用户体验感差
e:需人工在web界面输入房间号和电视ip/mac
对应解决方案:
a:
?在出口EG设备上配置2个子接口,使其分别接入手机网段和TV网段;
?配置交换机允许组播,并且使手机网段与TV网段的组播报文能够被EG内网口收到;
?配置AP允许组播,使下面组播报文能透传上去。
b:在EG设备上建立手机ip和电视ip之间的绑定关系,EG设备可以根据绑定关系进行对应的报文转发,从而控制该手机只能发现对应电视,从而也只能投屏到该电视。
c:可变二维码,二维码设置一个有效期
d:为电视端提供二维码状态,增强客户的体验感
e:电视能够自动注册,减轻酒店运维压力
二、网络拓扑
投屏拓扑环境说明:
1)EG3220:
Gi0/0口的配置如下:
Ruijie(config-if-GigabitEthernet 0/0)#show this
Building configuration...
!
no ip unreachables
no ip redirects
no ip mask-reply
ip address 192.168.1.1 255.255.255.0
arp gratuitous-send interval 5
ip nat inside
reverse-path
!
end
Gi0/0.2口的配置如下:
Ruijie(config-subif-GigabitEthernet 0/0.2)#show this
Building configuration...
!
encapsulation dot1Q 2
ip address 10.10.10.200 255.255.255.0
ip nat inside
reverse-path
!
end
Gi0/0.4口的配置如下:
Ruijie(config-subif-GigabitEthernet 0/0.4)#show this
Building configuration...
!
encapsulation dot1Q 4
ip address 30.30.30.200 255.255.255.0
ip nat inside
reverse-path
!
end
DHCP地址池配置如下:
Ruijie#show run | be ip dhcp pool
ip dhcp pool pool_Gi0/0
network 192.168.1.0 255.255.255.0
dns-server 172.18.112.28 172.30.44.20
default-router 192.168.1.1
!
ip name-server 8.8.8.8
!
dns-proxy
!
路由配置如下:
Ruijie#show ip route
Gateway of last resort is 192.168.23.1 to network 0.0.0.0
S* 0.0.0.0/0 [1/0] via 192.168.23.1
C 3.3.33.3/32 is local host.
S 10.10.10.0/24 [1/0] via 192.168.1.2
S 20.20.20.0/24 [1/0] via 192.168.1.2
S 30.30.30.0/24 [1/0] via 192.168.1.2
C 192.168.1.0/24 is directly connected, GigabitEthernet 0/0
C 192.168.1.1/32 is local host.
2)Switch:
开启DHCP服务功能:
Ruijie>en
Ruijie#config ter
Ruijie(config)#service dhcp
创建VLAN:
Ruijie(config)#show ip int br
VLAN 1 :192.168.1.2/24
VLAN 2 :10.10.10.0/24
VLAN 3 :20.20.20.0/24
VLAN 4 :30.30.30.0/24
创建DHCP地址池:
Ruijie(config)#show run | be ip dhcp pool
ip dhcp pool vlan2
network 10.10.10.0 255.255.255.0
dns-server 172.18.112.28
default-router 10.10.10.1
!
ip dhcp pool vlan3
option 138 ip 3.3.33.3
network 20.20.20.0 255.255.255.0
dns-server 172.30.44.20
default-router 20.20.20.254
!
ip dhcp pool vlan4
network 30.30.30.0 255.255.255.0
dns-server 172.18.112.28
default-router 30.30.30.1
!
Gi0/3口的配置如下:
Ruijie(config-if-GigabitEthernet 0/3)#show this
Building configuration...
!
switchport mode trunk
switchport trunk native vlan 1
switchport trunk allowed vlan add all
rldp port loop-detect shutdown-port
poe enable
!
end
Gi0/5口的配置如下:
Ruijie(config-if-GigabitEthernet 0/5)#show this
Building configuration...
!
switchport mode trunk
switchport trunk native vlan 3
switchport trunk allowed vlan add 2
poe enable
!
end
Gi0/7口的配置如下:
Ruijie(config-if-GigabitEthernet 0/7)#show this
Building configuration...
!
switchport mode trunk
switchport trunk native vlan 3
switchport trunk allowed vlan add 4
rldp port loop-detect warning
poe enable
!
end
三、功能原理
1)报文交互流程图:
2)投屏协议控制代理介绍
?安卓投屏服务协议说明
安卓投屏服务用的是DLNA协议,DLNA协议的服务发现部分使用的是:SSDP发现协议。SSDP协议规定目的端口为:1900。
?苹果投屏服务协议说明
苹果投屏服务用的是Bonjour协议,Bonjour协议的服务发现部分使用的是:MDNS协议。MDNS协议规定目的端口为:5353。
?设备转发报文处理过程
每当有电视端与手机手机端成功建立绑定关系后,EG设备的绑定关系表项都会进行更新。
EG设备根据表项对嗅探到的组播报文进行判断是否需要转发,若收到其中一个电视端的报文,则会根据key下的映射规则来转发给对应的手机端。
转发过程中,若报文目的端口是:1900(SSDP),则转发使用的源IP为:原始报文的源ip,目的IP为:映射手机端的ip。
转发过程中,若报文目的端口是:5353(MDNS),则转发使用的源IP为:目的ip的网关子接口ip,目的IP为:映射手机端的ip。
例如:
key:123 电视端IP:192.168.2.3 手机端IP:192.168.1.3
电视端网段 网关子接口IP:192.168.2.2
手机端网段 网关子接口IP:192.168.1.2
原始报文 代理转发报文
源IP:端口 目的IP:端口 源IP:端口 目的IP:端口
192.168.2.3:5678 239.255.255.250:1900 192.168.2.3:5678 192.168.1.3:1900
192.168.1.3:6789 239.255.255.250:1900 192.168.1.3:6789 192.168.2.3:1900
192.168.2.3:5353 224.0.0.251:5353 192.168.1.2:5353 192.168.1.3:5353
192.168.1.3:5353 224.0.0.251:5353 192.168.2.2:5353 192.168.2.3:5353
四、配置步骤
1)无线开关
2)AP自动上线
3)电视无线网络
3)手机无线网络
4)网段配置
开启 “投屏服务”前,需先配置 “酒店电视网段” 与 “客户终端网段”。
“酒店电视网段” :电视所连接wifi的ip地址网段;
下发的CLI命令:upnp-proxy isolate-region server 10.10.10.2 10.10.10.254
”客户终端网段“ :手机所连接wifi的ip地址网段;
下发的CLI命令:upnp-proxy isolate-region station 30.30.30.2 30.30.30.254
5)投屏配置
开启 ” 投屏“服务后,默认当前匹配模式为:ip模式(电视用ip地址进行映射匹配)。
下发的CLI命令:upnp-proxy enable
6)高级配置
联动认证组件:选择是否需要与认证组件进行联动(web认证、商业营销认证、本地服务器认证),默认: ”不需要开启认证功能,即可使用投屏服务“ 。
下发的CLI命令:no app-auth upnp-proxy
投屏无流量检测解绑:手机在规定时间内流量未达标,则将被强制解除投屏关系,即EG设备自动删除手机与电视的绑定关系,无法继续投屏。默认:在 60分钟 内流量速率小于 0KB/s 的用户将被强制解除投屏绑定关系!
下发的CLI命令:
upnp-proxy offline-detect
upnp-proxy offline-detect time-interval 60 flowrate 0
定时下线功能:若开启定时下线功能,并配置定时下线时间,EG设备将会在每天的这个时间点,强制解除投屏关系,即EG设备自动删除手机与电视的绑定关系,无法继续投屏。默认:关闭。
下发的CLI命令:no upnp-proxy auto-unbind
开启电视自动注册:开启电视自动注册功能后,电视可自动注册上线,也可管理员手动添加电视;开启电视自动注册的同时将自动开启电视注销功能。默认:开启。
下发的CLI命令:
upnp-proxy auto-registration enable(电视自动注册)
upnp-proxy auto-logout enable(电视自动注销)
电视通讯密钥:配置电视通讯密钥后,电视发送至EG设备的自动注册报文中的sign字段内容需使用正确的通讯密钥,否则将注册失败。默认:h$71*Ayqzct#219qzt
下发的CLI命令:upnp-proxy md5-cipher-string 123456
电视投屏url密钥:修改电视投屏url密钥后,原先的二维码均失效(手动导出的二维码、电视自动生成的二维码)。默认:$!%*sm&aq
下发的CLI命令:upnp-proxy url-cipher-string 234567
投屏二维码有效时间:电视自动注册上线后,会根据EG设备返回的url生成一个对应的二维码,该二维码的有效时间为配置的 ”投屏二维码有效时间“,过了有效时间后,用户扫描该二维码会提示二维码已失效。默认:480min。
下发的CLI命令:upnp-proxy qr-valid-time 30
6、投屏实施步骤
1)分别连接wifi
电视:
手机:
2)电视自动注册
构造电视端请求URL报文
处理前:
http://192.168.23.112:20097/local/auth/php/qr.php?roomId=1&action=getQr&ip=10.10.10.2&mac=3cbd.3e20.7407&sign=110.10.10.23cbd.3e20.7407123456
处理后:(真实发送)
http://192.168.23.112:20097/local/auth/php/qr.php?roomId=1&action=getQr&ip=MTAuMTAuMTAuMg&mac=M2NiZC4zZTIwLjc0MDc&sign=d0664e88d137f9d3d25094328fb1cbdf
处理过程如下表所示:
功能 | 提供电视投屏URL | |||
TV 请求 协议头 | GET | GET/local/auth/php/qr.php?roomId=XXX&action=getQr&ip=XXXX&mac=XXXX &sign=XXXXXX HTTP/1.1 | ||
Host | 192.168.1.254:20097 网关地址,电视能访问网关的地址即可,端口固定为20097 | |||
参数 说明 | 参数 | 必需 | 说明 | |
roomId | 否 | utf8格式,url编码 ,房间号尽量提供(电视自动注册功能中使用自带房间号便于管理) | ||
action | 是 | 获取电视投屏url时,action应为getQr | ||
ip | 是 | 电视ip地址。如: 192.168.1.1--<base64编码>--->MTkyLjE2OC4xLjE= -----><URL安全化处理(去掉等号)>----->MTkyLjE2OC4xLjE | ||
mac | 是 | 电视mac地址。如: 00d0.1122.3344--<base64编码>--->MDBkMC4xMTIyLjMzNDQ= -----><URL安全化处理(去掉等号)>----->MDBkMC4xMTIyLjMzNDQ | ||
sign | 是 | md5值,算法如下(32位小写): md5(roomId+ip+mac+"h$71*Ayqzct#219qzt"), 如333192.168.1.100d0.1122.3344h$71*Ayqzct#219qzt--<md5加密>--->22a35cb510dbc869b5793ccc22760c03 |
3)电视生成二维码
构造电视请求url的报文发送至EG设备后,电视自动注册成功,同时EG设备会返回给电视一个用于生成二维码的url。使用二维码制作软件(如:草料二维码等),将该url手动去掉 ”\“ 后,生成一个二维码。
4)手机扫描二维码
使用手机扫描二维码,EG设备会返回给手机一个绑定成功的界面,表示成功建立手机与电视的绑定关系,手机可投屏至电视。
5)手机投屏至电视
手机打开视频APP(如:腾讯视频等)播放视频,并点击”投屏“按钮后,选择对应电视,即可将手机画面成功投屏至电视。