1.前言
路由器(Router)是连接两个或多个网络的硬件设备,在网络间起网关的作用,是读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备。它能够理解不同的协议,例如某个局域网使用的以太网协议,因特网使用的TCP/IP协议。这样,路由器可以分析各种不同类型网络传来的数据包的目的地址,把非TCP/IP网络的地址转换成TCP/IP地址,或者反之;再根据选定的路由算法把各数据包按最佳路线传送到指定位置。所以路由器可以把非TCP/IP网络连接到因特网上。
2.路由器的工作原理
路由器是一种三层设备,是使用IP地址寻址,实现从源IP到达目标IP地址的端到端的服务,其工作原理如下:
- 路由器接收到数据包,提取目标IP地址及子网掩码计算目标网络地址
- 根据目标网络地址查找路由表,如果找到目标网络地址就按照相应的出口发送到下一个路由器
- 如果没有找到,就看一下有没有默认路由,如果有就按照默认路由的出口发送给下一个路由器
- 如果没有找到就给源IP发送一个出错ICMP数据包表明没法传递该数据包 如果是直连路由就按照第二层MAC地址发送给目标站点
3.路由协议
路由器通过路由表转发数据,路由表中的条目又分为直连网段和非直连网段。直连网段的路由由本地接口自动形成,非直连网段需要静态路由或动态路由,将网段添加到路由表中
3.1静态路由协议
静态路由是由管理员手动配置的,是单向的,它的特点是缺乏灵活性,只适用于中小网络需要配置的路由条目少的情况。
华为设备静态路由命令: ip route-static <对方网段> <子网掩码> <下一跳IP>
当路由器在路由表中找不到目标网络的路由条目时,路由器把请求转发到默认路由接口,默认路由的表示形式为 0.0.0.0/0,默认路由只有在网络的末节才可以使用。
默认路由命令 ip route-static 0.0.0.0 0.0.0.0 <下一跳IP> #默认路由是静态路由的一种
有时候我们会设置浮动路由,浮动路由指的是配置两条静态路由,默认选取链路质量优(带宽大的)作为主路径,当路径出现故障时,由带宽较小的备份路由顶替,保持网络的不中断。
浮动路由命令 ip route-static <对方网段> <子网掩码> <下一跳IP> preference <优先级> #默认静态路由的优先级为60,备份路由的优先级要比60大
3.2动态路由协议
3.2.1 RIP动态路由协议
RIPV1和RIPV2的区别:
| 版本 | RIPV1 | RIPV2 |
|---|---|---|
| 区别 | 有类路由协议 | 无类路由协议 |
| 广播更新255.255.255.255 | 组播更新224.0.0.9 | |
| 不支持VLSM | 支持VLSM | |
| 自动路由汇总,不可关闭 | 自动汇总可关闭,可手动汇总 | |
| 不支持不连续子网 | 支持不连续子网 |
华为设备RIP命令: rip #进入RIP协议 undo summary #关闭路由自动汇总 version 2 #版本2,dis this查看,命令提示符还是显示的1 network <直连网段> #宣告直连网段 display rip <版本> route #查看rip路由
3.2.2 OSPF动态路由协议
- 支持无类域间路由CIDR
- 支持区域划分
- 无路由自环
- 支持变长子网掩码VLSM
- 路由变化收敛速度快
- 使用IP组播收发协议数据
- 支持多条等值路由
- 支持协议报文的认证
- 选取路由器loopback接口上数值最高的IP地址
- 如果没有loopback接口,在物理端口中选取IP地址最高的
- 使用router-id命令指定Router ID
- 在第一个报文中,DR,BDR字段都为空(0.0.0.0)
- 如果DR,BDR字段都为空,先选举出BDR,先比较优先级,越大越优先(默认为1,0不参与选举),如果优先级相同,会比较router-id,越大越优先
- 如果DR字段为空,BDR为非空,BDR会升级为DR,然后再选举BDR
- 如果DR为非空,BDR为空,会选举BDR

224.0.0.5--DRothers的组播地址 224.0.0.6--DR/BDR的组播地址 设置DR/BDR优先级命令: reset ospf process #重启ospf ospf dr-priority ? #设置DR/BDR优先级 dis ospf interface #查看DR/BDR
OSPF数据包类型
| OSPF包类型 | 描述 |
|---|---|
| HELLO包 | 用于发现和维持邻居关系 |
| DBD数据库描述包 | 用于向邻居发送摘要信息以同步链路状态数据库,选举DR/BDR |
| LSR链路状态请求包 | 在路由器收到包含新信息的DBD后发送,用于请求更详细的信息 |
| LSU链路状态更新包 | 收到LSR后发送链路状态通告(LSA),一个LSU数据包可能包含几个LSA |
| LSAck链路状态确认包 | 确认已经收到的LSU,每个LSA需要被分别确认 |
| 简写 | 含义 |
|---|---|
| IR | 内部路由器(internal router) |
| ABR | 区域边界路由器(area border router) |
| BR | 骨干路由器(backbone router) |
| ASBR | AS边界路由器(AS boundary router) |

OSPF的LSA类型

查看LSA命令 (1)查看1类LSA(区域内路由) display ospf lsdb router (2)查看2类LSA(DR通告本区域路由) display ospf lsdb network (3)查看3类LSA(区域间LSA) display ospf lsdb summary (4)查看4类LSA(外部指向ASBR路由) display ospf lsdb asbr (5)查看5类LSA(外部路由) dis ospf lsdb ase (6)查看7类LSA(nssa 区域产生的外部路由) diplay ospf lsdb nssa
OSPF四种特殊区域
- Stub区域(末梢区域)
- Totally Stub区域(完全末梢区域)
- NSSA区域
- Totally NSSA区域
参考:https://www.ibadboy.net/archives/1622.html
4.发展趋势
传统路由器在转发每一个分组时,都要进行一系列复杂操作,包括路由查找、访问控制表匹配、地址解析、优先级管理以及其他附加操作。这些操作大大影响了路由器的性能与效率,降低了分组转发速率和转发的吞吐量,增加了CPU的负担。经过路由器的前后分组间的相关性很大,具有相同目的地址和源地址的分组往往连续到达,这为分组的快速转发提供了实现的可能与依据。新一代路由器,如IP Switch、Tag Switch等,就是采用这一设计思想用硬件以实现快速转发,从而大大提高了路由器的性能与效率。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208165.html原文链接:https://javaforall.net
