为 instance 配置静态 IP - 天天5分钟玩转 OpenStack(157)

 

这是 OpenStack 实施经验分享系列的第 7 篇。服务器

 

传统运维中为服务器配置静态 IP 是再常见不过的了。但在 OpenStack 环境下只能指定 network,IP 都是 Neutron 从 subnet IP 池中自动分配的。网络

 

有同窗就会想办法了:等 instance 起来后手工把 IP 改掉行不行?运维

 

很是遗憾,不行!spa

 

instance 网卡的 IP 和 Mac 地址是记录在 port 中的,计算节点的 iptable 会根据 port 信息生成相应的 rule,只有与 port 匹配的 IP 和 Mac 才能容许在 Neutron 网络中通讯。操作系统

 

那还有没有办法为 instance 配置静态 IP 呢?命令行

 

有!code

 

方法是:ip

  1. 先建立 port,设置好 IP 地址。table

  2. 将该 port attach 到 instance。软件

  3. 在 instance 中手工配置静态 IP。

Newton 版本以前只能用命令行完成上面的操做。不过从 Newton 开始 horizon 已经支持了。咱们先看命令行如何实现。

 

命令行操做

 

instance “c1” 当前尚未任何网卡。

 

 

第一步:用 neutron port-create 命令建立 port,设置 IP。

 

 

最重要的就是 --fixed-ip 参数了,指定 IP 和 IP 所属的 subnet。

 

另外还能够指定 Mac 地址(可选),这在某些场景下有用。以前有个项目客户的商业软件是绑定在特定 Mac 地址上的,因此必须给 instance 网卡指定 Mac。

 

Network 参数指定 port 所属的网络。

 

下面的命令建立了一个 vlan111 的 port,IP 为 17.17.111.33。

 

neutron port-create --fixed-ip subnet_id=e0e251a0-0e38-4b70-9904-6b791fcf8d33,ip_address=17.17.111.33 vlan111

 

 



第二步:执行 nova interface-attach 命令将 port attach 到 instance。

 


操做系统已经可以识别到该网卡 eth0,但 IP 还须要手工设置。

 

 

第三步:在 instance 配置静态 IP。

 

编辑 /etc/network/interfaces。

 

 

重启 eth0。

 

 

IP 生效。
 

 

而且能够 Ping 到同网段其余 IP。

 

 

若是这里咱们配置的 IP 不是 port 中定义的 17.17.111.33 还能 Ping 通吗?这个问题留给你们本身去验证。

 

horizon 操做

 

horizon 在 Newton 版本中支持在建立 port 时设置 IP 地址,也就是说步骤一咱们能够直接在 Web GUI 中完成了。

 

菜单 “Admin -> System -> Networks”。

 

 

 

点击网络 “vlan111”,而后点击 “Ports” 标签。

 

 

点击 “Create Port” 按钮。

 

 

设置 IP 17.17.111.55,而后点击 “Create Port” 按钮。

 

 

port 建立成功,目前尚未 attach 到 instance,因此状态为 “Down”。

 

horizon 目前还不支持直接将 port attach 到 instance,这个操做还得经过命令行,具体请参考前面的示例。但愿新版本的 horizon 能加入这个功能。

 

好了,以上就是设置静态 IP 的方法,下一节咱们继续分享实施经验。

 

二维码+指纹.png

相关文章
相关标签/搜索