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 <优先级>
3.2动态路由协议
动态路由协议分类: ??动态路由是基于动态路由协议实现的,不需要手动书写,路由器之间会互相学习,动态路由在一定程度上减少了管理任务,但也有缺点,会占用网络带宽。
3.2.1 RIP动态路由协议
??RIP是距离-矢量型动态路由协议,使用“跳数”(即metric)来衡量到达目标地址的路由距离,为了防止出现路由环路,限制了最大跳数为15跳,16跳为不可达。RIP进程使用UDP的520端口来发送和接收RIP分组。RIP分组每隔30s以广播的形式发送一次,为了防止出现“广播风暴”,其后续的分组将做随机延时后发送。在RIP中,如果一个路由在180s内未被刷新,则相应的距离就被设定成无穷大,并从路由表中删除该表项。 ??RIP有V1和V2两个版本,V1提出较早所有有非常多的缺陷,V2支持子网路由选择,支持CIDR,支持组播,并提供了验证机制。但是RIP为了解决环路问题,限制了最大跳数为15跳,使得RIP不太适用于大型网络。随着OSPF和IS-IS的出现,很多人认为RIP已经过时了,不过RIP占用带宽小,易于配置、管理等特点使其非常适用于小型网络。
RIPV1和RIPV2的区别:
版本 | RIPV1 | RIPV2 |
---|
区别 | 有类路由协议 | 无类路由协议 | | 广播更新255.255.255.255 | 组播更新224.0.0.9 | | 不支持VLSM | 支持VLSM | | 自动路由汇总,不可关闭 | 自动汇总可关闭,可手动汇总 | | 不支持不连续子网 | 支持不连续子网 |
华为设备RIP命令:
rip
undo summary
version 2
network <直连网段>
display rip <版本> route
3.2.2 OSPF动态路由协议
??OSPF是链路状态路由协议,一般用在同一个AS(自治系统)内. ??OSPF的工作原理:两个相邻的路由器通过发报文的形式成为邻居关系,邻居再相互发送链路状态信息(LSA)形成邻接关系,之后各自根据最短路径算法算出路由,放在OSPF路由表,OSPF路由与其他路由比较后优的加入全局路由表。 OSPF基本特点:
- 支持无类域间路由CIDR
- 支持区域划分
- 无路由自环
- 支持变长子网掩码VLSM
- 路由变化收敛速度快
- 使用IP组播收发协议数据
- 支持多条等值路由
- 支持协议报文的认证
工作流程简述: 建立邻接关系–链路状态数据库–最短路径树–路由表
OSPF区域: ??为了适应大型网络,OSPF在AS内划分多个区域,每个OSPF路由器只负责维护所在区域的完整链路状态信息。 ??OSPF的区域分为骨干区域 area 0 和非骨干区域(除了0以外的所有区域),OSPF区域的维护依赖 area 0 骨干区域路由信息的中转,非骨干区域不能脱离骨干区域存在,若只有一个单区域,那一定是area 0。非骨干区域主要有四种,末梢、完全末梢、次末节、完全次末节。
Router ID: ??router id 是OSPF区域内唯一标识路由器的IP地址。 选取router id的规则:
- 选取路由器loopback接口上数值最高的IP地址
- 如果没有loopback接口,在物理端口中选取IP地址最高的
- 使用router-id命令指定Router ID
DR/BDR和DRothers: ??在网络中任意两台路由器之间都要交换路由信息,如果网络中有n台路由器,则需要建立n(n-1)/2个邻接关系,这使得任何一台路由器的路由变化都会导致多次传递,浪费了带宽资源。为解决这一问题,OSPF协议定义了指定路由器DR,备份指定路由器BDR和其他路由器DRothers。 DR/BDR选举过程:
- 在第一个报文中,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 dr-priority ?
dis ospf interface
OSPF数据包类型
OSPF包类型 | 描述 |
---|
HELLO包 | 用于发现和维持邻居关系 | DBD数据库描述包 | 用于向邻居发送摘要信息以同步链路状态数据库,选举DR/BDR | LSR链路状态请求包 | 在路由器收到包含新信息的DBD后发送,用于请求更详细的信息 | LSU链路状态更新包 | 收到LSR后发送链路状态通告(LSA),一个LSU数据包可能包含几个LSA | LSAck链路状态确认包 | 确认已经收到的LSU,每个LSA需要被分别确认 |
OSPF多区域 ??OSPF根据网段来划分区域,同一网段必须在同一个区域内,多区域的拓扑结构为花瓣型,其他区域必须与 area 0 直连才可通信,如果不能直连,则需要配置虚链路。OSPF多区域内的路由器主要划分为下面几种:
简写 | 含义 |
---|
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等,就是采用这一设计思想用硬件以实现快速转发,从而大大提高了路由器的性能与效率。
|