狗尾续貂之 Neutron 网络部署架构的第 N+1 种方式
前言
在前面的系列中,"牛"人总结了不同服务器配置、网络配置情况下 Neutron 的部署方式。这些年也偶尔兼职过部署运维的工作,对个中滋味深有体会,但是读过之后依然有醍醐灌顶,耳目一新的感觉,一句话,简单直接。
理想是美好的,现实是骨感的。去某客户现场做 POC 时,经过前期的沟通,现场的条件还不错,机器随便用,独立的二层交换机随便用,感觉不错呦。但,但是,唯一的三层网络是办公网络,DHCP 方式获得,不可改!瞬间感觉血压有点高,懵了,好像跟想象的不一样啊,说好的提供连续的一段可访问地址呢?(再次证明,不到最后实施部署那一刻,神马都是浮云)没困难上,有困难更要上,作为焱融的男人,工作还要继续,不能说不的,让我们缓口气,理一理思绪。
其实事后想一想,这个问题的变种还是遇到过的,只不过大脑短路了,后面再提及。
分而治之
无图无真相,我们看看实际情况,当然真相不仅如此,还有路由、网关和远方。
我们都知道,Neutron 里面如果虚拟机需要外网流量进出,至少需要一个 external 网络,在这个网络中我们需要若干的 IP 地址,并且 Neutron 自行维护 DHCP,当然也可以不启用 DHCP,转而手动指定 IP。但就上面的实际情况,我们既不能长久的获得连续的一段 IP 地址(可能晚上能 ping 出来一段,白天又自动分出去了),又不能在我们的 Neutron 网络内启动另外一个 external 的 DHCP。混社区的,需要学会 leverage,有问题第一时间要去抱大腿,到社区去找 Neutron 是否可以为 external 网络利用已经存在的 DHCP,未果,只发现有提问题的,没有答的,哈哈。
好在现场硬件条件还不错,网口足够,交换机够用。那么我们就分而治之,不是没有连续的网络地址吗,但是有独立交换机啊,那我们就自己创造一个连续的 IP 地址池,只要与现有的不冲突即可,例如 172.16.10.0/24, 这样安装 OpenStack 的时候,配置的 br-ex 选择该网段即可(其他网络不再详细描述,例如管理网也可以用其他的独立的私有网络,从现有的 DHCP 隔离出来)。
OpenStack 环境部署出来了,但是虚拟机还是隔离的。在当前拓扑下,办公网络和我们 OpenStack 的上联网络是不同的网段,两个交换机还不能直接连接,否则 DHCP 就乱了,那么就需要一个路由器做跨网段的通信。然而,答案肯定是没有了,:(。
好吧,没有什么是一台 Linux 操作系统不能搞定的,实在不够,就两台。我们可以用一台服务器,通过对操作系统做一些 iptables 的配置,达到路由器的目的。
距离成功只有一步之遥了,其他台式机只要能路由到 172.16.10.0/24 的网络就能够访问到虚拟机了,如果可以修改 DHCP Server,那么可以通过配置下发,将 172.16.10.0/24 的路由设置为之前的那个 Linux 路由服务器,通过它进行转发。或者直接在办公网络台式机本地手动增加一条路由也能够完成同样的效果。
总结
文中试图在受限的情况下利用一些其他的方式来解决实际的问题,其实想来,这样的模式也是有迹可循的。例如在一个典型的机房中部署了私有云,在机房外需要访问虚拟机时,就有些类似,只不过那时需要利用防火墙做 NAT 等。受限于笔者在网络方面的有限了解,行文以及技术方面难免有遗漏,欢迎指正。
版权声明: 本文为 InfoQ 作者【焱融科技】的原创文章。
原文链接:【http://xie.infoq.cn/article/d73f48eff9e5459d79b1dbfea】。文章转载请联系作者。
评论