ipv6

1.四层TCP/IPv6参考模型

Application Layer ——HTTP,FTP,SMTP,SIP,RTP,DNS,DHCPv6,etc.

Transport Layer ——TCPv6,UDPv6,SCTP

Internet Layer —— IPv6,ICMPv6,IPsec

Link Layer —— ND,OSPFv3,L2TP,PPP,Ethernet,DSL,MPLS,etc.

2.IPv6基本术语

image

局域网段:位于内部交换机下的网段

链路:内部子网路由器下

子网:多个链路可以组成子网

网络:不同子网可构成网络

3.IPv6地址为128位

地址空间非常大,可以夸张地说,世界上每一粒沙子都可以有对应的IPv6地址。

4.IPv6地址表示格式:冒分十六进制

128位IPv6地址如下:

1
2
0010000000000001000001000001000000000000000000000000000000000001
0000000000000000000000000000000000000000000000000100010111111111

每16位一组,分为8组如下:

1
2
0010000000000001 0000010000010000 0000000000000000 0000000000000001
0000000000000000 0000000000000000 0000000000000000 0100010111111111

每一组中,每4为单位以16进制表示如下:

1
2
3
4
5
6
7
8
9
0010 0000 0000 0001  2001
0000 0100 0001 0000 0410
0000 0000 0000 0000 0000
0000 0000 0000 0001 0001
0000 0000 0000 0000 0000
0000 0000 0000 0000 0000
0000 0000 0000 0000 0000
0100 0101 1111 1111 45ff

将8组16进制数用冒号连接如下:

1
2001:0410:0000:0001:0000:0000:0000:45ff

为了简洁表示,IPv6冒分十六进制有以下规则

规则1: 省略前导0,如果每组16进制数中存在前导0,则省略

2001:0410:0000:0001:0000:0000:0000:45ff

省略前导0,结果如下:

1
2001:410:0:1:0:0:0:45ff

规则2: 忽略全0

2001:410:0:1:0:0:0:45ff

结果如下

1
2001:410:0:1::45ff
  • 注意:如果有多个部分有全0部分只能忽略一个部分的全0,如:
1
2001:0:0:1:0:0:0:45ff

只能写成

1
2
3
4
5
2001::1:0:0:0:45ff

或者

2001:0:0:1::45ff

以下写法为错误写法:

1
2001::1::45ff

因为这样写无法确定省略了0的个数

5.IPv6地址分类

与IPv4地址相比少了广播地址

5.1 单播地址(Unicast Address)

IPv6单播地址用于唯一标识支持IPv6的设备上的接口,源IPv6地址必须为单播地址

本地链路地址 全局单播地址
环回地址 唯一本地地址
嵌入式IPv4地址 未指定地址
5.1.1本地链路地址

目的:用于与统一链路中的其他设备通信

注意:路由器不会转发具有本地链路源地址或目的地址的数据包,每个支持IPv6的网络接口一定有本地链路地址。

支持IPv6的主机会创建IPv6本地链路地址,而IPv4的本地链路地址不会自动生成。

1. 链路本地地址的构成

  • 应用范围:只能在同一本地链路节点之间使用,FE80::/64
  • 节点启动时会自动配置一个本地链路地址。

2.链路本地地址的一种生成方法

前64位:FE80:0:0:0

后64位:EUI-64地址

  • EUI-64地址生成

MAC地址为48位,从中间切分为两部分各24位;

在这两部分之间插入16位数:11111111 11111110 组成64位地址;

将从头开始数的第7位取反,得到最终EUI-64地址

例:一台主机的MAC地址是: 0012:3400:ABCD, 试求其生成的链路本地地址

MAC地址写成二进制

1
00000000 00010010 00110100 00000000 10101011 11001101

中间插入 11111111 11111110

1
00000000 00010010 00110100 11111111 11111110 00000000 10101011 11001101

第7位取反

1
00000010 00010010 00110100 11111111 11111110 00000000 10101011 11001101

得到EUI-64地址

1
0212:34FF:FE00:ABCD

与前64位组合生成本地链路地址

1
FE80::0212:34FF:FE00:ABCD

3.本地链路地址用途

  • 主机使用本地路由器的本地链路地址作为默认网关IPv6地址
  • 路由器使用本地链路地址交换动态路由协议消息
  • 转发 IPv6 数据包时, 路由器的路由表使用本地链路地址确定下一跳路由器
5.1.2 环回地址
  • 环回地址除最后一位外全为0,压缩格式表示为::1/128
  • 主机使用环回地址发送数据包到其自身,环回地址不能分配给物理接口
5.1.3 未指定地址
  • 未指定地址为全0地址,压缩格式表示为::/128或::
  • 不能分配给接口。仅作为IPv6数据包源地址,在设备尚无永久IPv6地址时,未指定地址可作为源地址,不能作为目的地址。
5.1.4 唯一本地地址
  • 类似于IPv4的私有地址,但也有重大差异,范围从FC00::/7到FDFF::/7
  • 唯一本地地址在一个站点内或有限站点数之间用作本地地址,在全局IPv6中不具有可路由性
5.1.5 可聚合全球单播地址

image

  • 由格式前缀001标识,ISP商分配的前缀:/48,全球路由前缀
  • Site拓扑:由组织机构划分子网,子网ID
  • 接口ID:64

image

接口ID生成方法:

  • EUI-64(MAC地址生成)
  • 随机生成(RFC3041)
  • 手工设置
5.1.5 特殊单播地址
  • IPv6兼容地址:0:0:0:0:0:0:w:x:y:z 或 ::w.x.y.z
  • IPv4映射地址:0:0:0:0:0:FFFF:w.x.y.z或::FFFF:w.x.y.z
  • 6to4地址

最后更新: 2018年10月25日 10:33

原始链接: https://silence-linhl.github.io/blog/2018/10/24/IPv6-1/

× 请我吃糖~
打赏二维码