现有的互联网是在IPv4协议的基础上运行的。IPv6的提出最初是因为随着互联网的迅速发展,IPv4定义的有限地址空间将被耗尽,地址空间的不足必将妨碍互联网的进一步发展。为了扩大地址空间,IPv6采用128位地址长度,几乎可以不受限制地提供地址。在IPv6的设计过程中除解决了地址短缺问题以外,还考虑了在IPv4中解决不好的其它一些问题,主要有端到端IP连接、服务质量(QoS)、安全性、多播、移动性、即插即用等。
IPv6主要有如下一些优势。第一,明显地扩大了地址空间。IPV6采用128位地址长度,几乎可以不受限制地提供IP地址,从而确保了端到端连接的可能性。第二,提高了网络的整体吞吐量。由于IPv6的数据包可以远远超过64k字节,应用程序可以利用最大传输单元(MTU),获得更快、更可靠的数据传输,同时在设计上改进了选路结构,采用简化的报头定长结构和更合理的分段方法,使路由器加快数据包处理速度,提高了转发效率,从而提高网络的整体吞吐量。第三,使得整个服务质量得到很大改善。报头中的业务级别和流标记通过路由器的配置可以实现优先级控制和QoS保障,从而极大改善了IPv6的服务质量。**第四,安全性得到更好的保证。**采用IPSec可以为上层协议和应用提供有效的端到端安全保证,能提高在路由器水平上的安全性。第五,支持即插即用和移动性。设备接入网络时通过自动配置可自动获取IP地址和必要的参数,实现即插即用,简化了网络管理,易于支持移动节点。而且IPv6不仅从IPv4中借鉴了许多概念和术语,它还定义了许多移动IPv6所需的新功能。第六,更好地实现了多播功能。在IPv6的多播功能中增加了“范围”和“标志”,限定了路由范围和可以区分永久性与临时性地址,更有利于多播功能的实现。
特征升级点: 1.全球单播地址——IPV4地址下的公有地址 V6下没nat 2.可聚合性(IANA组织对全球的地址进行合理分配) 3.多宿主——一个物理接口可以同时拥有·多个不同或相同的IPV6地址; 但不同的接口不能在同一网段 4.自动配置——(1)DHCP V6 (2)autuo-config路由器接口手工配置IPV6地址,然后路由器将自己的前缀(网络号)下放给PC,PC自动使用EUI-64来补充主机位 5.即插即用-热插拔 6.端到端的连接——不需要nat 7.充编址 8.简易的报头 (1)没有广播机制,只有组播和单播 (2)没有校验和(因为2和4层均存在校验和) (3)流表签----保留-QOS 9.安全性和移动性 10.IPV4和IPV6共存
![黄色—一致 红色—取消 V4中的第二列用于分片 V6可以使用扩展首部实现 蓝色—替代 1、服务类型–扩展表 2、报头长度—有效负载长度 3、TTL–跳数限制 4、协议号—下一个头部 灰色—保留 流标签
1-23位 注册位—IANA分配给各个国家或组织 24–32位 ISP位—国家分配给各个ISP 33-48位 站点位—ISP分配给各个企业 49–64位 子网位----网络管理员进行子网划分
IPV6地址写法:使用冒分16进制标示,每16位为一段;共8段 2031:0000:130F:0000:0000:09C0:006A:130B 每一段前面的0可以省略; 若每一段全为0,可以省略为一个0; 2031:0:130F:0:0:9C0:6A:130B 若连续两段以上全0,可以省略为: 2031:0:130F::9C0:6A:130B
2031:0000:0000:9C0:0000:0000:0000:130B 注:若存在两个部分均为全0,只能将其中一个部分省略为 :: 2031:0:0:9C0::130B
例: FF02:0:0:0:0:0:0:0:1—FF02::1 0:0:0:0:0:0:0:1–::1 0:0:0:0:0:0:0:0–:: 当使用ipv6协议携带端口号时,需要使用中括号来区分; http://[2031:0:130F::9C0:6A:130B]:8080/index/html
IPV6地址分类: 1、单播地址 一对一 只有单播地址能作为源地址,也可作为目标地址 2、多播地址 一对多 作为目标地址 3、任意播地址-----一到最近
单播地址: 1、AGUA 全球可聚合单播地址 IPV6的公网地址(需申请),全球单播传递 目前全球已规划地址----2000::/3 范围–2000::-----3fff:ffff:ffff:ffff:ffff:ffff:ffff:ffff *其中 2001::/16 -----当下的IPV6实验室使用地址 目前ipv6 intenet地址
2002::/16-----------6to4 tunnel 专用地址2、本地链路地址—自动私有地址—link-local 169.254.0.0/16 FE80::/16 1)路由器接口上配置ipv6 enable命令,该接口将自动生成link-local地址; 2)若在接口配置一个IPV6单播地址,必然自动生成link-local地址;一个接口只能存在一个link-local地址;
Link-local地址的网络位固定为FE80::/64,主机位使用本地以太网接口的MAC地址来生成link-local地址主机位;串行链路无MAC地址,将循环借用本设备上以太网接口的MAC; 主机位生成方法: Link-local地址--------------网络位FE80::/64 后64位使用EUI-64补充 EUI-64简易的用户界面: (1)以太网接口MAC地址----CA00.0A60.0000 在MAC的前24位和后24位之间强行插入FFFE CA00.0AFF.FE60.0000 (2)U位转换 将合成后的地址,从左往右第7位自反 若该位为0,变为1;1变为0; CA00=1100 1010 0000 0000 第七位自反 1100 1000 0000 0000=C800 (3)link-local地址为 FE80::C800.AFF.FE60.0
作用:(1)在同一广播域内可以通讯使用—由于本地多接口可能使用相同MAC转换,故在 使用link-local地址访问对端时,需要定义出接口; (2)常常作为动态路由协议生成的路由表条目中的下一跳地址; 因为IPV6存在多宿主概念,该地址最稳定;
3、site-local 本地站点地址----私有地址 私网地址 FFC0::/10
4、未指定地址-----:: :: 1)默认(缺省)路由 2)在DHCP时作为无效地址(没有地址)
5、环回地址—127.0.0.1 ::1
*6、IPV4兼容性地址 用于6to4 tunnel专用 假设IPV4地址为192.168.1.1 192----1100 0000–c0 168----1010 1000–a8 1-------0000 0001–01 1-------0000 0001–01 192.168.1.1的IPV4兼容性地址为 2002:c0a8:0101::/48
多播地址: FF00::/8所有组播地址 IPV4下在组播:224-239 FF02::1—224.0.0.1 FF02::2—224.0.0.2 FF02::9—224.0.0.9–RIPNG
被请求节点组播地址:—用于NDP协议—获取对端mac地址 构成FF02::1:FF+24位 (IPV6单播地址的后24位) 只要存在一个IPV6单播地址,那么便会产生一个被请求节点组播地址; 例:2001::1(单播)-------------FF02::1:FF00:1(组播)
Ipv6下的组播MAC地址: 33.33+32位(后32位为IPV6组播地址后32位) FF02::1----33.33.00.00.00.01
协议: ICMPV6:internet 控制管理协议—存在大量的子协议 1、PMTU—路径MTU发现协议 通过ICMP error包来获取整段路径上最小MTU值
2、NDP------邻居发现协议—用于取代IPV4下的ARP协议 假设PC1和PC2通讯 1无2的MAC地址 1)1封装ICMP type 135 NS—相当于ARP的请求 源IPV6地址(1的接口ip地址) 目标IPV6地址----2的被请求节点组播地址 TTL=1 源MAC地址(1的接口mac地址) 目标MAC地址----2的被请求节点组播地址对应的MAC
2)2回应ICMP type 136 NA----相当于ARP的应答 源IPV6地址(2接口ip) 目标ipv6地址–1的接口IPv6地址 源MAC地址(2的接口mAC地址)目标mac地址–1的接口mac地址
ICMPV6中的NDP除取代了AARP外,其他的ARP协议也可被NDP取代,原理一致;
3、前缀通告------auto-config 仅在以太网环境存在 路由器周期(200s)向下发送IPV6的地址前缀(网络号) 路由器 PC ICMP type 134—RA ICMP type 133—ACK-RS 源ip地址—接口ip地址 源ipv6地址— :: 目标ip地址—FF02::1 TTL=1 目标ip地址----FF02::1 TTL=1 目标MAC(所有节点MAC) 目标MAC(所有节点MAC) r1(config)#ipv6 unicast-routing r2(config-if)#ipv6 address autoconfig 开启IPV6的单播路由功能, 该功能开启后,设备上的auto-config被激活,同时可以收发IPV6路由协议信息; 且可以为ipv6的流量进行路由; 前提路由器接口上已经拥有合法ipv6的单播地址;
只要在路由器上开启了IPV6的单播路由功能,那么该路由器将向所有存在IPV6地址的以太网接口周期发送其地址的前缀;
注:在配置动、静态IPV6路由协议时,均需要开启单播路由功能,开启后也导致该路由器会向所有的以太网接口发送前缀,若该接口管理员不要auto-config功能,可以再关闭 r1(config)#interface fastEthernet 0/0 r1(config-if)#ipv6 nd suppress-ra
配置: 1、接口配置IPV6的单播地址; 1)link-local (1) r1(config)#interface fastEthernet 0/0 r1(config-if)#ipv6 enable (2)手工或自动配置一个IPV6的AGUA,均会生成一个link-local地址 但无论配置多少个AGUA地址,也只能生产一个link-local地址;
2)手工或自动配置接口ipv6的AGUA地址 (1)手工 r1(config)#int s1/1 r1(config-if)#ipv6 address 2002::2/64 或 r1(config-if)#int s1/1 r1(config-if)#ipv6 address 2009::/64 eui-64 (2)自动配置 Auto-config DHCPV6
切记:IPV6协议存在多宿主特征----可以在一个接口上同时配置多个ip地址来标示该接口; 但注意该接口可以配置多个相同或不同网段的地址;但同一路由器上不同的接口不能配置相同网段的ip地址;
2、IPV6的ACL; 可以配置N张表,但一台设备上一个需求点只能调用一张表 从上往下逐一匹配,若上条就按上条执行,不再查看下条; 没有标准列表,只有扩展列表,且写法也只有命名写法;由于仅使用扩展列表,故放置的位置尽量靠近源,但不能在源上,因为不能限制自身的产生的流量; r2(config)#ipv6 access-list ccie r2(config-ipv6-acl)#deny tcp host 12::1 host 12::2 eq 23 拒绝一个host对另一个主机的telnet r2(config-ipv6-acl)#deny IPV6 12::/64 12::/64 拒绝一段地址到另一地址的所有通信 r2(config-ipv6-acl)#permit ipv6 any any 允许所有 注:在IPV6 ACL中不使用反掩码,直接使用掩码; r2(config-ipv6-acl)#int s1/0 r2(config-if)#ipv6 traffic-filter ccie in 接口调用时注意方向
注:在IPV6下的ACL 开头隐含 r2(config-ipv6-acl)#permit icmp any any nd-na r2(config-ipv6-acl)#permit icmp any any nd-ns 默认隐含 r2(config-ipv6-acl)#deny ipv6 any any
3、IV6的单播路由协议-----在使用路由协议前一定需要开启IPV6的单播路由功能,否则不转发IPV6的流量 【1】IPV6静态路由协议; (1)普通静态路由 r1(config)#ipv6 route 2::/64 serial 1/1 r1(config)#ipv6 route 2::/64 12::2 目标网络号 出接口或下一跳 MA网络建议下一跳,点到点网络建议出接口
(2)浮动静态路由–修改默认管理距离 r1(config)#ipv6 route 3::/64 12::2 ? <1-254> Administrative distance
(3)空接口防环 r2(config)#ipv6 route 2::/63 null 0 ----在更新源路由器上,空接口指向汇总地址;
(4)缺省路由 r2(config)#ipv6 route ::/0 12::1
注:带源ping 时,只能使用接口;或者使用扩展追踪; r3#ping 2::2 source loopback 0 注:由于IPV6存在多宿主,使用接口为源时,默认使用第一地址来访问,建议扩展追踪 r3#traceroute Protocol [ip]: ipv6 Target IPv6 address: 2::2 Source address: 3::3
【2】RIPNG----使用同RIPV2一样的算法;组播更新地址FF02::9 UDP 521 r1(config)#ipv6 unicast-routing 开启单播路由功能 r1(config)#ipv6 router rip ? 启动协议时需配置进程号,进程号仅具有本地意义 WORD User selected string identifying this process
r1(config)#ipv6 router rip a r1(config-rtr)# 宣告的含义:1、激活接口 2.路由 r1(config)#interface s1/1 r1(config-if)#ipv6 rip a enable r1(config-if)#exit r1(config)#int lo0 r1(config-if)#ipv6 rip a enable 注:IPV6下到所有接口上进行配置
手工汇总:更新源路由器上所有更新发出的接口上进行配置 r1(config)#int s1/1 r1(config-if)#ipv6 rip a summary-address 1::/63
缺省路由:在边界路由器上所有同内网相连的接口上配置,使其向内网所有邻居发出一条缺省信息 r3(config)#int s1/0 r3(config-if)#ipv6 rip a default-information ? only Advertise only the default route originate Originate the default route 选择only将发出缺省路由,同时其他的路由不会被转发 选择originate 缺省和明细均发送
【3】OSPF V3 在原有OSPFV2的基础上,使用新的LSA来专门携带V6的信息;区域规则,SPF算法同IPV4下完全一致。
r1(config)#ipv6 unicast-routing r1(config)#ipv6 router ospf 1 启动时需要配置进程号 r1(config-rtr)# r1(config-rtr)#router-id 1.1.1.1 RID依然使用IPV4地址,规则同OSPF V2一致 宣告: 1、激活接口 2、传递路由 3、区域划分 r1(config)#interface lo0 r1(config-if)#ipv6 ospf 1 area 0 r1(config-if)#int s1/1 r1(config-if)#ipv6 ospf 1 area 0 r1(config-if)#int lo1 r1(config-if)#ipv6 ospf 1 area 0
配置完成后生成邻居表,MA网络存在DR/BDR选举,选举规则同OSPFV2一致; 另各个邻居间状态也一致; r1#show ipv6 ospf neighbor 邻居表
Neighbor ID Pri State Dead Time Interface ID Interface 2.2.2.2 1 FULL/ - 00:00:30 3 Serial1/1
r2#show ipv6 ospf database 数据库表 r1#show ipv6 route 路由表 IPv6 Routing Table - 13 entries Codes: C - Connected, L - Local, S - Static, R - RIP, B - BGP U - Per-user Static route I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary O - OSPF intra, OI - OSPF inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2 ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
缺省路由配置:在边界路由器上配置 r3(config)#ipv6 router ospf 1 r3(config-rtr)#default-information originate ? always Always advertise default route 强制发出 metric OSPF default metric 修改起始度量 metric-type OSPF metric type for default routes 修改度量类型,默认2 route-map Route-map reference 关联route-map
【4】BGPV4+ 在BGPV4的基础上配置IPV6关系; r2(config)#router b 2 r2(config-router)#b router-id 2.2.2.2 r2(config-router)#neighbor 12::1 remote-as 1 r2(config-router)#neighbor 3::3 remote-as 3 r2(config-router)#neighbor 3::3 update-source loopback 0 r2(config-router)#neighbor 3::3 ebgp-multihop 此时邻居间仅存在V4下的邻居关系,没有V6关系;不能传递V6路由
故需要在已经建立的V4邻居关系基础上再来建立V6的邻居关系,传递V6的信息 注:BGP V4+使用家族模式来配置IPV6的信息,原理为在原有BGPV4的协议中开发出的扩展配置模式; r1(config-router)#address-family ipv6 进入IPV6家族模式 r1(config-router-af)#neighbor 12::2 activate 和该邻居建立IPV6的邻居关系 注:关于IPV6建邻以后所有配置必须全部在家族模式中进行;
r1# show bgp ipv6 summary 查看BGP的邻居关系 BGP router identifier 1.1.1.1, local AS number 1 Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 12::2 4 2 15 16 2 0 0 00:00:28 0
r1(config)#router b 1 r1(config-router)#address-family ipv6 r1(config-router-af)#network 1::/64 宣告路由 查看IPV6的BGP表 r1#show bgp ipv6 BGP table version is 2, local router ID is 1.1.1.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path *> 1::/64 :: 0 32768 i
IPV6下的其他配置 r2(config)#router bgp 2 r2(config-router)#address-family ipv6 r2(config-router-af)#neighbor 3::3 next-hop-self r2(config-router-af)#neighbor 3::3 route-reflector-client r2(config-router-af)#neighbor 3::3 route-map ccie out
4、IPV4和IPV6共存; 【1】普通tunnel r1(config)#interface tunnel 0 r1(config-if)#ipv6 address 10::1/64 该tunnel接口必须工作于V6环境 r1(config-if)#tunnel source 12.1.1.1 r1(config-if)#tunnel destination 23.1.1.2 r1(config-if)#tunnel mode ipv6ip 必须修改模式为ipv6ip
注:普通的tunnel需要基于所有的ipv6网络配置一条隧道,且均需再配置一条静态路由;
【2】6to4tunnel—仅需配置一条隧道,一条静态即可访问所有IPV6网络 将边界路由器的公网IPV4地址换算为IPV4兼容性地址,然后将该地址应用到内网;再配置一条到兼容性地址的静态路由,通过隧道传递;传输数据时,一旦路由到达隧道口,隧道将根据目标IPV6地址计算对应的IPV4地址;
优点:1、不需要指定tunnel 目标 2、一条静态路由即可
12.1.1.1 兼容性地址:2002:C01:101::/48 23.1.1.2 兼容性地址:2002:1701:102::/48
注:该地址在使用时,一般将其划分为64位;
配置: r1(config)#interface l0 r1(config-if)#ipv6 address 2002:c01:101::1/64 r1(config-if)#exit
r1(config)#interface tunnel 0 首先需要配置隧道接口的IPV6地址----4种方法 r1(config-if)#ipv6 address 2002:c01:101:1::1/64 使用一个6TO4地址 r1(config-if)#ipv6 address 2002:c01:101:2::/64 eui-64 使用6to4地址 r1(config-if)#ipv6 enable 相当于不配地址 r1(config-if)#ipv6 unnumbered loopback 0 借内网某个IPv6接口的地址
r1(config-if)#tunnel source s1/1 定义IPV6源地址所在接口 r1(config-if)#tunnel mode ipv6ip 6to4 模式标记
R1(config)#ipv6 route 2002::/16 tunnel 0
【3】双栈—一台设备同时连接IPV4/IPV6网络,若目标IP为V6地址使用V6的源ip,通过V6的路由表传递;V4同理; 当进行DNS查询时,优先查询V6网络中的DNS 服务器;