一、静态路由

1.1配置格式;
ipv6 route 目的网段 出接口或者下一跳

1.2 注意事项:
如果只指定出接口,那么以太网是没法通信的,因为指定出接口需要发送arp请求包,
在ipv6中是没有arp的,但是在点对点接口中可以使用出接口
下一跳可以是接口配置地址,也可以是Link Local地址
如果选择Link Local地址,必须跟出口,因为路由表中无法查询到FE80路由

Note:
如果没有开启ipv6 unicast-routing(单播路由功能),只能去往邻居路由器直连接口
也就是说没有路由转发功能

1.3 IPV6只指定了出接口

Router(config)#ipv6 route 5::5/128 ethernet 0/0

我配置一条静态路由,只指定了出接口

在去ping 这个网段的时候,因为没有下一跳,所以不知道 这个网段的目的mac,

这时我们的设备会发出请求 NS请求,目的ip地址就是5::5的组播请求地址,

mac就是转换的组播mac

lvs 配置IPV6_EIGRP


对方设备收到之后,发现这个NS数据包不是给我这个网段的,直接忽略不会回复

;因为 FF02本地链路有效的原因,不会传递给其他链路,只要不是这个接口有的地址,都不会回复

1.4当ipv6配置了下一跳

Router(config)#ipv6 route 5::5/128 2001:45::5

答案是 路由器先使用NS获取下一跳的mac地址,然后将这个数据封装,目的mac为下一跳的mac,
直接发出去

1.5 为什么在IPv4网络中可以指定出接口?

ip route 5.5.5.5 255.255.255.255 ethernet0/1

当在ipv4中直接指定出接口,我们去尝试ping这个地址,时,设备会发送arp请求

lvs 配置IPV6_lvs 配置IPV6_02


arp请求的目的mac就是广播,内容是 5.5.5.5这个mac是多少?

当下一跳设备收到后,发现自己路由表中有这个路由,于是也发了一个arp请求给下一个下一跳设备

lvs 配置IPV6_单播_03


于是下一跳设备AR3回复了这个arp请求告诉了自己接口的mac,

AR2收到了这个5.5.5.5的mac

他就放心了,直接把自己接口的mac发给了ar1

lvs 配置IPV6_lvs 配置IPV6_04

二、RIP-NG

ipv6 unicast-routing  ;开启ipv6单播路由功能
ipv6 router rip [tag]  ;创建进程,与进程号
Interface E0/0
        ipv6 rip [tag] enable ;开启RIP
ipv6 rip [tag] default-information originate  ;注入默认路由
ipv6 rip [tag] summary-address  ;手工汇总
 ipv6 rip [tag] metric-offset [1-16]  ;偏移列表
redistribute eigrp 90 metric 1  ;重分布命令

Tag相当于RIP进程号,本地有效(类似于OSPF的Process ID)
RIP Ng不存在自动汇总的问题,因为IPv6没有主类路由
RIP Ng Metric计算与IPv4有区别,路由在收到后叠加跳数,并且始发跳数为1

三、OSPFV3

3.1 方法1–进程创建

ipv6 unicast-routing 
ipv6 router ospf [id]  ;创建ospf并且创建进程号
        router-id [x.x.x.x]    ;配置前必须指定Router-iD,并且是一个有效的ipv4地址
interface [int]   ;进入接口
        ipv6 ospf [id] area [area id]   ;接口开启ospf 进程与区域号
        ipv6 ospf network [type]   ;网络类型
        ipv6 ospf neighbor [link local address]  ;手动建立邻居--必须使用 link local地址建立

3.2 方法2–OSPFV3

ipv6 unicast-routing  
router ospfv3[id]   ;创建ospfv3功能
        address-family ipv6 unicast   ;进入ipv6地址簇
         router-id [x.x.x.x]  ;设置router-iD
interface [int]
         ospfv3 [id] [ipv4 | ipv6] area [area id]   ;宣告进程及区域
         ospfv3 1 ipv6 network [type]  ;设置网络类型
         ospfv3 1 ipv6 priority +数值  ;DR优先级
         ospfv3 1 ipv6 neighbor [link local address]   ;手工建邻居

3.3 重分布的配置

address-family ipv6 unicast  ;进入ipv6地址簇
  redistribute eigrp 90 metric 1 metric-type 1 include-connected  ;重分布 EIGRP

3.4 查看命令

show ospfv3 neighbor  ;查看邻居
show ospfv3 interface  brief  ;查看协议接口开启情况

四、EIGRPV6

4.1 方法1–进程配置

ipv6 unicast-routing 
ipv6 router eigrp [as num] 
        eigrp router-id [x.x.x.x]  ;配置一个ipv4格式的 Route ID 
        no shutdown   ;可能需要开启EIGRP 
