IPv6有无状态区分
有状态 | 可控、可管理。有IP地址管理者,能够识别客户端。 | 根据不同客户端分配对应v6地址,客户端和服务器存在租期及续约。 |
无状态 | 无控、难管理。无IP地址管理者,没人识别客户端。 | 客户端根据网关发送的相同的RA报文内容,自行配置地址 |
可聚合全球地址分为手动配置和自动配置
手动配置无需多言。
自动配置分为两种情况:有状态和无状态
无状态就是通过路由器网关发送的RA通告中的prefix+EUI64或者是prefix+随机。这个prefixt是肯定在的。然后组成的地址
有状态就是通过DHCP分配
有状态又分为两种:有状态DHCPv6和无状态DHCPv6
有状态DHCPv6就是地址和其他参数如DNS通过DHCP发送。
无状态DHCPv6就是地址通过RA通告获取,其他参数如DNS通过DHCPv6发送。
正文
RA报文中3个关键的FLAG
▷Managed Flag(M flag)
表示是否配置有状态IP。M flag是RA报文的全局参数,一个RA报文只有一个M flag
为on时(对应bit=1):表示在stateless(无状态)流程结束后开始stateful(有状态)流程,等于告诉客户端可以通过DHCPv6来获得v6地址和其他参数(如DNS列表)
为Off是(对应bit=0):表示不通过DHCPv6来获得v6地址
▷Other flag(O flag)
表示是否通过DHCPv6来获得除IP以外的其他参数(如DNS列表)。一个RA报文也只有一个 A flag。注:仅当M flag为off时,该参数才会被读取。
为on时(对应bit=1):当M flag为on,或者M为off且至少有一个A flag为on时,将通过DHCPv6获取其他参数
为off时(对应bit=0):当M flag为on,依然通过DHCPv6获取其他参数;当M=off时,则不通过DHCP获取其他参数。
▷Autonomous flag(A flag)
表示是否配置无状态化IP。在一个RA报文中,可存在多个prefix,例如2401::/64或2402::/64等等,每个Prefixt都可以独立配置A flag
为on时(对应bit=1):表示客户端应当在该prefix范围内自动生成v6地址(客户端通过DAD自行保证地址可用)并配置子网路由条目和网关。
为Off是(对应bit=0):表示客户端不应当在该prefix范围内自动生成v6地址,但是可以配置子网路由条目和网关。
测试内容:测试M、O、A flag在所有排列组合的情况下
▪ 客户端是否会通过RA报文配置无状态IP
▪ 客户端是否会通过RA报文配置prefix子网路由
▪ 客户端是否会通过RA报文配置gateway
▪ 客户端是否会通过DHCPv6获得有状态IP
▪ 客户端是否会通过DHCPv6获得DNS
从图中可知,在M值on有和A值有的情况,你O值有无都不影响。
M,A=on那么都后续都是Yes 上述的情况都是会
A值=foo导致RA IP为N。M=off导致DHCPv6 IP为没有。如果M和O都=0 那么ip和DNS都没有。
应用场景(状态的选择)
何时采用无状态、何时采用有状态,关键看应用场景。核心在于是否需要控制IP地址,比如保持IP不变,如果需要控制,就采用有状态;如果无需控制,就采用无状态。
▷ 服务端领域:如对外提供服务,通常需要采用有状态IP。因为业务IP的突然变化容易导致业务中断(除非做好服务发现)
▷ 客户端领域:如移动设备、办公室内PC机,只需要上IPv6互联网,并不需要对外提供服务,可以采用无状态IP
IPv6静态路由配置
静态路由写法 三种
1)直连静态路由 不推荐多路访问中使用,会出问题
例:ipv6 route 2022::2/64 s1/1
说明:到达目标网络2022::2/64的数据包从接口s1/1发出。
2)递归静态路由 多环境适用
例:ipv6 route 2022::2/64 2012:1:1:1::1/64
说明到达目标网络2022:2:2:22::/64 的数据包发给下一跳地址2012:1:1:1::1
3)完全静态路由 出接口为多路访问 并且需要明确下一跳地址时
例:ipv6 route 2022::2/64 s1/1 2012:1:1:1::1/64
说明:到达目标网络2022::2/64的数据包从s1/1发出,并且交给下一跳地址2012:1:1:1::1/64
静态路由配置
!
需求:通过配置静态路由,使得双方都能ping痛回环口地址。由于是多路访问接口,所以不采用第一种直连静态路由配置方法。
R1初始配置: 记得配置完地址后去ping一下
R1(config)#ipv6 unicast-routning 开启 IPV6 路由功能
R1(config)#int e0/0
R1(config-if)#ipv6 address 2012::1/64
R1(config-if)#no shutdown
R1(config)#int l0
R1(config-if)#ipv add 2011:1:1:11::1/64
R2初始配置 show ipv int br是查看v6的地址配置情况的
R2(config)#ipv6 unicast-routning 开启 IPV6 路由功能
R2(config)#int e0/0
R2(config-if)#ipv6 address 2012::2/64
R2(config-if)#no shutdown
R2(config)#int l0
R2(config-if)#ipv add 2022:2:2:22::2/64
递归静态路由配置
ipv6 route 2022:2:2:22::2/64 2012::2
这个时候R1能够访问R2的loopback了 然后你再R2也配置镜像的就行。静态路由也不需要多讲。
IPv6 RIP(RIPng)
v6的RIP规则于v4 RIPv2基本相同,不同之处是IPv4 RIPv2采用UDP520,而v6采用UDP 521。v4中RIPv2地址采用224.0.0.9 在v6中是 FF02::9
配置RIPng的方法不同于v4那样,RIPng是采用先配置进程,然后选择让那些接口运行在RIPng下,就必须到相应的接口下明确确定。并不像v4那样,直接在进程中发布。
R1初始配置: 这里R1和R2的地址我不想改图片了,它们互联接口地址和静态路由案例的地址一样
1、初始化配置
R1初始化配置
R1(config)#ipv6 unicast-routning
R1(config)#int e0/0
R1(config-if)#no shutdown
R1(config-if)#ipv6 address 2012::1/64
R1(config)#int l1
R1(config-if)#ipv add 3001::1/64
R1(config)#int l2
R1(config-if)#ipv add 3002::1/64
R1(config)#int l3
R1(config-if)#ipv add 3003::1/64
R2初始配置
R2(config)#ipv6 unicast-routning
R2(config)#int e0/0
R2(config-if)#ipv6 address 2012::2/64
R2(config-if)#no shutdown
R2(config)#int l0
R2(config-if)#ipv add 2022::2/64
2、RIPng配置
R1(config)# ipv6 router rip ZHY #CZHY名字,思科IOS最多支持4个RIPng,进程名仅本地有效
R1(config-rtr)#exit #RIPng主要配置方式是先开启进程,然后将接口确定到这里
R2(config)# ipv6 router rip ccZHYR2(config-rtr)#exit
配置RIPng接口
R1(config)# int e0/0
R1(config-if)# ipv6 rip ZHY enable
R1(config)# int l1
R1(config-if)# ipv6 rip ZHY enable
R2(config)# int e0/0
R2(config-if)# ipv6 rip ZHY enable
R2(config)# int l0
R2(config-if)# ipv6 rip ZHY enable
这样就配置好了,具体的效果我就不拿出来了,RIP和静态路由,没啥好说的。
3、重分发配置
R1(config)#route-map zhy per 10
R1(config-route-map)#match int l2
R1(config-route-map)#exit
R1(config)#route-map zhy per 20
R1(config-route-map)#match int l3
R1(config-route-map)#exit
R1(config)#ipv6 router rip ZHY
R1(config-rtr)#redistribute connected route-map ZHY
原先路由表
R2#show ipv route
IPv6 Routing Table - default - 6 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
B - BGP, HA - Home Agent, MR - Mobile Router, R - RIP
H - NHRP, I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea
IS - ISIS summary, D - EIGRP, EX - EIGRP external, NM - NEMO
ND - ND Default, NDp - ND Prefix, DCE - Destination, NDr - Redirect
O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2, la - LISP alt
lr - LISP site-registrations, ld - LISP dyn-eid, a - Application
C 2012::/64 [0/0]
via Ethernet0/0, directly connected
L 2012::2/128 [0/0]
via Ethernet0/0, receive
C 2022::/64 [0/0]
via Loopback0, directly connected
L 2022::2/128 [0/0]
via Loopback0, receive
R 3001::/64 [120/2]
via FE80::A8BB:CCFF:FE00:1000, Ethernet0/0
L FF00::/8 [0/0]
via Null0, receive
重分发之后的路由表
R2#show ipv route
IPv6 Routing Table - default - 8 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
B - BGP, HA - Home Agent, MR - Mobile Router, R - RIP
H - NHRP, I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea
IS - ISIS summary, D - EIGRP, EX - EIGRP external, NM - NEMO
ND - ND Default, NDp - ND Prefix, DCE - Destination, NDr - Redirect
O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2, la - LISP alt
lr - LISP site-registrations, ld - LISP dyn-eid, a - Application
C 2012::/64 [0/0]
via Ethernet0/0, directly connected
L 2012::2/128 [0/0]
via Ethernet0/0, receive
C 2022::/64 [0/0]
via Loopback0, directly connected
L 2022::2/128 [0/0]
via Loopback0, receive
R 3001::/64 [120/2]
via FE80::A8BB:CCFF:FE00:1000, Ethernet0/0
R 3002::/64 [120/2]
via FE80::A8BB:CCFF:FE00:1000, Ethernet0/0
R 3003::/64 [120/2]
via FE80::A8BB:CCFF:FE00:1000, Ethernet0/0
L FF00::/8 [0/0]
via Null0, receive
4、过滤配置
配置IPv6路由过滤采用distribute-list
配置只保留3002网段,也就是说l1和l3的都被deny。
R2(config)#ipv6 prefix-list ZHY permit 3002::1/64
R2(config)#ipv6 router rip ZHY
R2(config-rtr)#distribute-list prefix-list ZHY in e0/0
**注:**ipv6的 prefix-list同样支持ge , le等关键字来匹配范围。
清空路由表R2#clear ipv rip 后的路由表
R2#show ipv route
IPv6 Routing Table - default - 6 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
B - BGP, HA - Home Agent, MR - Mobile Router, R - RIP
H - NHRP, I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea
IS - ISIS summary, D - EIGRP, EX - EIGRP external, NM - NEMO
ND - ND Default, NDp - ND Prefix, DCE - Destination, NDr - Redirect
O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2, la - LISP alt
lr - LISP site-registrations, ld - LISP dyn-eid, a - Application
C 2012::/64 [0/0]
via Ethernet0/0, directly connected
L 2012::2/128 [0/0]
via Ethernet0/0, receive
C 2022::/64 [0/0]
via Loopback0, directly connected
L 2022::2/128 [0/0]
via Loopback0, receive
R 3002::/64 [120/2]
via FE80::A8BB:CCFF:FE00:1000, Ethernet0/0
L FF00::/8 [0/0]
via Null0, receive
IPv6 OSPF(OSPFv3)
OSPFv3与OSPFv2(IPv4 OSPF)的原理都是相同的,OSPFv3选举Router-ID的规则与OSPFv2相同,OSPFv3也是选择路由器上的IPv4地址作为Router-ID,如果设备上没有配置IPv4地址,那么必须手工指定Router-ID。在配置OSPFv3时,先配置进程,然后需要让哪些接口运行在OSPFv3下,就必须到相应的接口下明确指定,并不像OSPFv2那样在进程下通过network来发布。
IPv6 6to4Tunnel
手工配置