nova-是Nova组件中的网络服务,用于接收和处理网络相关的任务。
在的情况下, 每个计算节点都需要运行nova-服务,它也是作为rpc 来对外提供的。
nova-支持3种网络模型,flat//vlan,与之对应有3种网络管理器、,,nova-默认的网络管理器是。本章会对最简单的flat网络进行学习↓
学习之初,我们要先了解几个概念:
1.的网络中有2种IP,/固定ip和/浮动ip,会创建一些虚拟网络用于组织虚拟机实例,那么这些虚拟网络中的ip就是固定ip,一旦分配给虚拟机实例,就会在虚拟机实例的整个生命流程中与之绑定,固定ip在环境外,是无法路由的,也就是我们在外是无法通过固定ip访问虚拟机实例的; 那如果我们想通过一个ip地址访问虚拟机实例怎么办呢?这就是浮动ip的用武之地了,浮动ip通常是节点的物理网络中的ip地址,是可以路由的,我们可以给虚拟机实例额外分配这样的固定ip,那么就可以通过它来访问实例了,固定ip可以与实例进行动态绑定和释放
上图(摘自 wiki)就是flat网络在多节点多网卡下的典型架构,顾名思义,flat也就是扁平的意思,在这种网络下所有的虚拟机实例都处于同一个虚拟网络中。
它利用网桥来组织整个虚拟网络,同一个计算节点上的所有虚拟机实例都连接到该节点上的一个br100网桥上(可通过进行配置网桥名),并且该网桥会桥接到计算节点的网卡eth0上;同一个计算节点上的实例进行通信时,直接在网桥上进行转发即可;如果不同计算节点上的实例需要进行通信,那么我们要保证上图中的这2个实例的网卡eth0是可以通信的(譬如连接到同一个交换机上);当虚拟机实例访问物理网络或者时,流量会借由br100转发到nova-节点上,然后由nova-节点会作为路由器将流量进行SNAT然后转发出去;当我们通过浮动IP访问虚拟机实例时,流量会从nova-节点进入,然后通过DNAT再转发至对应的虚拟机实例。由于外部和虚拟机实例的网络流量都需要经过nova-节点,那么势必会有单点问题,我们可以考虑在每个计算节点上运行nova-服务。
这种网络模型十分简单,易于部署和维护,但是因为过于简单了,无法构建丰富的网络拓扑结构,所以不适合在公有云这种大规模部署、需求繁杂的场景下,但是可以考虑在小规模的私有云中使用。除此之外,它还有以下几个缺点:
1.上面说的网桥br100需要我们手动创建, nat转换规则也需要我们手动配置;
2.我们需要指定一个网段来作为虚拟网络的IP池,虚拟机实例的固定ip就是从这个IP池进行分配,但是由于没有DHCP,虚拟机实例的网络配置需要在来宾系统进行手动配置,我们可以文件注入的方式来替代手动配置工作, 譬如为运行Linux来宾系统的虚拟机实例创建网络配置文件并注入到/etc/目录下;当然这种解决方法局限性很大,因为现存的操作系统也是种类繁多的,意味着配置文件和注入位置的各式各样。
发表回复