openstack支持IPv6

IPv6地址格式

一个IPv6地址可以分为如下两部分:

  • 网络前缀:n比特,相当于IPv4地址中的网络ID
  • 接口标识:(128-n)比特,相当于IPv4地址中的主机ID
    接口标识可通过三种方法生成:手工配置、系统通过软件自动生成或IEEE EUI-64规范生成。其中EUI-64规范自动生成最为常用。

EUI-64 地址规范

fa:16:3e:b3:4f:5a的MAC地址为例
注:MAC地址第7位称为U/L位,表示此地址是全球管理还是本地管理。如果为0就为全球管理,为1就为本地管理。

  1. 先将MAC一分为二,中间填入0xff 0xfe,得到EUI-64:fa:16:3e:ff:fe:b3:4f:5a
  2. 将U/L位取反,得到EUI-64规范的64位IPV6接口标识符:f8:16:3e:ff:fe:b3:4f:5a
  3. 加上IPv6前缀,最终得到IPv6地址:2112:1:1:1:f816:3eff:feb3:4f5a

OpenStack支持的三种IPv6地址配置模式

  • 无状态地址自动配置(SLAAC):使用路由器通告(RA)进行地址配置
    其中又分成通过外部路由器和OpenStack路由器
  • 有状态的DHCPv6:地址配置和可选信息均使用DHCPv6
  • 无状态的DHCPv6:使用路由器通告(RA)进行地址配置,可选信息使用DHCPv6

使用 SLAAC

当使用SLAAC时,ipv6_ra_modeipv6_address_mode当前支持的组合如下。
且必须激活DHCP(enable_dhcp=true

ipv6_ra_mode ipv6_address_mode Result
未指定 SLAAC 地址使用EUI-64分配,外部路由器将提供路由
SLAAC SLAAC 地址使用EUI-64分配,OpenStack网络提供路由

配置OpenStack IPv6网络


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# openstack subnet show subnet_ipv6
+-------------------+----------------------------------------------+
| Field | Value |
+-------------------+----------------------------------------------+
| allocation_pools | 2112:1:1:1::2-2112:1:1:1:ffff:ffff:ffff:ffff |
| cidr | 2112:1:1:1::/64 |
| created_at | 2018-11-20T06:50:07Z |
| description | |
| dns_nameservers | |
| enable_dhcp | True |
| gateway_ip | None |
| host_routes | |
| id | 5a60049c-4413-48ee-8911-0b67a744c4d4 |
| ip_version | 6 |
| ipv6_address_mode | slaac |
| ipv6_ra_mode | None |
| name | subnet_ipv6 |
| network_id | a6d7a3f7-e3f8-4dbe-8fb9-01dfc96a68d5 |
| project_id | 6621c54fb0254cbda7e628faf2848971 |
| revision_number | 1 |
| segment_id | None |
| service_types | |
| subnetpool_id | None |
| tags | |
| updated_at | 2018-11-21T02:34:28Z |
+-------------------+----------------------------------------------+

虚拟机IPv6配置信息

1
2
3
4
5
6
7
8
9
10
11
12
13
# ip ad show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether fa:16:3e:b3:4f:5a brd ff:ff:ff:ff:ff:ff
inet 10.200.112.57/24 brd 10.200.112.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 2112:1:1:1:f816:3eff:feb3:4f5a/64 scope global
valid_lft 2591996sec preferred_lft 604796sec
inet6 fe80::f816:3eff:feb3:4f5a/64 scope link
valid_lft forever preferred_lft forever
# ip -6 route
2112:1:1:1::/64 dev eth0 proto kernel metric 256 expires 2591978sec pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
default via fe80::a223:9fff:fed6:98bf dev eth0 proto ra metric 1024 expires 1778sec hoplimit 64 pref medium
坚持原创技术分享,您的支持将鼓励我继续创作!
0%