neutron分配浮动IP(floating ip)的方法

来源:互联网 发布:戴比尔斯钻石骗局 知乎 编辑:程序博客网 时间:2024/06/05 00:33

当前所用版本juno,其他版本也应该可行。

虚拟机的(虚拟)网络接口相关概念:
  虚拟网络(内部网络,私有网络):虚拟机的虚拟机网卡所在的私有网络
  fixed ip:虚拟机网卡在虚拟网络上的IP
  floating ip: 虚拟网络对应的外部网络上的IP
  port: 一个网络接口对应一个Port
  interface: 一个网络接口


场景1:单网卡

    参照安装手册:
         1. neutron floatingip-create ext-net  其中ext-net是对应外部网络的名字
         2. nova floating-ip-associate demo-instance1 203.0.113.102   其中demo-instance1是云主机(也称为实例)的名字,203.0.113.102是前面步骤获得的floating ip


场景2:双网卡

    预先知道虚拟机的名字(放到变量VMNAME中)、私有网络名字(放到变量DEMONET中)和与之对应的外部网络名字(放到变量EXTNET中)。

    方法一(仍然是给虚拟机赋予浮动IP的方法)
    1. neutron floatingip-create $EXTNET
    2. 获取固定IP:nova show $VMNAME | awk '/ '$DEMONET' / {print $5}'
    3. nova floating-ip-associate --fixed-address <获取的固定IP的地址> $VMNAME <前面分配的外部IP>

    方法二(分配外部IP的同时指定虚拟机对应的port,分配的同时就将浮动IP关联到对应的虚拟机网络接口了)
    1. 获取port-id。
           方法有几种:
                  可以是先像上面那样获取虚拟机的固定IP,然后使用 neutron port-list | awk 组合从该固定IP获取port-id;
                  或者也是先获取固定IP,然后使用 nova interface-list | awk的组合获取port-id;
                 也可以使用nova net-list | awk 组合通过DEMONET获得其net-id,然后用nova interface-list | awk 组合获取port-id。
           建议使用最后一种;
    2. 创建的同时指定PORTid: neutron floatingip-create --port-id PORT_ID  $EXTNET

0 0
原创粉丝点击