这几今天一直在研究思科和Juniper防火墙建立IPSec VPN的MTU问题,
底层基础可以参考思科官方的这篇文章,讲解的十分详细:
但是了解这些理论之后,我在测试的时候发现哪怕两台Juniper防火墙(SRX和Netscreen)之间配置了IPSEC VPN,但是MTU仍然是1500(当然DF=1),考虑到ESP和新的包头,这显然不科学(思科ASA之间建立同样的IPSEC VPN,MTU为1438)。
于是找到了下面两篇文章:
Juniper防火墙默认情况下会重置客户端数据包的DF位,因此即便ping包的数据超过1472,还要经过IPSEC VPN,并且设置为不能分片(DF=1),其也能顺利通过IPSEC VPN。
但是思科默认是清除DF位的,因此如果数据+IPSEC封装超过MTU,那么就会丢包,可以参考下面这篇文章:
具体配置请参考给出的文章,这里不过多列举这种命令,但是需要注意如果想要修改思科ASA清除DF位,那么应该同时修改接口和crypto map。