【Nova】nova-network网络模型之flatdhcp网络

来源:互联网 发布:aptget升级软件 编辑:程序博客网 时间:2024/05/01 15:44

之前有学习过flat网络,发现作用很小,基本只能对虚拟机实例的一些网络信息进行管理。网桥需要自己建,网络规则需要自己配置,以至于浮动ip也不能自行创建分配。

为了解决这些问题,引入了flatdhcp网络。顾名思义,它也是一个扁平网络,和flat类似,所有虚拟机实例处于同一个虚拟网络中(注:其实我们可以创建多个虚拟网络,但是服务器的一个网卡只能用于创建一个虚拟网络,然后可以创建的虚拟网络等同于服务器的网卡数,十分有限,并且同一时刻只能使用其中一个),这些虚拟网络都是l2网络且处于平等地位; 和flat不同之处在于,它引入了DHCP服务来解决虚拟机实例网络配置的问题。


注:对于同一个物理网卡,一旦某个网桥连接到它,那么其它网桥是无法连接到它的,大家可以动手做下实验,因此在不改变flat_interface的前提下,我们只能创建一个虚拟网络。

      假定eth0是我们拿来做实验的:

     brctl addbr br105

     brctl addbr br106

     brctl addif br105 eth0

     brctl addif br106 eth0 # 这里就会报错


以上是multi_host情况下的网络架构,每个计算节点上都需要运行nova-network服务,它会为每个虚拟网络启动一个dnsmasq dhcp server侦听在对应的网桥上。每当在一个虚拟网络中创建虚拟机实例时,nova-network会从该网络的固定IP池中选出一个未分配且处于已释放状态的固定IP与实例和实例的虚拟网卡进行关联,然后通知dnsmasq将该固定IP与实例的mac地址进行绑定,虚拟机实例启动后,如果网卡设置为动态获取IP,就会发送DHCP请求,然后dnsmasq dhcp server将对应的固定IP分配给它,这就完成了固定IP与实例的绑定工作。我们可以配置一个public_interface,那么从虚拟机实例出来的上网流量就会先进行SNAT转换(如果没有浮动IP,就转换为该网卡的IP;有浮动IP就转换为浮动IP)然后从宿主机的该网卡出去;通过浮动IP访问虚拟机实例时,也是从该网卡进入,先进行DNAT转换修改目的地址为与浮动IP对应的虚拟机实例的固定IP,然后转发至对应的虚拟机实例。




阅读全文
0 0
原创粉丝点击