在生产环境部署了一套Openstack测试平台,使用Havana版本,网络由Neutron管理,网络插件是OpenVSwitch,传输模式是GRE Tunnel。云环境的网络地址如下:
外网IP段:58.215.xx.0/24
内网IP段:10.21.144.0/24
每台服务器有2块网卡,eth0是外网,eth1是内网。
与云环境隔离的生产环境的网络地址如下:
外网IP段:58.215.xx.0/24
内网IP端:10.20.165.0/24
云环境与生产环境的内网通过三层交换机连接起来。在三层交换机上,设置好2个内网段的路由规则。我们设置为2个网段的IP可以直接通信。交换机上绑定的Gateway地址是:
GW1: 10.21.144.1
GW2: 10.20.165.1
在测试环境里,使用内网IP段作为虚拟机的Floating IP,此时虚拟网络桥接在eth1上。在正式环境里,Floating IP一般是公网IP。
虚拟机的网络地址:
Fixed IP: 10.21.145.0/24
Floating IP: 10.21.144.xx – 10.21.144.xx (起止范围自己指定)
需求一:虚拟机可以访问互联网
我们的内网并没有出口网关,此时需要配置一台Linux服务器来充当网关。这里在Neutron Controller服务器上,运行如下命令配置一个NAT网关:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
然后,在neutron创建external虚拟子网时,指定如下参数:
–gateway=10.21.144.5
10.21.144.5是Neutron Controller的内网地址。
需求二:虚拟机可以与生产环境的内网互通
除了三层交换机上配置好路由外,在生产服务器上添加如下自定义路由:
route add -net 10.21.144.0/24 gw 10.20.165.1
在neutron创建external虚拟子网时,指定如下参数:
destination=10.20.165.0/24,nexthop=10.21.144.1
10.21.144.1是交换机上的GW地址。
需求三:网络性能
期望虚拟网络之间、虚拟网络与物理子网之间、虚拟网络与外部互联网之间的传输速率越高越好。我们做了许多性能测试,并不断优化配置,结果是这3者之间的传输速率可以达到900Mbps左右(物理网络是千兆)。
优化的配置至少包括:
- 在Neutron Controller的eth0、eth1上都关闭GRO(用ethtool工具)
- 设置VM网卡的MTU为1400(在DHCP服务器指定)
最终的网络拓扑结构图如下,图中绿色线条表示物理网络,黄色线条是虚拟网络。点图放大查看。