首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么VPN IPSec客户端使用UDP?

为什么VPN IPSec客户端使用UDP?
EN

Server Fault用户
提问于 2012-10-05 15:37:44
回答 1查看 28.2K关注 0票数 4

我在家用Windows计算机上用于连接到公司服务器的VPN是Cisco客户端。客户端被配置为使用"IPSec over (NAT/PAT)“。

为什么要使用“不可靠”的UDP协议来建立安全隧道呢?当UDP数据包被丢弃时,协议的不可靠性不会引起问题吗?

还是协议使用的是UDP,但在应用层增加了可靠性?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2012-10-05 15:56:20

它使用UDP来通过功能最少的NAT设备。这里发生的事情是,实际的IPSec流量正在被封装在UDP (IP协议 17)中。本机IPSec数据包的IP协议报头值为50。由于50既不是UDP (17)也不是TCP (6),所以朴素的NAT网关会丢弃数据包而不是传递它。

其次,由于IPSec既不是TCP也不是UDP,所以它没有端口号.所以,如果你在一个很大的会议上,你的八个同事也要去,你们中只有一个人可以在任何时候启动你的VPN,因为VPN集中器只做IP级的消歧。通过封装在UDP包中,它允许在NAT设备后面有多个VPN端点.

为什么是UDP?这在RFC 3715中有描述。第2.1.b款:

校验和与NAT不兼容。TCP和UDP校验和通过在计算中包含“伪标头”而依赖于IP源和目标地址。因此,如果校验和是在收到时计算和检查的,则通过NAT或反向NAT设备将使校验和无效。因此,如果不涉及IPsec /UDP协议(如IPsec隧道模式或IPsec受保护的IPsec),或不计算校验和(与IPv4 UDP一样),则只有在不涉及IPv4/UDP协议的情况下,才能不受阻碍地通过IPv4封装安全有效载荷。如RFC793中所述,IPv4中需要TCP校验和计算和验证。在IPv6中需要UDP/TCP校验和计算和验证。

这可能发生,因为IPSec堆栈本身具有完整性检查,因此使用“不可靠”协议传输网络在功能上不会出现严重破坏。如果数据包在传输过程中被加扰,它将不能正确地解封装,并且IPSec协议将正确地处理这种情况。

有些客户确实支持TCP模式,但Cisco不是其中之一。

票数 15
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/435279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档