用DevStack安装分布式VR环境(一)

  • A+
所属分类:安全开发

用DevStack安装分布式VR环境真的很简单,

控制节点,

[[local|localrc]]
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
HOST_IP=192.168.137.200
SERVICE_HOST=192.168.137.200
PUBLIC_INTERFACE=ens33
SERVICE_PASSWORD=password
ADMIN_PASSWORD=password
DATABASE_PASSWORD=password
RABBIT_PASSWORD=password
Q_DVR_MODE=dvr_snat
disable_service tempest
[[post-config|/etc/neutron/dhcp_agent.ini]]
[DEFAULT]
enable_isolated_metadata = True

计算节点,

[[local|localrc]]
GIT_BASE=http://git.trystack.cn
NOVNC_REPO=http://git.trystack.cn/kanaka/noVNC.git
HOST_IP=192.168.137.201
PUBLIC_INTERFACE=ens33
SERVICE_PASSWORD=password
ADMIN_PASSWORD=password
DATABASE_PASSWORD=password
RABBIT_PASSWORD=password
DATABASE_TYPE=mysql
SERVICE_HOST=192.168.137.200
MYSQL_HOST=$SERVICE_HOST
RABBIT_HOST=$SERVICE_HOST
GLANCE_HOSTPORT=$SERVICE_HOST:9292
ENABLED_SERVICES=n-cpu,q-agt,c-vol,placement-client,neutron,q-l3,q-meta
NOVA_VNC_ENABLED=True
NOVNCPROXY_URL="http://$SERVICE_HOST:6080/vnc_lite.html"
VNCSERVER_LISTEN=$HOST_IP
VNCSERVER_PROXYCLIENT_ADDRESS=$VNCSERVER_LISTEN
Q_DVR_MODE=dvr

主要看效果,在router上给子网添加网关接口时,每个子网自动多出来一个接口,这个就是OpenStack分布式VR的精心设计,对于绑定了弹性IP的虚机,可以通过分布式VR从所在的计算节点直接出外网,但没有绑定弹性IP的虚机,主动向外访问时,可以从控制节点做SNAT出外网,


用DevStack安装分布式VR环境(一)

计算节点上的两台虚机,一台绑了弹性IP,另一台没有绑弹性IP,

详细看看计算节点router的namespace就清楚了,

ifconfig只看到网关接口,没毛病,

用DevStack安装分布式VR环境(一)

但是看看路由是怎么走的就明白了,

用DevStack安装分布式VR环境(一)

咱们先说32位主机路由这个,因为这个就是绑定了弹性IP的虚机地址,原理上这个地址的出入向流量都直接走计算节点,当然要在router下做SNAT和DNAT,这都没毛病,问题是怎么跟外网互通的,

用DevStack安装分布式VR环境(一)

看了计算节点上另一个fib的namespace就明白了,原来router的namespace下的32位主机路由的下一跳在这里,这里直接跟外网互通,并给32位主机做了回指路由,这样绑定弹性IP的虚机的SNAT和DNAT就都通了,

用DevStack安装分布式VR环境(一)

回头再来看看没绑定弹性IP的虚机怎么出外网,这里看的就是子网路由,

又是一个不知道在哪儿的下一跳,进控制节点上的一个snat的namespace就明白了,原来下一跳在这里,

用DevStack安装分布式VR环境(一)

确实,SNAT就是在这里做的,

用DevStack安装分布式VR环境(一)

这就是OpenStack的分布式VR,还是那句话,整明白一个复杂系统的最好办法就是上手实践。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: