位置:51电子网 » 技术资料 » 嵌入式系统

IPSec与NAT之间的兼容性分析和解决方案

发布时间:2008/5/27 0:00:00 访问次数:566

1 引 言

网络安全协议ipsec(ip security)和网络地址转换nat(network address translation)已经得到了广泛的应用,但是如果一起运行的话,会遇到很多问题。从ip的角度来看,nat对ip的低层进行了修改,对ip协议来说是一种背离;而从应用的角度来看,网络管理人员必须要处理网络地址的问题,nat使用户可以采取多种方式把自己的网络和主机对外部公共网络隐藏起来,是一种好的工具,现在,无论是大企业还是中小企业都在使用。与nat、类似,ipsec:也是一种好工具,他使用户可以安全地通过internet连接到远程终端。然而,由于ipsec协议架构本身以及缺乏支持ipsec的nat设备,当ipsec和nat在一起运行时就会出现很多问题。要解决两者共存的问题,就必须对ipsec和nat有一定的了解。

2 ipsec和nat的工作原理

2.1 nat技术简介

nat(network address translation,网络地址转换)实现的核心是把内部子网中的数据报文的保留ip地址报头信息转换为外部合法的ip地址再向外部网络发送,在收到外部数据报文后,根据nat设备维护的地址映射表用内部保留地址反向替换外部合法ip地址,使得内部子网中机器能收到数据报文信息。

nat有3种类型:静态nat(static nat)、动态地址nat(pooled nat)、网络地址端口转换napt(port-level nat)。但不管如何,nat协议都会分析ip数据报的报头,匹配地址转换表中的规则,修改满足匹配规则的ip数据报报头。并根据协议的需要重新计算ip数据报的校验和。例如:对tcp包,由于存在tcp报头伪头,其内包含相应的地址信息,nat还必须修改tcp报头并重新计算其校验和。

2.2 ipsec协议

ipsec:协议不是一个单独的协议,他给出了应用于ip层上网络数据安全的一整套体系结构,包括网络认证协议authentication header(ah)、封装安全载荷协议encapsulating security payload(esp)、密钥管理协议internet keyexchange(ike)和用于网络认证及加密的一些算法等。其中ah协议定义了认证的应用方法,提供数据源认证和完整性保证;esp协议定义了加密和可选认证的应用方法,提供可靠性保证。ah和esp可以单独使用,也可以同时使用。ipsec模式有两种,分别是传输模式和隧道模式,图1是用esp在两种不同的模式下对ip数据报进行封装。

3 ipsec与nat的兼容性问题

nat与ipsec的兼容性问题主要有以下几个方面:

(1)ipsec的ah与nat。ah封装对ip包的完整性保护包括了最外层ip头中的ip地址域。而nat需要修改ip地址域以进行地址转换,这样就会导致ah包无效。由于esp封装并不对最外层ip头进行加密,完整性计算也不包括最外层ip头中的域,因此,这种修改并不会影响esp封装。

(2)校验和与nat。在传输模式中,如果ip包中封
装的上一层协议(传输层)是tcp或者udp,在这些协议的协议头中都有一个校验和字段,他和ip头中的ip地址有关。在nat的处理中,当nat更改了ip头中的源地址或者目的地址后,会重新计算并修改传输层的校验和字段。这样nat如果按普通的处理更改该字段,这个ip包就会被对方的ipsec丢弃。如果不修改该字段的值,在接收端,虽然ipsec不会丢弃这个包,但传输层在进行校验和校验时会出错,这个报文还是会被传输层丢弃。对于隧道模式,不存在这个问题。

(3)ipsec:与napt(nat端口映射)。napt需要更改传输层的端口号。如果一个ip包受到了ipsec的保护,传输层的端口号一定会受到完整性保护,在napt对端口号进行修改后,该ip包就会被接收方的ipsec丢弃。

(4)ike协商时的固定目标端口和napt。napt的工作原理是通过不同的端口号来区分不同的连接。ike协商时,进行的udp通信的端口号一般是固定的(通常是500),这时就会出现问题。

(5)在隧道模式的esp情况下,tcp/udp报头是不可见的,因此不能被用于进行内外地址的转换,而此时静态nat和esf ipsec可以一起工作,因为只有ip地址要进行转换,对高层协议没有影响。

4.ipsec穿越nat的解决方案

在ipsec:中,sa的管理可通过ike自动协商来完成。需要ike协商和udp封装两种方法配合起来使用,以完成ipsec穿越nat。

4.1 ike协商

4.1.1阶段一

(1)探测是否支持ipsec-_nat穿越

在ike的第一阶段协商(主模式)中的前两条消息中应加入一个vendor id载荷,通过vendor id载荷交换来确定远程主机是否支持nat穿越。


(2)探测在通信路径中是否存在nat

nat-d(nat discovery)载荷不仅用于探测两个ike实体之间是否存在nat,也用于探测nat所处的位置。所以需要在第三与第四个ike协商消息中各包含2个nat-d载荷,第一个nat-d载荷包含远端主机的地址与端口的散列值,第二个nat-d载荷包含本地主机的地址与

