焱融科技 · 2021年05月14日

狗尾续貂之Neutron网络部署架构的第N+1种方式

前言

在前面的系列中,"牛"人总结了不同服务器配置、网络配置情况下Neutron的部署方式。这些年也偶尔兼职过部署运维的工作,对个中滋味深有体会,但是读过之后依然有醍醐灌顶,耳目一新的感觉,一句话,简单直接。

理想是美好的,现实是骨感的。去某客户现场做POC时,经过前期的沟通,现场的条件还不错,机器随便用,独立的二层交换机随便用,感觉不错呦。但,但是,唯一的三层网络是办公网络,DHCP方式获得,不可改!瞬间感觉血压有点高,懵了,好像跟想象的不一样啊,说好的提供连续的一段可访问地址呢?(再次证明,不到最后实施部署那一刻,神马都是浮云)没困难上,有困难更要上,作为焱融的男人,工作还要继续,不能说不的,让我们缓口气,理一理思绪。

其实事后想一想,这个问题的变种还是遇到过的,只不过大脑短路了,后面再提及。

分而治之

无图无真相,我们看看实际情况,当然真相不仅如此,还有路由、网关和远方。

111.png

我们都知道,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隔离出来)。

222.png

OpenStack环境部署出来了,但是虚拟机还是隔离的。在当前拓扑下,办公网络和我们OpenStack的上联网络是不同的网段,两个交换机还不能直接连接,否则DHCP就乱了,那么就需要一个路由器做跨网段的通信。然而,答案肯定是没有了,:(。

好吧,没有什么是一台Linux操作系统不能搞定的,实在不够,就两台。我们可以用一台服务器,通过对操作系统做一些iptables的配置,达到路由器的目的。

333.png

距离成功只有一步之遥了,其他台式机只要能路由到172.16.10.0/24的网络就能够访问到虚拟机了,如果可以修改DHCP Server,那么可以通过配置下发,将 172.16.10.0/24的路由设置为之前的那个Linux路由服务器,通过它进行转发。或者直接在办公网络台式机本地手动增加一条路由也能够完成同样的效果。

总结

文中试图在受限的情况下利用一些其他的方式来解决实际的问题,其实想来,这样的模式也是有迹可循的。例如在一个典型的机房中部署了私有云,在机房外需要访问虚拟机时,就有些类似,只不过那时需要利用防火墙做NAT等。受限于笔者在网络方面的有限了解,行文以及技术方面难免有遗漏,欢迎指正。

推荐阅读
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息