我已经build立了与远程主机的GRE连接IPsec,都是基于NetBSD 6.1的。 “客户端”通过400Mbps的光纤连接到互联网。 “服务器”位于10Gbpsnetworking上。 两台机器都有1Gbps的网卡,这些网卡的performance完美,这意味着在IPsec隧道之外传输数据时,它们都达到链路速度限制。 当通过隧道传输时,速度下降5到10倍:
直接连接: /dev/null 27%[====> ] 503.19M 45.3MB/s eta 83s IPsec连接: /dev/null 2%[ ] 47.76M 6.05MB/s eta 5m 3s
隧道是这样设置的:
在服务器上,这是一个运行在debian / amd64 dom0上的NetBSD domU :
$ cat /etc/ifconfig.xennet0 #服务器接口 向上 inet 192.168.1.2networking掩码255.255.255.0 inet 172.16.1.1networking掩码0xfffffffc别名 $ cat /etc/ifconfig.gre0 创build 隧道172.16.1.1 172.16.1.2 up inet 172.16.1.5 172.16.1.6networking掩码255.255.255.252
IPsecstream量通过iptables NAT规则从dom0的公共IP转发到domU的xennet0接口:
-A PREROUTING -i eth0 -p udp -m udp -dport 500 -j DNAT -to-destination 192.168.1.2:500 -A PREROUTING -i eth0 -p esp -j DNAT - 到目的地192.168.1.2 -A PREROUTING -i eth0 -p ah -j DNAT - 到目的地192.168.1.2
在客户端:
$ cat /etc/ifconfig.vlan8 #客户端公共接口 创build vlan 8 vlanif re0 !dhcpcd -i $ int inet 172.16.1.2networking掩码0xfffffffc别名 $ cat /etc/ifconfig.gre1 创build 隧道172.16.1.2 172.16.1.1上 inet 172.16.1.6 172.16.1.5networking掩码255.255.255.252
在racoon方面,我尝试了各种散列/encryptionalgorithm组合,甚至enc_null ,但没有什么变化,传输仍然停留在最大6MB / s。
远程node.public.ip {
exchange_mode main;
终身时间28800秒;
build议{
encryption_algorithm blowfish;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2;
}
generate_policy off;
}
sainfo地址172.16.1.1/30任何地址172.16.1.2/30 any {
pfs_group 2;
encryption_algorithm blowfish;
authentication_algorithm hmac_sha1;
compression_algorithm deflate;
有效时间3600秒;
}
在客户端:
远程office.public.ip {
exchange_mode main;
终身时间28800秒;
build议{
encryption_algorithm blowfish;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2;
}
generate_policy off;
}
sainfo地址172.16.1.2/30任何地址172.16.1.1/30 any {
pfs_group 2;
encryption_algorithm blowfish;
authentication_algorithm hmac_sha1;
compression_algorithm deflate;
有效时间3600秒;
}
隧道build立没有问题,这里唯一的问题是转移下降。 再一次,当从/到服务器从/到客户端没有隧道传输时,速度是最佳的, 只有通过IPsec丢弃。
这两款机器都是基于英特尔架构的CPU,运行频率为2 GHz,内存充足,CPU转换/ NAT占用的CPU占用时间非常less。
有没有人目睹这样的行为? 任何想法在哪里看得更远?
谢谢,
如果您没有对MTU进行调整,那么您可能会遇到碎片后问题(encryption后发生碎片),本文档中对此进行了详细说明: http : //www.cisco.com/c/en/us/td/docs/interfaces_modules /services_modules/vspa/configuration/guide/ivmsw_book/ivmvpnb.html#wp2047965
您应该尝试通过82个字节(GRE + IPSec头)来减less隧道内的MTU。