PIX 506E、MTU、VPN 数据包分段和 Shoretel IP 电话系统

PIX 506E、MTU、VPN 数据包分段和 Shoretel IP 电话系统

我们有两个站点,一个大型的南部站点和一个小型的北部站点,它们之间在两个 Cisco PIX 防火墙上定义了一个 VPN。Shoretel IP 电话流量以及所有其他网络流量都通过此 VPN 传输。我们最近将较小的北部办公室切换到 Bt Infinity(光纤),所有系统都运行良好,也就是说,直到上周它们都运行良好。请注意,那天没有任何变化。

从曼彻斯特通过 VPN 传输的流量在所有方面都有效,除了电话系统。我们来自 Shoretel 的电话工程师告诉我们,这都是因为电话系统数据包的流量中开启了 DF(不分段)位,并且所需的有效负载为 1472,而由于 IPSec 开销,1472 将无法满足线路 MTU 的要求。

如果我从南方办公室到北方办公室进行 ping MTU 测试,我会得到以下结果:

C:\>ping <NorthernOfficeServerIP> -f -l 1472

Pinging <NorthernOfficeServerIP> with 1472 bytes of data:
Reply from <OutsideInterfaceOfSourthernPixIP>: Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.

PIX 上的 VPN 设置如下:

sysopt connection permit-ipsec
crypto ipsec transform-set chevelle esp-des esp-md5-hmac
crypto map transam 1 ipsec-isakmp
crypto map transam 1 match address 101
crypto map transam 1 set peer <Peer IP> 
crypto map transam 1 set transform-set chevelle
crypto map transam interface outside
isakmp enable outside
isakmp key ******** address <Peer IP> netmask 255.255.255.0
isakmp keepalive 10
isakmp nat-traversal 20
isakmp policy 1 authentication pre-share
isakmp policy 1 encryption des
isakmp policy 1 hash md5
isakmp policy 1 group 1
isakmp policy 1 lifetime 86400

我在 PIX 上尝试做的第一件事是让它清除数据包上的 DF 标志,如下所示:

pix(config)# crypto ipsec df-bit clear-df outside

不幸的是,这只会给出:

错误:无法识别的用法:[no] crypto ipsec { transform-set | security-association} ... 键入 help 或“?”以获取可用命令的列表。

但是我们的 PIX 固件相当老旧,show ver 显示:

Cisco PIX Firewall Version 6.3(5)
Cisco PIX Device Manager Version 3.0(4)

Compiled on Thu 04-Aug-05 21:40 by morlee

chathampix up 14 hours 54 mins

Hardware:   PIX-506E, 32 MB RAM, CPU Pentium II 300 MHz
Flash E28F640J3 @ 0x300, 8MB
BIOS Flash AM29F400B @ 0xfffd8000, 32KB

我曾尝试改变 PIX 上的 MTU 大小,我将外部接口设置为 1500、1492(对于 PPP 为 8 字节)和 BT 建议的 1458,以尝试缓解此问题。VPN 的 56 字节开销意味着 DF 位设置为 1472 字节的数据包将始终被 VPN 丢弃。

有谁知道对于使用此固件的 PIX,与“pix(config)# crypto ipsec df-bit clear-df outside”等效的命令是什么吗?或者您有其他想法吗?

更新:

北部 PIX 的 show crypto ipsec sa 如下:

interface: outside
    Crypto map tag: transam, local addr. <NorthernOutsideInterfaceIP>

   local  ident (addr/mask/prot/port): (192.168.16.0/255.255.255.0/0/0)
   remote ident (addr/mask/prot/port): (192.168.0.0/255.255.255.0/0/0)
   current_peer: <SouthernOutsideInterfaceIP>:500
     PERMIT, flags={origin_is_acl,}
    #pkts encaps: 107592, #pkts encrypt: 107592, #pkts digest 107592
    #pkts decaps: 114302, #pkts decrypt: 114302, #pkts verify 114302
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0, #pkts decompress failed: 0
    #send errors 8, #recv errors 0

     local crypto endpt.: <NorthernOutsideInterfaceIP>, remote crypto endpt.: <SouthernOutsideInterfaceIP>
     path mtu 1492, ipsec overhead 56, media mtu 1492
     current outbound spi: 4ada0b77

     inbound esp sas:
      spi: 0xe7c2815(243017749)
        transform: esp-des esp-md5-hmac ,
        in use settings ={Tunnel, }
        slot: 0, conn id: 1, crypto map: transam
        sa timing: remaining key lifetime (k/sec): (4516828/21982)
        IV size: 8 bytes
        replay detection support: Y


     inbound ah sas:


     inbound pcp sas:


     outbound esp sas:
      spi: 0x4ada0b77(1255803767)
        transform: esp-des esp-md5-hmac ,
        in use settings ={Tunnel, }
        slot: 0, conn id: 2, crypto map: transam
        sa timing: remaining key lifetime (k/sec): (4598687/21980)
        IV size: 8 bytes
        replay detection support: Y


     outbound ah sas:


     outbound pcp sas:

南部 PIX 和北部 PIX 的 MTU 为:

mtu outside 1500
mtu inside 1500

我相信 PIX 会自动将 PPP 的 MTU 设置为少于 8 个字节。

答案1

对于添加 IPSec 开销后超出出站接口 MTU 的流量,PIX/ASA 端有几种“修复”方法。

将 PIX/ASA 上的 MTU 更改为较低的数字(通常为 1380)迫使发送站做出反应——并非总是以期望的方式。

更改 MSS(仅限 TCP,对 UDP 无效)

让 PIX/ASA 碎片。

如果在内部 IP 标头中设置了 df 位,并且需要进行分段才能通过 IPSec 隧道,则允许 PIX/ASA 清除 df 位也是一个选项。

注意清除 df 位需要 PIX/ASA OS 7.0 及更高版本. “令人尊敬的” PIX 6.3(5) 不会胜任。

更重要的问题是,为什么您的 VoIP 流量会超出 MTU?据我所知,所有 VoIP 编解码器(包括非常常见的 G.711 和 G.729)产生的每个“数据包”编解码器有效负载都小于 160 字节。加上 RTP、UDP 和 IP 开销——总共大约 40 字节,L2 有效负载大小不会超过 200 字节。再为 IPSec ESP 添加 56 字节,它仍然远不及典型的以太网接口 MTU。

您的 VoIP 管理员通过网络推送哪些需要 1472 字节 L2 有效负载的内容?

参考:

IP 语音 - 每次通话带宽消耗

技术信息 - VoIP 编解码器

相关内容