热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Multi-Segment应用——一个Network多个Subnet

这是一个土豪的故事。一般来说,一个Network对应一个Subnet,这是符合人们认知的。在这个二层网络里,大家属于一个三层子网,这样无论是从二层通还是三层通的概念来讲,
这是一个土豪的故事。
一般来说,一个Network对应一个Subnet,这是符合人们认知的。在这个二层网络里,大家属于一个三层子网,这样无论是从二层通还是三层通的概念来讲,都是符合常理的。
但是,一个Network里面,如果虚拟机(或者Host)太多,会产生问题,比如:这个Network的二层广播风暴,网络里面交换机的ARP表项容量限制,等等。所以,一般来说,一个Network,其规划容纳的VM的数量是有一定限度的。如果超出这个限度,一般会多规划几个Network(Subnet)。
可是土豪不这么想,这么多Network,每次创建虚拟机,还要让它选择属于哪个Network,不开心。这么任性基本就无解了,除非打破常规。
是的,Neutron就是打破常规,亲手消灭了Network这个模型的含义。Network本身是一个二层网络,现在Neutron废除了这个含义,把Network当做一批网络容器。每个二层网络对应一个Subnet,如下图所示:
现在Network变成了一个大框,它包含了上述4个L2 Network:
1 每个L2 Network内部,是二层通。
2 每个L2 Network之间,是三层通。
这只是逻辑概念,实际上来说,每个L2 Network之间,如何进行三层通呢?需要用到物理路由器(考虑到性能,不能使用虚拟路由器),如下图所示:
这样的网络,Neutron称为Routed Network。这是一个物理组网,如果回到逻辑模型,该如何表达呢?现在能表达一个Network中有多个L2 Network的有两个候选方案:
1 Network模型中的segments字段。
2 独立的一个模型:Segment。
但是,我们还需要两个内容:每个Segment有一个Subnet、Network包含多个Subnets。如下图所示:
满足这样关系的只能是那个独立的模型Segment,如下图所示。
这三个模型之间,通过互相关联对方达到和谐。Subnet模型内的gateway_ip字段,指向物理路由器对应网口的IP地址。
不过故事讲到这里,还不能算结束。因为这里面的路由器使用的是物理路由器,一个机架接到一个物理路由器的网口上以后就是固定了,不能随意修改了,而这个网口的IP地址也已经是固定了,也不能随意修改了,这就要求:这个机架上的对应的Host/VM,其Subnet需要和这的物理路由器的网口,是同一个网段,否则路由不能通。如下图所示:
图中,如果IP1和IP2不是同一个Subnet,那么这个路由是不通的。所以,管理员必须要做一个规划,将每个机架对应的网关IP、DHCP Server等都事先规划好。
首先规划的是每个Segment的网关信息。网关IP必须属于Segment中的子网网段,如下表所示:
其次要规划的是每个主机(Host)属于哪个Segment,如下表所示:
最后还要规划DHCP Agent部署在哪个主机。因为这种场景,DHCP Agent只能支持一个Segment,所以必须一个Segment要部署一个Agent。为了减少节点数量,一般将DHCP Agent部署于网络节点上,如下表:
做好这些的规划以后,Network就可以安静地做个美男子了。它不再是一个二层网络的含义,而是一批二层网络的容器。而土豪在创建虚拟机时,也就可以只选择一个Network了。

推荐阅读
author-avatar
狼哥2502934093
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有