跳转到: 导航, 搜索

FlatManagerIPv6支持

  • Launchpad条目: NovaSpec:cactus-flatmanager-ipv6-support
  • 创建时间: 2011年2月2日
  • 贡献者: Hisaharu Ishii, Nachi Ueno, Koji Iida, Tushar Patil

总结

Bexar版本已经支持FlatDHCP和VLAN网络模型的IPV6。增加对Flat网络模型的支持

发布说明

待定

原理

  • IPV4地址耗尽

用户故事

前提条件

  • 目前nova支持使用FlatManager,并指定一个桥接器(默认是flat_network_bridge,即br100)。用户需要在所有计算节点上创建这个桥接器。
  • 目前不支持创建多个网络
  • 如果flat_injected为True,计算节点将尝试将网络配置注入到虚拟机中。它尝试修改/etc/network/interfaces,目前仅适用于基于debian的系统。为了支持更广泛的操作系统,可能需要设计其他方法来让虚拟机知道应该使用哪个IP地址,以便它可以自行配置。

设计

  • 在networks数据库表的networks表中添加netmask_v6数据库列。
  • 修改networks表的ra_server数据库列为gateway_v6。
    • 原因:当我们为FlatDHCP和Vlan网络模型实现IPv6支持时,我们在networks数据库表中添加了新的ra_server列。但是,我们认为对于Flat网络模型,这个ra_server列名不合适。因为对于所有3种网络模型,路由器充当网关,转发云内部和外部的数据包,只有VlanManager或FlatDHCPManager,路由器才会广播RA消息。因此,通常情况下,这些路由器不应该被称为“RA服务器”,而仅仅是“网关”。
  • 使用nova-manage network create命令创建网络时,填充netmask_v6。
  • 当为项目选择网络主机时,更新gateway_v6列。手动获取您在网络节点上创建的桥接器的IPv6本地链路地址,并将此本地链路地址更新到网络的gateway_v6列中。
  • 修改interfaces.template以包含以下内容
    • ###开始IPV6静态配置
      • iface eth0 inet6 static
      • address %(address_v6)s
      • netmask %(netmask_v6)s
      • gateway %(gateway_v6)s
  • ###IPV6结束
    • 如果use_ipv6标志设置为True,则仅将上述IPV6配置注入到VM实例的/etc/network/interfaces中。
  • 修改libvirt_conn.py以过滤安全组

实现

UI 变更

  • 对最终用户来说,不应该有可见的变化,所有这些工作都将在网络/计算服务器的后台进行。

代码变更

迁移

  • 需要数据库迁移才能对networks和fixed_ips数据库表中的新添加和修改的列进行迁移。

测试/演示计划

  • 在代码开发完成后,将添加单元测试。系统测试将在Ubuntu Lucid上进行。

未解决的问题

BoF 议程和讨论