1 引 言

网络安全协议ipsec(ip security)和网络地址转换nat(network address translation)已经得到了广泛的应用,但是如果一起运行的话,会遇到很多问题。从ip的角度来看,nat对ip的低层进行了修改,对ip协议来说是一种背离;而从应用的角度来看,网络管理人员必须要处理网络地址的问题,nat使用户可以采取多种方式把自己的网络和主机对外部公共网络隐藏起来,是一种好的工具,现在,无论是大企业还是中小企业都在使用。与nat、类似,ipsec:也是一种好工具,他使用户可以安全地通过internet连接到远程终端。然而,由于ipsec协议架构本身以及缺乏支持ipsec的nat设备,当ipsec和nat在一起运行时就会出现很多问题。要解决两者共存的问题,就必须对ipsec和nat有一定的了解。

2 ipsec和nat的工作原理

2.1 nat技术简介

nat(network address translation,网络地址转换)实现的核心是把内部子网中的数据报文的保留ip地址报头信息转换为外部合法的ip地址再向外部网络发送,在收到外部数据报文后,根据nat设备维护的地址映射表用内部保留地址反向替换外部合法ip地址,使得内部子网中机器能收到数据报文信息。

nat有3种类型:静态nat(static nat)、动态地址nat(pooled nat)、网络地址端口转换napt(port-level nat)。但不管如何,nat协议都会分析ip数据报的报头,匹配地址转换表中的规则,修改满足匹配规则的ip数据报报头。并根据协议的需要重新计算ip数据报的校验和。例如:对tcp包,由于存在tcp报头伪头,其内包含相应的地址信息,nat还必须修改tcp报头并重新计算其校验和。

2.2 ipsec协议

ipsec:协议不是一个单独的协议,他给出了应用于ip层上网络数据安全的一整套体系结构,包括网络认证协议authentication header(ah)、封装安全载荷协议encapsulating security payload(esp)、密钥管理协议internet keyexchange(ike)和用于网络认证及加密的一些算法等。其中ah协议定义了认证的应用方法,提供数据源认证和完整性保证;esp协议定义了加密和可选认证的应用方法,提供可靠性保证。ah和esp可以单独使用,也可以同时使用。ipsec模式有两种,分别是传输模式和隧道模式,图1是用esp在两种不同的模式下对ip数据报进行封装。

3 ipsec与nat的兼容性问题

nat与ipsec的兼容性问题主要有以下几个方面:

(1)ipsec的ah与nat。ah封装对ip包的完整性保护包括了最外层ip头中的ip地址域。而nat需要修改ip地址域以进行地址转换,这样就会导致ah包无效。由于esp封装并不对最外层ip头进行加密,完整性计算也不包括最外层ip头中的域,因此,这种修改并不会影响esp封装。

(2)校验和与nat。在传输模式中,如果ip包中封
装的上一层协议(传输层)是tcp或者udp,在这些协议的协议头中都有一个校验和字段,他和ip头中的ip地址有关。在nat的处理中,当nat更改了ip头中的源地址或者目的地址后,会重新计算并修改传输层的校验和字段。这样nat如果按普通的处理更改该字段,这个ip包就会被对方的ipsec丢弃。如果不修改该字段的值,在接收端,虽然ipsec不会丢弃这个包,但传输层在进行校验和校验时会出错,这个报文还是会被传输层丢弃。对于隧道模式,不存在这个问题。

(3)ipsec:与napt(nat端口映射)。napt需要更改传输层的端口号。如果一个ip包受到了ipsec的保护,传输层的端口号一定会受到完整性保护,在napt对端口号进行修改后,该ip包就会被接收方的ipsec丢弃。

(4)ike协商时的固定目标端口和napt。napt的工作原理是通过不同的端口号来区分不同的连接。ike协商时,进行的udp通信的端口号一般是固定的(通常是500),这时就会出现问题。

(5)在隧道模式的esp情况下,tcp/udp报头是不可见的,因此不能被用于进行内外地址的转换,而此时静态nat和esf ipsec可以一起工作,因为只有ip地址要进行转换,对高层协议没有影响。

4.ipsec穿越nat的解决方案

在ipsec:中,sa的管理可通过ike自动协商来完成。需要ike协商和udp封装两种方法配合起来使用,以完成ipsec穿越nat。

4.1 ike协商

4.1.1阶段一

(1)探测是否支持ipsec-_nat穿越

在ike的第一阶段协商(主模式)中的前两条消息中应加入一个vendor id载荷,通过vendor id载荷交换来确定远程主机是否支持nat穿越。


(2)探测在通信路径中是否存在nat

nat-d(nat discovery)载荷不仅用于探测两个ike实体之间是否存在nat,也用于探测nat所处的位置。所以需要在第三与第四个ike协商消息中各包含2个nat-d载荷,第一个nat-d载荷包含远端主机的地址与端口的散列值,第二个nat-d载荷包含本地主机的地址与

相关IC型号

热门点击

 

推荐技术资料

DFRobot—玩的就是
    如果说新车间的特点是“灵动”,FQPF12N60C那么... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!