interface [int]
        ipv6 eigrp [as num]    ;在接口下启用EIGRP 进程就可以了
no ipv6 split-horizon eigrp [as num]   ;ipv6中关闭接口水平分割的命令

4.2 方法2–使用命名式

ipv6 unicast-routing
router eigrp [word]  ;起个进程名字
 address-family ipv6 unicast autonomous-system [as num]  ;进入 ipv6地址簇,创建AS
eigrp router-id 4.4.4.4 ;创建 route-ID

以上命配置完毕路由器邻居就建立成功了
因为所有启用ipv6功能的直连接口默认启用EIGRP
如果想不宣告EIGRP那么需要通过进程进入接口shudown

af-interface[int]    ;在地址簇里进入接口
 passive-interface   ;设置被动接口
 no split-horizon   ;关闭水平分割
shutdown  ;直接关闭相当于不宣告进进程了

4.3 重分布配置;

topology base   ;需要在地址簇下进入地址图
   redistribute ospf 110 metric 1000 100 255 1 1500  ;重分布配置
一定要设置 5k值
无需添加 tubnets 选项,因为ipv6中没有主类

4.4 查看命令

show ipv6 eigrp interfaces  ;查看某些接口开启协议情况
show ipv6 eigrp neighbors  ;查看邻居

4.5 重分布注意事项;
路由重分布与IPv4基本保持一致,但是默认不携带直连网段,
需要通过配置才能保证直连路由可以被重分布
例如:

ipv6 router ospf [process id]
        redistribute eigrp 100 include-connected  ;重分布时是后面添加 includ-connected才可以

五、BGP

5.1 方案1,使用ipv6建立ipv6邻居

ipv6 unicast-routing 
router bgp [as num]  
no bgp default ipv4-unicast   ;关闭ipv4单播路由功能
 neighbor [ipv6 address] remote-as [as num]  ;指定ipv6的邻居
neighbor [ipv6 address] update-source [int]  ;更新源
address-family ipv6 unicast  ;进入ipv6地址簇
  neighbor [ipv6 address] activate  ;激活邻居

*如果不关闭ipv4单薄功能,那么ipv6还能帮助建立ipv4邻居,并且还能传送路由ipv4路由
但是如果使用ipv6帮助传递ipv4地址路由,需要用Route-map修改下一跳
否则ipv4地址的下一跳是 ipv6地址最高位的32bits换算的点分十进制地址
对于高版本镜像-如果使用ipv6建邻居,默认不会建立ipv4邻居
对于其他版本镜像-如果使用ipv6建邻居,如果不关闭ipv4单播可能会建立ipv4邻居

5.2 方案2;使用ipv4地址建立ipv6邻居

ipv6 unicast-routing  
router bgp [as num]
  neighbor [ipv4 address] remote-as [as num]       ;对端ipv4地址 
  neighbor [ipv4 address] update-source [int]    ;更新源
  no bgp default ipv4-unicast   ;关闭ipv4单薄路由功能
          address-family ipv6 unicast  ;进入ipv6地址簇
          neighbor [ipv4 address] activate   ;激活ipv6邻居
          neighbor [ipv4 address] route-map [name] out    ;配置Route-map 出方向
          route-map [name] permit 10  
          set ipv6 next-hop [ipv6 address]   ;修改下一跳为 本端接口ipv6地址

如果不修改下一跳,那么对于IPv6的路由下一跳是ipv4的地址,这是不被允许的

所以路由表中会显示一个ipv4与ipv6兼容的ip地址,但是这个地址早被IANA收回了

lvs 配置IPV6_lvs 配置IPV6_05

::FFFF:192.168.1.1是ipv6与ipv4的下一跳兼容地址

R2#show bgp ipv6 unicast summary  ;查看邻居关系
R2#show bgp ipv6 unicast  ;查看单播路由

5.3 IPv4配置的特殊方案–使用ipv6地址建立ipv4邻居

router bgp 1
 bgp router-id [ipv4 address]   ;配置router-ID
 neighbor [ipv6 address] remote-as 100   ;建立邻居
 !
 address-family ipv4   ;进入ipv4地址簇
  neighbor [IPV6 address] activate     ;激活邻居
  network 1.1.1.0 mask 255.255.255.0     ;宣告网段
  neighbor [ipv6 address] route-map next-hop out   ;对邻居设备使用route-map out方向
!
route-map cisco permit 10   ;创建route-map
 set ip next-hop [ipv4 address]  ;修改下一跳为本地

如下图 ,如果不修改下一跳那么ipv4路由的下一跳将是一个ipv6的地址,但是这是不被允许的

lvs 配置IPV6_单播_06


Note :BGP中对于下一跳是直连接口的路由,默认会改成他的link-locl地址