IPv6路由基础简单介绍分为三层: IPv6通信基础、IPv6之静态路由、IPv6之缺省路由。
众所周知, 网络通信分为OSI七层和TCP/IP五层, 详见: 浅谈OSI七层模型
1. 依靠MAC地址表进行转发
2. MAC地址表自动生成
3. 依靠MAC地址标记主机身份
1. 依靠路由表进行路由寻址转发
2. 路由表形成方式: 直连、静态、动态
3. 依靠IP地址标记主机身份
那么这两者有什么联系呢?
简单的来说, 如果两个主机在同一个局域网中, 就是二层通信; 反之, 不在同一局域网就是三层通信。
网关用来转发来自不同网段之间的数据包:
同一局域网内的主机通信, 不需要网关转发; 不同局域网内的通信一定需要网关进行转发。
静态路由的作用:
更新维护组建路由表, 实现三层非直连通信
首先说一下什么叫 三层直连、三层非直连:
假设主机A和B不在同一局域网中, 两者要通信, 就要采用前面所说的三层通信, 依靠路由表完成通信, 这称为三层直连。
如今, 有主机A和D, 两者明显不在一个局域网内, 更不在同一路由下(不在同一个交换机上), 这种情况下就是三层非直连通信。
这时候就要利用到静态路由来进行通信了。
静态路由是指由管理员手动配置和维护的路由
假设有如下三个局域网内的某主机之间相互进行通信:
若R1想要访问R3, 首先R1上得有R3的路由表, 这时候就需要人为手工进行添加:
[R1] IPv6 ROUTE-STATIC FEC0:0:0:3:: 64 FEC0:0:0:A::3
FEC0:0:0:A::3 为下一跳地址(目的地址网段的进入口), 设置为目的地址所在设备的接口地址, ( 即为图中的 ::3 )
为什么呢?
假如下一跳设置在 ::1 , 那么从R1出来的流量就可能各有一半经过 ::3 和 ::2 , 造成通信混乱。
在广播型的接口 (如以太网) 上配置静态路由时, 必须要指定下一跳地址。且下一跳地址为目的地址所在设备的接口地址
既然有了从R1到R3的路, 那么肯定也要有R3到R1的路, 路由表不能单单写单向的通信
[R1] IPv6 ROUTE-STATIC FEC0:0:0:1:: 64 FEC0:0:0:A::1
缺省路由是目的地址和网络前缀全都为0的特殊路由 (相当于IPv4中的0.0.0.0)
如果报文的目的地址无法匹配路由表中的任何一项, 路由表将选择依照缺省路由来转发报文
假设R1这个0网段要访问R2的1,2,3网段, 如果对于每一个0网段访问1网段、2网段、3网段都人工写一个静态路由, 特别在网段多的时候, 就会变得很繁琐。
那么上图的R1到R2的通信缺省路由就这样写:
[R1] IPv6 ROUTE-STATIC :: 0 FEC0:0:0:A::2
其中, :: 0 就类似与IPv4中的0.0.0.0/0
R2到R1的通信就不能用缺省路由了,
若R2设置了到R1的缺省路由, 当PC2向PC1通信时, 万一R1内部的PC1宕机后, PC2到达R2后, 就会沿着缺省路由到达R1寻址通信, 这时就就无法找到宕机PC1的路由, 这时候就会默认用R1的缺省路由进行转发, 由于R1的缺省路由也是指向R2本身, 所以这时候会造成环路:
那么就要采用明细的路由写法
当R2下的终端路由数量过多时, 这时候配置起来就比较多了, 所以还有一种掩码聚合的方法,
用一个掩码的标识R1下的所有PC终端都包括在内:
[R2] IPv6 ROUTE-STATIC FEC0:: 63 FEC0:0:0:A::1
掩码63, 包含了R1下的 FEC0:0:0:1::0 和 FEC0:0:0:1::1
ps: 不能写成掩码62, 因为62包括了: FEC0:0:0:1::0 , FEC0:0:0:1::1, FEC0:0:0:1::2, FEC0:0:0:1::3; 而后两者是在R2下的。