
# 创建CCE Turbo集群时如何设置IPv6服务网段
#### 问题背景
当您需要创建一个IPv4/IPv6双栈的CCE Turbo集群时，需要设置IPv6服务网段，该网段默认值为fc00::/112，包含了65536个IPv6服务地址。如果您需要自定义服务网段，您可参考本文进行设置。
#### IPv6介绍
**IPv6地址**
IPv6地址采用128位二进制表示，是IPv4地址长度的4倍。因此IPv4地址的十进制格式不再适用，IPv6采用了十六进制来表示，将128位二进制数转换为32位十六进制数，每4位十六进制数（不区分大小写）为一组，每组以冒号":"隔开，可以分为8组。
IPv6地址存在多种省略写法：
- 0位省略：如果每个冒号分组中存在以0开头的，则可以将0位省略，多个0连续时可省略多个。例如以下IPv6地址均是等价的。
  - ff01:**0** d28:**0** 3ee:**0000** :**0000** :**0000** :**0000** :**0**c23
  
  - ff01:d28:3ee:**0000** :**0000** :**0000** :**0000**:c23
  
  - ff01:d28:3ee:**0** :**0** :**0** :**0**:c23
   
- 双冒号省略：如果以十六进制表示的IPv6地址中间依然存在很多个全为0的分组，可以把连续全为0的分组压缩成双冒号"::"。但为保证唯一性，这种压缩方式只能使用一次，即一个IPv6地址中只能出现一次双冒号"::"。
  例如：
  
  | 双冒号省略前                                      | 双冒号省略后            |
  |:---|:---|
  | ff01:d28:3ee:**0** :**0** :**0** :**0**:c23 | ff01:d28:3ee::c23 |
  | 0:0:0:0:0:0:0:1                             | ::1               |
  | 0:0:0:0:0:0:0:0                             | ::                |
     
  
**IPv6地址段**
IPv6地址段通常采用CIDR（无类别域间路由选择）表示法，通常用斜杠（/）后跟一个数字表示，即格式为"IPv6地址/前缀长度"。此处前缀长度与IPv4地址段的掩码作用类似，用数字来表示网络部分所占用的二进制位数，可将IPv6地址分为网络地址和主机地址两部分。而前缀长度指定了网络部分占用的位数，剩余位数则是主机地址部分，可以更加方便和灵活地表示不同的地址段。
例如，fc00:d28::/32表示一个前缀长度为32位的IPv6地址段，则在该网段中分配地址时，前32位（以二进制计算，此处即为fc00:d28）为网络地址，后96位则为可用的主机地址。
#### IPv6服务网段使用约束
在设置集群服务网段时，需要首先考虑以下有如下使用约束：
- IPv6服务网段必须属于fc00::/8网段内。 该地址属于本地唯一地址（ULA）网段。ULA拥有固定前缀：fc00::/7，其中包括fc00::/8和fd00::/8两个范围，类似于IPv4的专用网络地址10.0.0.0/8、172.16.0.0/12和192.168.0.0/16，相当于私有IP网段，仅能够在本地网络使用。
  
- 前缀范围112-120，您可以通过调整前缀数值，调整地址个数，地址数最多有65536个。
 
#### IPv6服务网段示例
根据约束，本文中提供一个包含8192个地址的IPv6网段设置示例，供您参考。
1. 根据地址数需求设定前缀长度，且前缀范围为112-120。 
   本例中，需要8192个地址数，8192个地址需要13位二进制数表示，而IPv6地址总长度为128位二进制数，则该IPv6网段的前缀长度为128-13=115，表示前115位可用于区分网络地址段，后13位用于表示8192个主机地址。
   根据以上计算方式，可得出前缀范围为112-120的IPv6地址段所包含的地址数量如下：
   
   | IPv6地址段的前缀长度 | 包含的地址数量 |
   |:---|:---|
   | 112          | 65536   |
   | 113          | 32768   |
   | 114          | 16384   |
   | 115          | 8192    |
   | 116          | 4096    |
   | 117          | 2048    |
   | 118          | 1024    |
   | 119          | 512     |
   | 120          | 256     |
      
   
   
2. 设置IPv6网络地址，且网络地址必须属于fc00::/8网段内。 
   本例中，确定前缀长度为115，由于网络地址必须属于fc00::/8网段内，因此前8位二进制数是固定的。可修改的网络地址范围是第9位至第115位，第116位至第128位则属于主机地址。
   将IPv6地址写成二进制形式，则根据以上条件：
   - 网络地址必须属于fc00::/8网段，因此二进制中的前8位不可修改，否则将不属于fc00::/8网段，固定为1111 1110，对应十六进制为fc。
   
   - 包含8192个地址数的网段前缀长度设置为115，因此二进制中后13位用于表示主机地址，固定全为0。
   
   
   具体示例如下，其二进制中标红部分是不可修改的。
   ```
   二进制：  1111 1100 **** **** ... ***0 0000 0000 0000/115
                |    |    |    |        |    |    |    |
   十六进制：   f    c    x    x ...    y    0    0     0/115
   ```
   其中x为任意十六进制数；而y对应的4位二进制数最后一位固定为0，因此十六进制数y可选范围为0、2、4、6、8、a、c、e。
   
   
 
