这两天碰到一个疑难故障,一台物理机以接入到交换机hybird模式,该物理机下一台虚拟机以ipsec net2net方式接入到一台天翼云的主机,实现了将天翼云VPC网络与本地私网打通的目标,但是本地私网有133.3.5.0/24,133.3.103.0/24,133.3.107.0/24等多个C端的私网地址,在配置ipsec vpn时,专门把通过私网路由修改为133.3.0.0/16,配置全部完成后出现了一个非常诡异的现象,就是只有交换机端口的pvid改为对应的vlan号,该网段才能双向访问至天翼云内网,否则就只能是天翼云内网单通。
一、故障时拓扑图
当内网网关交换机与内网IPSEC服务器采用hybird模式互联,且pvid设置为505时,天翼云内网192.168.1.0/24与内网133.3.5.0/24可以相互正常访问,但是内网133.3.103.0/24与133.3.107.0/24网段无法ping通天翼云,从天翼云192.168.1.0/24可以ping通133.3.103.0/24及133.3.107.0/24网,如果将hybird配置模式中将端口透传的vlan由untag模式修改为tag模式,且将内网ipsec服务器上对应的网卡修改为支持vlan的模式后可以解决133.3.103.0/24,133.3.107.0/24与天翼云192.168.1.0/24网络互访问题,但是速度非常慢只有10m,且丢包严重。
内网网关交换机配置
二、通过trunk模式直接接入交换机避开hybird模式
从新配置一台物理服务器直接以trunk模式接入内网网关交换机,服务器安装centos7操作系统,并将网卡全部设置为支持vlan的模式,对所有的ip地址均采用vlan模式
交换机端口配置信息
三、centos7系统配置启用vlan
1、加载8021q模块
如果只是显示该模块信息可以使用如下命令
modinfo 8021q
2、配置父接口
比如我的物理接口是eno1,那么就修改这个文件/etc/sysconfig/network-scripts/ifcfg-eth0
文件修改为以下内容:
3、配置vlan子接口
有几个vlan子接口就配置几个文件,在目录中配置VLAN接口配置。配置文件名应该是父接口加上字符加上VLAN ID号。例如,如果VLAN ID为505,并且父接口为eno1,则配置文件名应为
再配置其它vlan子接口的内容,根据实际情况配置完毕。
4、重新启动网络服务使配置生效
systemctl restart network
重启网络服务后,使用ip add命令查看发现网络已经启动成功,分别启动了eno1.103,eno1.107,eno1.505三个子接口
5、通过tcpdump抓包测试vlan帧
tcpdump -i eno1 -nn -e -vvv vlan
四、通过IPSEC-VPN网络测试天翼云至客户内网的网络性能
1、通过iperf3测试带宽性能
a、天翼云访问内网带宽测试
天翼云主机上执行
iperf3 -c 133.3.5.71
内网测试主机上执行
iperf3 -s
网速可达50M,因为天翼云限速50M上行,所以当天翼云上行速率突破50M时就会大量丢包,导致RETR642。
b、内网访问天翼云带宽测试
天翼云执行测试服务端
iperf3 -s
内网主机上执行
iperf3 -c 192.168.1.42
因为天翼云主机未限制下行,而内网的出口带宽只有100M,实际通过IPSEC加密衰减后,实际可以达到71.4M,并且没有一次RETR发生。
总结:
内网网关交换机使用trunk模式接入物理服务器直接使用vlan形式可以避免掉入虚拟化层与硬件vlan中的陷阱,在没有进行trunk改造之前,通过直接将hybird端口vlan打上tag帧的方式丢包十分严重,基本用不成,这次调整后整个网络结构更加清晰明了,为今后对虚拟化网络中配置主机网络服务指明了方向,需要将物理网络的vlan通过trunk一直打进主机,虚拟机通过桥接进物理网络后再到主机操作系统上解开vlan报文,避免虚拟化层处理vlan信息,也不要在交换机上把一堆vlan处理成untag模式。