PPTP-ALG工作原理

 PPTP-ALG工作原理

1、PPTP-ALG是一种PPTP穿透NAT技术,由于PPTP协议特殊原因,无法顺利通过NAT。

2PPTP流量由两条连接产生:

PPTP控制连接

这是一个逻辑连接,表示必须通过一系列PPTP消息创建、维持和终止的PPTP隧道。 PPTP控制连接流量使用PPTP客户端上动态分配的TCP端口,以及PPTP服务器上由IANA保留的TCP端口1723

PPTP数据连接

当数据通过PPTP连接发送时,PPP帧将使用通用路由封装(Generic Routing EncapsulationGRE)报头进行封装,报头包含用于识别该数据包的特定PPTP隧道的信息。

3当建立控制连接后,通过GRE协议封装PPP协议进行认证,IP地址分配等操作。此时已经没有TCP协议参与。

那么未开启PPTP-ALG时,我司设备PPTP会话/快转表项建立如下:

在PPTP 登录过程中,控制连接交互正常,但GRE封装的PPP报文交互失败;

原因是防火墙设备在建立会话时,加入了1500端口(源NAT可选端口最小值),导致服务器回应(或者请求包)报文无法命中NAT还原。所以报文无法正常转发。

当未插入1500端口时,未开启PPTP-ALG情况下,PPTP是能正常登录的,数据也能正常转发。会话建立如下:

GRE   123.1.1.1→ 130.1.1.20        130.1.1.20  →  100.1.1.10

若此时还存在一个客户端拨号,会话建立如下:

GRE   123.1.1.2→ 130.1.1.20        130.1.1.20  →  100.1.1.10

那么当服务器给的回应报文是给123.1.1.1还是123.1.1.2就无法确定了,此时内部主机只能与同一服务器建立一条会话,不能有第二个客户端。

开启PPTP-ALG后,防火墙设备PPTP会话/快转表项建立如下:

开启PPTP-ALG后,使用GRE协议中的CALL-ID做为端口建立会话。

NAT把客户端的CALL-ID值当做源端口,然后告诉服务器一个假的CALL-ID(我司设备使用控制连接源端口作为该CALL-ID)来充当转换后的端口。这个修改是在控制连接协商CALL-ID阶段中修改的,然后做nat记录后发送给服务器。修改客户端CALL-ID原因是,当其它客户端使用了相同的CALL-ID,且服务器也给了相同的CALL-ID值,这样也会存在问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值