我这里是两个家用型路由器,就是那种电脑城几十块钱就能买到的路由器.以前一直以为,处于局域网内部的主机,需要路由器映射端口才能被外部访问,或者由主机发起向外的连接,才能建立起连接.这样的话,路由器就可以通过端口缓存来转发数据,也就是它把连接记录下来,外部的数据就可以正确地转发到内部的某个主机上.
这对TCP,UDP都是可以理解的,因为它们都有端口号的信息在里面.在路由器里也就有TCP,UDP端口映射的选项.
但今天却碰到了一个疑惑.两个分别处于不同内网的主机在搭建VPN时,服务端主机的路由器需要映射1723端口到该主机,这样客户端的主机才能发起到服务端的连接.可当这个TCP连接完成之后,双方要进行GRE协议封装的PPP协议数据的交换.这时客户端首先发出GRE协议的ip包到服务端路由器的公网地址,那路由器是怎么知道把这个包转发给内网的哪个主机呢?GRE包可没有什么端口信息在里面.事实上路由器正确的转发给了内网的VPN服务器主机,双方建立起了VPN通道.
哪位大虾来解释一下其中的道理吧.
会员注册
会员登录
个人空间
发表评论