IPV6
IPV6是由128位的2进制构成,采用的表示方法是冒分十六进制
IPV6地址一般格式为(首选格式):XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX
在IPV6的地址表达中,大小写不敏感(A和a一样)
IPV6的简化规则:
①每一段前导0可省略,如果这一段全是0则至少保留一个0,拖尾0不能省略
②当一个或多个连续的段为全0时,可以使用“::”来标识,但是注意,一个IPV6地址中只能出现一个“::”(原因:如果一个IPV6地址存在多个全段为0时,都使用::则无法分辨0的个数)
比如:1111:0000:0000:2222:0000:0000:0000:3333:0000,如果都用::来标识,显然无法去区分段落里面0的个数
在经过简化规则后,可以称为压缩格式
eg:1000:4321:0000:0000:0010:0001:0000:0100
可以被化简为:1000:4321::10:1:0:100
当然IPV6还有内嵌IPV4地址格式,比如(::1.1.1.1),这个地址的IPV6地址就是0000:0000:0000:0000:0000:0000:0101:0101
IPV6的网络前缀和接口标识:
在IPV6中也存在网络位和主机位,只是在IPV6中将网络位称为网络前缀,主机位称为接口标识。IPV6地址也使用子网掩码标识网络前缀的长度,但是只有简写格式
在网络前缀固定的情况下,后面的接口标识生成方法:
①手工配置:自己填写一个不会冲突的地址即可
②通过EUI-64自动生成(即使用MAC地址进行标识)
第一步:在48位MAC地址中间(24位的位置),加入一个4位16进制(FFFE,4位16进制=2^(4+4+4+4),即为16位),形成一个64位的二进制(4位16进制=16位2进制)
第二步:在64位的二进制中,找到第七位取反(从左往右)
eg:MAC地址为11-22-33-44-55-66,此时加入FFFE,地址为1122:33FF:FE44:5566,再按位取反得到的EUI地址为:1322:33FF:FE44:5566,此时如果给了网络前缀的情况下(如E200::/64,则接口的IPV6地址为:E200::1322:33FF:FE44:5566)
③系统设备随机设置接口ID
在IPV6中,一个路由器接口支持多宿主(多个IPV6地址):在IPV6中,一个接口可以配置多个不同网段的IPV6地址(前提是地址之间不冲突),但是多个接口不能配置同一个网段的IPV6地址(防止同一个网段的广播域冲突),在华为设备上一个接口不允许配置同一个网段的多个IPV6地址
IPV6地址分类
IPV6的地址主要分为3类:单播地址,组播地址,任播地址
因为组播包可以做到模拟广播(组播可以做到比广播发送更精准,影响范围更小),所以在IPV6中取消了广播地址,使用组播地址来代替广播地址
IPV6的任播作用是标识一组网络接口,当发送数据包中的IPV6地址是任播地址时,其效果是将数据包发送到该组所有成员接口中距离本地路由器的最近的一个接口
IPV6的单播地址:
①GUA地址:
全球单播地址(类似于IPV4的公网地址,可以在全球范围内使用的单播地址)目前使用的GUA地址范围:2000::/3 (在这个地址段分配GUA地址)
从2000:0000:0000:0000:0000:0000:0000:0000到3FFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
目前商用IPV6地址段:2001::/16,用于6to4隧道技术的地址段2002::/16
②ULA私网地址:
唯一本地地址,相当于IPV4中的私网地址,但是由于IPV6不使用NAT技术,所以这部分私网地址只是用于私网实验使用,不允许出现在IPV6公网路由中
FC00::/7专门为私网地址分配的地址段(目前仅使用了FD00::/8,FC00::/8目前保留后面拓展使用)
③LLA本地链路地址:
本地链路地址,在IPV4也存在本地链路地址(169.254.0.0/16,当本地设备没有获取到网络地址时,就会使用这个网段的地址来充当本地的网络地址),在IPV6网络中接口是支持多宿主的,所以每一个接口只要激活了IPV6,就会自动给自己配置一个LLA地址
IPV6的固定网络前缀:FE80::/(10-64)其中10到64位是固定为0,所以一般是FE80::/64,而LLA的后64位地址是按照EUI-64方式自动生成
因为IPV6支持多宿主,所以在动态路由协议选择下一跳IP时,出于稳定性考虑会优先选择LLA地址作为下一跳地址
IPV6的组播地址:
组播地址作用是为了标识某个组的播组,然后通过发送一个固定的IP地址来代表这个组的组播地址数据包,则该报文将会被发送至整个组播组中所有的成员。IPV6中,通常用FF::/8来画风组播地址段,常有的组播地址为:(RIP的IPV4组播包是224.0.0.9,在IPV6中为FF02::9;OSPF在IPV4的组播包是224.0.0.5/224.0.0.6,在IPV6中为FF02::5/FF02::6;而在IPV4中,组播包224.0.0.1是针对所有的路由器和PC(针对的是所有节点),对应的IPV6地址为FF02::1;在IPV4中,组播地址224.0.0.2是针对所有的路由器,在IPV6中就是FF02::2)
IPV6的组播地址所对应的组播MAC地址的前16位为固定值(33:33),IPV6组播地址的后32位为该组播MAC地址的后32位(比如RIP的IPV6组播的MAC地址就是33:33:00:00:00:09)
在IPV6的组播地址中还有一种特殊的组播地址:被请求节点组播地址。当一个节点具备单播地址后,将自动生成一个被请求节点组播地址(比如:FF02::1:FF前104位固定,后24位就是单播地址),被请求节点组播生成后,被请求节点就会被加入到对应的组播组中
特殊地址:
① :: 全0(128位全0),等同于IPV4的全0,代表没有地址(DHCP请求使用)/所有地址(缺省)
② ::1 环回地址,等同于127.0.0.1
IPV6相较于IPV4的改进之处:
①IPV6相较于IPV4,拥有“无限”的地址空间:IPV6由128位二进制构成(2^128)
②IPV6有层次化的地址结构:IPV6地址在分配时会更加合理,更便于进行汇总等操作
③IPV6即插即用:相较于IPV4支持DHCP自动获取IP地址,IPV6可以通过SLAAC(无状态地址自动配置技术)开实现快捷的地址下发,不需要DHCP服务器,端口仅需存在网关并且网关具备IPV6地址即可
④简化报文头部
IPV6的如何做到添加帧功能数据包
⑤端到端网络的完整性:在IPV6网络中,不使用NAT技术,所有设备都可以获得唯一的IP地址标识,实现端到端的通讯
⑥安全性增强:为了保证IPV6数据传输的安全,专门研发了一套IPSEC(因特网协议安全协议,一个协议组)目前IPV4也可以配合IPSEC使用,效果同IPV6
⑦增强QoS特性:主要体现在头部FLOW LABEL字段,更方便做QoS(目前字段保留)
IPV6的配置
ICMPV6:互联网控制报文协议
在IPV6体系下,取代IPV4的ARP协议的是NDP(邻居发现协议),NDP是集成在ICMPV6下的,包括无状态地址配置SLAAC功能也是通过NDP协议来实现的。并且ICMPV6协议还具备path-MTU发现机制(PMTUD)。ICMPV6同样还集成有很多功能,而不同功能的数据报文之间会通过ICMPV6数据报中的type字段进行区分。例如ping包的echo request(它的TYPE字段是128),而ping的回包echo reply(TYPE字段是129)
PMTUD发现机制:在IPV6路由生成之后,设备会发送一个ICMPV6报文检测包,这个检查包会去检测整条路径中最小的MTU值(PMTU)。之后在发送数据包时按照最小MTU值发送,避免过程中出现分片的现象
比如说:R1和R2之间的MTU最大是1500,而R2与R3之间的最大MTU是1600,而R3与R4之间的1400,则R1-R4之间的数据包MTU为1400
发送完PMTUD后,接口会经历3个过程,在正式发送IPV6报文之前:①地址配置,②DAD (地址冲突检查),③地址解析
地址配置:
GUA地址的获取方法:①手工配置,②无状态自动配置(SLAAC-NDP),③有状态自动配置(DHCPV6)
SLAAC-NDP(无状态自动配置):无需配置DHCP服务器,只要有网关便可以让接入IPV6网络中的设备获得IPV6地址,即插即用。当然还存在另外一种形式,网关设备会周期性的主动发送RA报文,携带自己的网络前缀
需要ICMPV6中的两种报文:路由请求报文(RS,主机主动发送RS请求,TYPE=133);路由器通告报文(RA,网关回复报文,包含网关的网络前缀,后面的接口标识需要设备自动生成,TYPE=134),华为设备默认关闭自动发送功能
因为无状态地址配置无法下发DNS等其他的参数信息,所以多应用于物联网等终端较多,且不需要除地址外其他参数的场景
DAD:
DAD和地址解析就是:IPV4中ARP协议所需要完成的任务,在IPV6中由NDP协议来完成的,在NDP完成地址解析时,需要使用两种报文:①邻居请求报文(NS),相当于ARP请求报文,类型字段type=135;②邻居通告报文(NA),相当于ARP应答报文,类型字段type=136
①邻居请求报文(NS):
在IPV4报文中(ARP),SIP就是自己的IP地址,DIP就是请求的IP地址;在IPV4中,SMac源mac地址就是自己MAC,DMac目标mac地址则是全F
在IPV6报文(NDP)中,SIP就是自己的IP地址,DIP就是请求IP所对应的被请求节点组播地址;在DNP中,SMac就是自己MAC,DMac是被请求组播地址对应的组播MAC地址
②邻居应答报文(NA):
在APR和DNP中均使用单播回复
[r1]ipv6 //让这台设备可以转发IPV6报文[r1-GigabitEthernet0/0/0]ipv6 enable//让接口允许配置IPV6地址[r1-GigabitEthernet0/0/0]ipv6 address 12::1 64 //配置IPV6地址[r1]ipv6 route-static 2:: 64 12::2 //静态路由[r1]ping ipv6 3::3//ping地址[r1]ipv6 route-static :: 0 12::2//配置IPV6缺省路由
IPV6中的协议:
RIP:
RIPNG:组播地址(FF02::9,UDP:520)
①启动进程
[r1]ripng 1
[r1-ripng-1]
②在接口内激活RIP
[r1-GigabitEthernet0/0/0]ripng 1 enable//接口[r3-LoopBack0]ripng 1 enable //环回
③查看IPV6的路由表
[r1]display ipv6 routing-table protocol ripng
Public Routing Table : RIPng
Summary Count : 2RIPng Routing Table's Status : < Active >
Summary Count : 2 Destination : 3:: PrefixLength : 64NextHop : FE80::2E0:FCFF:FE52:36B2 Preference : 100Cost : 2 Protocol : RIPngRelayNextHop : :: TunnelID : 0x0Interface : GigabitEthernet0/0/0 Flags : DDestination : 23:: PrefixLength : 64NextHop : FE80::2E0:FCFF:FE52:36B2 Preference : 100Cost : 1 Protocol : RIPngRelayNextHop : :: TunnelID : 0x0Interface : GigabitEthernet0/0/0 Flags : DRIPng Routing Table's Status : < Inactive >
Summary Count : 0
OSPF:
OSPFV3:
①启动进程
[r1]ospfv3 1
②RID
[r1-ospfv3-1]router-id 1.1.1.1
③在接口内激活OSPF(带上AS区域)
[r2]ospfv3 1
[r2-ospfv3-1]router-id 2.2.2.2
[r2]int g0/0/0
[r2-GigabitEthernet0/0/0]ospfv3 1 area 0//在接口宣告OSPF[r2]int l 0
[r2-LoopBack0]ospfv3 1 area 0//在环回接口中宣告OSPF[r2]ospfv3 2
[r2-ospfv3-2]router-id 2.2.2.2
[r2]int g0/0/1
[r2-GigabitEthernet0/0/1]ospfv3 2 area 0//在另一个接口允许OSPF 2
④查看路由表
[r2]display ipv6 routing-table protocol ospfv3
Public Routing Table : OSPFv3
Summary Count : 5OSPFv3 Routing Table's Status : < Active >
Summary Count : 2 Destination : 11::1 PrefixLength : 128NextHop : FE80::2E0:FCFF:FEC1:472F Preference : 10Cost : 1 Protocol : OSPFv3RelayNextHop : :: TunnelID : 0x0Interface : GigabitEthernet0/0/0 Flags : DDestination : 33::3 PrefixLength : 128NextHop : FE80::2E0:FCFF:FE55:33A5 Preference : 10Cost : 1 Protocol : OSPFv3RelayNextHop : :: TunnelID : 0x0Interface : GigabitEthernet0/0/1 Flags : DOSPFv3 Routing Table's Status : < Inactive >
Summary Count : 3Destination : 1:: PrefixLength : 64NextHop : :: Preference : 10Cost : 1 Protocol : OSPFv3RelayNextHop : :: TunnelID : 0x0Interface : GigabitEthernet0/0/0 Flags : Destination : 2:: PrefixLength : 64NextHop : :: Preference : 10Cost : 1 Protocol : OSPFv3RelayNextHop : :: TunnelID : 0x0Interface : GigabitEthernet0/0/1 Flags : Destination : 22::2 PrefixLength : 128NextHop : :: Preference : 10Cost : 0 Protocol : OSPFv3RelayNextHop : :: TunnelID : 0x0Interface : LoopBack0 Flags :
BGP:
//IBGP建邻
[r1]bgp 1
[r1-bgp]router-id 1.1.1.1
[r1-bgp]peer 22::2 as-number 1
[r1-bgp]peer 22::2 connect-interface LoopBack 0//使用环回建邻
[r1-bgp]ipv6-family
[r1-bgp-af-ipv6]peer 22::2 enable //使用ML-BGP//EBGP建邻
[r3]bgp 2
[r3-bgp]router-id 3.3.3.3
[r3-bgp]peer 2::1 as-number 2//使用直连建邻[r3-bgp]ipv6-family
[r3-bgp-af-ipv6]peer 2::1 enable//使用ML-BGP
此时查看IPV6的BGP建邻关系
[r2]display bgp ipv6 peer BGP local router ID : 2.2.2.2Local AS number : 1Total number of peers : 2 Peers in established state : 2Peer V AS MsgRcvd MsgSent OutQ Up/Down State Pre
fRcv2::2 4 2 11 13 0 00:09:23 Established 011::1 4 1 13 13 0 00:11:41 Established 0
IPV4到IPV6的过渡技术
①GRE隧道来实现IPV6网络的互通
而当IPV6网络过多时,GRE面临的问题
①需要知道对端的IP地址
②添加到达对端的路由
②6to4隧道技术
在IPV6地址中,还存在一种地址(IPV4兼容地址)。如果拥有一个合法的IPV4地址,则将拥有一段IPV6地址,这些地址就是IPV4兼容地址
eg: 2002:XXXX:XXXX::/48 XXXX:XXXX为IPV4的地址转化过来的地址。主机标识是/48的原因:6to4技术的地址是2002为/16,而IPV4的地址(32位2进制)可以划分为32位,所以就是16+32,即48位。比如IPV4的地址是12.0.0.1,则划分到IPV6为0C00:1,6to4的地址就是2002:0C00:1/48
#6to4技术需要先配置IPV4环境
[r3]interface g0/0/0
[r3-GigabitEthernet0/0/0]ip address 23.0.0.2 24
[r3]ip route-static 0.0.0.0 0 23.0.0.1 #环回接口的ipv6地址使用运营商给的地址转化为IPV6地址
[r3]interface l 0
[r3-LoopBack0]ipv6 enable
[r3-LoopBack0]ipv6 address 2002:1700:2::1 64
[r3-LoopBack0]int t 0/0/0
[r3-Tunnel0/0/0]ipv6 address 2002:1700:2:1::1 64//IPV6的管道地址在IPV6转化地址后的网段中选取
[r3-Tunnel0/0/0]tunnel-protocol ipv6-ipv4 6to4
[r3-Tunnel0/0/0]source 23.0.0.2 //源地址写本地的IPV4地址
[r3]ipv6 route-static 2002:: 16 Tunnel 0/0/0//需要写一条静态路由指向管道此时去用R1试着ping通R3环回
[r1]ping ipv6 2002:1700:2::1PING 2002:1700:2::1 : 56 data bytes, press CTRL_C to breakRequest time outReply from 2002:1700:2::1 bytes=56 Sequence=2 hop limit=64 time = 50 msReply from 2002:1700:2::1 bytes=56 Sequence=3 hop limit=64 time = 30 msReply from 2002:1700:2::1 bytes=56 Sequence=4 hop limit=64 time = 40 msReply from 2002:1700:2::1 bytes=56 Sequence=5 hop limit=64 time = 40 ms--- 2002:1700:2::1 ping statistics ---5 packet(s) transmitted4 packet(s) received20.00% packet lossround-trip min/avg/max = 30/40/50 ms
③双栈
目前主要使用的技术,在一个接口上同时配置IPV4和IPV6地址