IPv6的介绍
IPv6相信大家都不算陌生,大家用来开mc的服务器等等,他的存在就是为了解决IPv4地址紧缺的问题
同时IPv6还有以下优点:
数量很多
头部简单
方便重编组
无广播
IPv6的地址格式
IPv6一共128位bits
分为八组 每组16个二进制数 中间使用“:”作为分隔符
IPv6的地址:
单播范围:
全球可用单播范围
2000::/3
主要使用范围
2001::/16
用于46转换迁移地址
2002::2/16
本地链路地址
FE80::/10
Unique Local Address(私有IPv6地址)
FC00::/7
兼容IPv4的IPv6的地址
::FFFF:[IPv4 address]
例如:::FFFF:[192.168.10.1]
::FFFF:[11000000 10101000 00001010 00000001]
::FFFF:[C0A8:0A01]
组播地址IPv6
FF::
FF::0X 共有组播地址
FF::1X 私有/租用IPv6组播地址
IPv6 link local address(EUI-64)
本地链路地址(Link-Local Address)在 IPv6 中是自动生成的,通常以 fe80:: 开头。它的计算主要基于网卡的 MAC 地址,通过 EUI-64 规则转换而来。
在无任何配置的情况下,设备会产生一个IPv6地址
Router(config-if)#ipv6 enable
Router(config-if)#do show ipv int brife
GigabitEthernet0/0 [administratively down/down]
FE80::5200:FF:FE2E:0 //这里自动产生了IPv6地址
GigabitEthernet0/1 [administratively down/down]
unassigned
GigabitEthernet0/2 [administratively down/down]
unassigned
GigabitEthernet0/3 [administratively down/down]
EUI-64的计算
由MAC地址计算扩充而来
MAC共48bits,前24bits为厂商标识符,后24bits为厂商内部标识。
1.讲接口MAC一分为二
2.在中间插入FF:FE
3.将插入FF:FE之后的结果 从前往后第七个bits的二进制数取反
被请求节点组播组地址(Solicited-Node Multicast Address)
被请求节点组播地址是 IPv6 中用于地址解析(替代 ARP)的关键组播地址,格式固定为:
FF02::1:FFXX:XXXX
计算公式
被请求节点组播地址 = FF02::1:FF00:0000 + (IPv6地址的最后24位)
具体步骤:
| 步骤 | 说明 |
|---|---|
| 固定前缀 | FF02::1:FF00:0000(104 位固定) |
| 取 IPv6 地址最后 24 位 | 即 IPv6 地址的最后 6 个十六进制字符(24 bits) |
| 拼接 | 将最后 24 位填入 FF02::1:FFXX:XXXX 中的 XX:XXXX 位置 |
举例说明
以你之前提到的链路本地地址 FE80::5200:FF:FE2E:0 为例:
步骤 1:找到 IPv6 地址的最后 24 位
FE80::5200:FF:FE2E:0 完整展开:
FE80:0000:0000:0000:5200:00FF:FE2E:0000
最后 24 位 = 最后 6 个十六进制字符 = 2E:0000?
不对,注意:最后 24 位是地址的最后 6 个十六进制数字:
最后 4 组是 5200:00FF:FE2E:0000
取最后 24 位(6 个十六进制字符):
FE2E:0000是 32 位(8 个字符),多了- 实际取 最后 6 个十六进制字符:从末尾往前数 6 个
...FE2E:0000F E 2 E 0 0 0 0 ← 共 8 个字符
取最后 6 个:2 E 0 0 0 0 → 2E0000
步骤 2:填入组播地址模板
模板:FF02::1:FFXX:XXXX
填入 2E0000(注意分成 2E 和 0000 两部分):
FF02::1:FF2E:0000
简写为:FF02::1:FF2E:0
IPv6组播MAC写法
共48个bits , 12个十六进制
开头四个十六进制数为 3333
后八个十六进制数 取自 IPv6 组播地址的最后 32 位bits
IPv6 unicast-routing
IPv6的路由协议因为IPv6地址太长所以取消了network命令行要去接口下激活
static
在IPv6中,静态路由因为没有了代理ARP协议 所以需要指定精确的下一跳地址(推荐Link-local)
注意!
不能光写下一跳地址
RIPng
RIPng使用组播进行条目更新 FF02::9 使用端口521
周期性30s发送RIP更新消息
在RIPng当中更新源为本地接口的本地链路地址 deadtimer 180s hellotimer 30s 管理距离 120
注意在IPv6当中初始的Metric数值为零 与IPv4当中的计算方式相同
当路由器将数据库条目加入加入到自己的数据库当中的时候 Metric +=1
EIGRP
方法一:
Router(config)#ipv6 router eigrp 1
Router(config-rtr)#eigrp router-id 1.1.1.1 //记得配置router-id
Router(config-rtr)#exit
Router(config)#int g0/0
Router(config-if)#ipv6 eigrp 1
OSPFv3
BGP
建立最基础的eBGP邻居
yR1(config-router)#bgp router
yR1(config-router)#bgp router-id 1.1.1.1
yR1(config-router)#address-family ipv6 unicast
yR1(config-router-af)#neighbor 2001:1111::2 activate
宣告路由
yR1(config-router)#address-family ipv6 unicast
yR1(config-router-af)#net
yR1(config-router-af)#network ? //原汤化原食
X:X:X:X::X/<0-128> IPv6 Network number
yR1#show bgp ipv6 unicast summmary
BGP router identifier 1.1.1.1, local AS number 111
BGP table version is 1, main routing table version 1
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
2001:1111::2 4 222 6 6 1 0 0 00:02:35 0