昨天刚解决了一个SSL VPN用户使用视频软终端连线内网MCU的问题,折腾了一个下午,算是解决了问题。经验不敢独享,分享出来提醒一下有同样需求的用户,避免走弯路。
一、需求描述
外地或出差用户当需要参加公司视频会的时候,在没有视频专线和专用视频设备的时候,可以考虑使用VPN连接,然后使用某公司PVX(新版叫RPD了)软件呼叫公司内网MCU。本例VPN设备IP地址为10.4.224.79;MCU设备是某公司500c,IP地址为10.4.224.252;VPN用户设置的虚拟IP地址段为2.0.0.0/16。
二、配置关键点及分析
由于VPN用户拨入后获得的是虚拟IP(比如2.0.0.X),而这个虚拟IP段对于内网来说根本不知道是从何而来,很可能以为是互联网来的数据,而按照缺省路由返回给了互联网。所以虚拟IP段的VPN用户在呼叫MCU的过程中,返回的数据包就会丢失,出现视频无法呼通的现象。为了解决这个问题,需要告诉MCU返回虚拟段数据包时的路由,也就是要在MCU上建立相应的路由表。于是我在MCU上建立了相应的路由表,路由指向到VPN设备的LAN口地址。如图:
经过反复测试发现: VPN用户在访问VPN设备里建立的TCP资源时都是以设备的LAN口IP地址作为源地址进行访问的。也就是说对内网资源来说,以为VPN虚拟地址用户都是从VPN设备那个LAN口地址发出来的。那一因为有如下参数配置,如图:
但是某公司视频MCU却不受欺骗,非得要VPN用户的虚拟IP地址才行。因为PVX软终端有这么一项设置,如图:
为了实现VPN用户以虚拟地址对内网资源进行访问,我建立了一个“视频MCU”的L3VPN资源,注意是“other”和“全部”如图:
相应的,要把L3VPN的默认参数设置为“以虚拟IP作为原地址”如图:
有些人可能问了,为什么多此一举非要在L3VPN应用上设置呢?直接改一下TCP应用不就得了?那不行!因为我别的很多TCP资源是需要以VPN设备的LAN端口地址作为源地址的。
另外,这里的L3VPN资源IP段一定不要与内网其他的TCP资源IP段重复。因为TCP资源在同等条件下比L3VPN资源优先。如果出现两者重复就会跑到TCP资源那边,就不通了。正是因为这个,我只好把原本已经建好的内网TCP应用资源,拆分成两个段,为的是把10.4.224.252这个地址单独摘出来。如图:
好了,以上就是设置的关键点所在。其他的记得要把建立的“视频MCU”资源与角色关联,把VPN用户也要关联相应的角色。这些并没有特别之处,就不多说了。
|