九路由原理与路由协议
Posted 五五六六0524
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了九路由原理与路由协议相关的知识,希望对你有一定的参考价值。
(一)路由器
1、路由器介绍
(1)路由器Router
- 用来连接不同的局域网,可以学习和传播各种路由信息,并根据这些路由信息将网络中的分组转发到正确的网络中。
- 工作在第三层网络层,具有局域网和广域网两种接口。
- 通过路由表为进入路由器的数据分组选择最佳的路径,并将分组传输到适当的端口
- 路由器能分割广播域,一个端口一个广播域
(2)默认路由
在路由表中找不到目标网络中使用。默认路由通常指本地网关的地址
(3)路由器主要功能
- 路由处理
- 包转发
(4)松散源路由
松散源路由只给出IP数据报必须经过源站指定的路由器,并不给出一条完备的路径,没有直连的路由器之间的路由需要有寻址功能的软件支撑
(5)严格源路由
严格源路由选项规定IP数据报要经过路径上的每一个路由器,相邻路由器之间不得有中间路由器,并且所经过路由器的顺序不可更改
2、路由器分类
骨干极路由器:主干网络互连,模块化、热备份、双电源等冗余技术。例如NE40N以上系列
企业级路由器:用于一个企业出入口,提供多种功能,完成企业组网,可实现数据、语音等应用。例如AR3600系列
接入级路由器:边缘路由器,小型企业或者部门组网。例如AR220系列
3、路由器上常见端口
高速同步串口 | 可连接DDN、帧中继、X.25、PSTN等网络 |
异步串口 | 应用于Modem或Modem池的连接,以实现远程计算机通过PSTN拨号接入,异步端口的速率不是很高,也不要求同步传输 |
Console端口 | 初次配置控制台端口,利用终端仿真程序,通过专用电缆连接至计算机串行口 |
RJ-45端口 | 以太网口,通过双绞线连接以太网,有的标识ETH,有的标识10/100b TX |
AUX端口 | 远程配置路由器,连接Modem(必须借助RJ45 to D89或RJ45 to DB25适配器进行转换),支持硬件流控 |
ISDN BRI端口 | ISDN BRI端口通过ISDN线路实现路由器与Internet或其他网络的远程连接。采用RJ45标准,与ISDN NTI的连接使用RJ45 to RJ45直通线 |
光纤端口 | SC端口,可提供千兆数据传输速率,通常用于连接服务器的光纤网卡。光纤端口一般是两个,一发一收,光纤跳线也是两根 |
GBIC端口 | GBIC是将千兆位电信号转换为光信号的接口期间,可作为热插拔使用 |
SFP端口 | SFP(小型机架可插拔设备)是GBIC的升级,体积减少一般,通过光纤连接广域网 |
局域网接口:AUI、RJ-45、SC
广域网接口:AUI、RJ-45、高速同步串口
配置接口:Console、AUX
4、路由器内存
Flash闪存 | 可读可写的存储器,在系统重启或关机后仍能保存数据。存放在当前使用的ios |
ROM只读存储器 | 用于系统初始化等。存放在系统加电自检代码POST(用于检测路由器中各种硬件是否完好)、系统引导代码Bootstrap(用于启动路由器并载入IOS操作系统)、备份的IOS操作系统(常比现运行的IOS版本低) |
非易失性RAM | 可读可写的存储器,在系统重启或关机后仍能保存数据。NVRAM速度较低,成本较高,容量较小,进保存启动配置文件 |
DRAM动态随机存储器 | 可读可写,但存储的内容在系统重启或关机后会被清除,存取速度最快。存储内容:路由表、ARP缓冲区、运行日志和排队等待发送的分组、运行配置文件、正在执行的代码、IOS操作系统程序和一些临时数据等 |
5、路由表
静态路由表:由系统管理员事先设置好固定的路由表,一般在系统安装时就设定好了
动态路由表:路由器根据网络系统的运行情况自动调整的路由表
display ip routing-table命令显示
6、访问交换机和路由器的方法
- Console口,初次配置
- AUX口远程拨号
- Telnet带外远程
- web浏览器输入IP
- 网管软件
(二)路由协议
1、AS自治系统
AS指使用同一个内部路由协议的一组网络,因特网可以被切割成许多不同的AS
每个AS由一个长度为16位的编码标识,分为公有AS(1-64511)和私有AS(64512-65535),公有AS编号需要向IANA(Internet地址授权机构)申请
2、IGP内部网关协议
在一个自治系统内交换路由信息。主要目的是发现和计算自治域内的路由信息
3、EGP外部网关协议
连接不同自治系统的相邻路由器之间交换路由信息
4、距离矢量路由协议
采用距离向量算法来决定报文交换的路径,路由器需要周期性与相邻的路由器交换更新通告,动态建立路由表,以决定最短路径。
距离路由矢量路由算法是动态路由算法,流程是每个路由器维护一张矢量表,表中列出了当前已知的到每个目标的最佳距离以及所使用的线路。通过在邻居之间相互交换信息,路由器不断更新其内部的表
5、链路状态路由协议
基于最短路径优先算法SPF,该路由协议提供了整网的拓扑视图,根据拓扑图计算到达每个目标的最优路径,当网络变化时触发更新,发送周期性更新链路状态通过,不是相互交换各自的整张路由表
6、距离矢量路由协议和链路状态路由协议对比
距离矢量路由协议 | 链路状态路由协议 | |
发布路由触发条件 | 周期性发布路由信息 | 当网络拓扑变化时,发布路由信息 |
发布路由信息的路由器 | 所有路由器 | 指定路由器DR |
发布方式 | 广播 | 组播 |
应答方式 | 不要求应答 | 要求应答 |
支持协议 | RIP路由信息协议、IGRP内部网关路由协议、BGP增强型距离矢量路由协议 | OSPF开放最短路径优先协议、IS-IS中间系统-中间系统路由协议 |
7、路由收敛
路由收敛指网络的拓扑结构发生变化后,路由表重新建立到发送再到学习直至稳定,并通告网络中所有相关路由器都得知该变化的过程。也就是网络拓扑变化引起的通过重新计算路由而发现替代路由的行为。
(三)RIP路由信息协议
1、RIP介绍
距离矢量路由协议,基于UDP502端口
RIP路由的更新周期是30秒,路由器180秒未回应,路由不可达,240秒未回应,删除路由表信息
RIP的最大跳数15跳,16跳不可达
2、RIP协议的格式及它与UDP、IP协议的关系
3、RIPV1和RIPV2的区别
RIPV1 | RIPV2 |
有类不携带子网掩码 | 无类携带子网掩码 |
采用广播更新 | 采用组播224.0.0.9,支持广播但不使用 |
周期性更新30s | 采用触发更新 |
不支持VLSM、CIDR | 支持VLSM、CIDR |
不提供认证 | 提供明文和MD5认证 |
4、防止路由环路的方法
(1)最大跳数
当一个路由条目发送出去会自动加1跳,跳数最大为15跳,16跳意味路由不可达
(2)水平分割
一条路由信息不会发送给信息的来源
(3)反向中毒
把从邻居学习到的路由信息设置为16跳(不可达),再发送给邻居,通知这条路径无效
(4)抑制定时器
一条路由信息失效后,一段时间内都不接收其目的地址的路由更新
(5)触发更新
路由信息每30秒更新一次,当路由表发生变化时,立即更新并广播到邻居路由器
(三)OSPF开放最短路径优先协议
1、OSPF介绍
链路状态协议,最常用的内部网关协议,无类路由协议,支持VLSM可变子网掩码,支持IPv4和IPv6,采用Dijkstra的最短路径优先算法SPF计算最小生成树
OSPF采用触发更新和30分钟周期更新,支持不连续子网和CIDR
组播地址:224.0.0.5全部OSPF路由器,224.0.0.6指定OSPF路由器
OSPF度量:从源到目的所有出接口的度量值,和接口的带宽成反比
收敛速度极快,但大型网络配置很复杂
IP封装,协议号89
2、OSPF协议的格式及它与IP协议的关系
3、OSPF运行原理
OSPF通过组播的方式在所有开启OSPF的接口发送Hello包,用来确定是否有OSPF邻居,若发现,则建立OSPF邻居,形成邻居表,之后相互发送LSA(链路状态通告)相互通告路由,形成LSDB(链路状态数据库),再通过SPF算法,计算最佳路径(花费最少)后放入路由表
4、OSPF邻居建立
邻居的两个状态:Neighbors邻居、Adjacency邻接
-
- 邻居不等于邻接,只有交互了LSA的OSPF才能成为OSPF的邻接
- 在点对点网络中,所有邻居都能成为邻接
- MA(广播多路访问网络,类似于以太网)网络类型中,DR、BDR与所有的邻居形成邻接,DR other之间只是邻居而不交换LSA
5、DR(指定路由器)、BDR(备份指定路由器)
通过选举产生DR后,所有路由器都只将信息发送给DR,由DR将网络链路状态LSA广播出去。除DR和BDR之外的路由器(称为DR Other)之间将不再建立邻接关系,也不再交换任何路由信息,这样就减少了广播网和NBMA网络上各路由器之间邻接关系的数量。
BDR是对DR的一个备份,在选举DR的同时也选举出BDR,BDR也和本网段内的所有路由器建立邻接关系并交换路由信息。当DR失效后,BDR会立即成为DR。由于不需要重新选举,并且邻接关系已建立,所以这个过程非常短暂,这时还需要再重新选举出一个新的BDR,虽然一样需要较长的时间,但并不会影响路由的计算。
作用:减少网络通信量,为整个网络生成LSA,减少链路状态库的大小
DR、BDR选举过程:
- 选举路由器必须进入双向会话状态,优先级别必须大于0(优先级为0,不参与选举)
- 选举优先级最高的路由器为DR,次优的为BDR
- 如果优先级相同,则选举router-id最大的路由器
- 如果DR、BDR已存在,即使新的优先级更大的路由器加入,现有的DR、BDR也不变
- 如果DR失效,则BDR接管DR,并重新激活一个BDR选举过程
6、OSPF路由器
区域内路由器IR | 该类设备的所有接口都属于同一个OSPF区域。 |
区域边界路由器ABR | 该类设备可以同时属于两个以上的区域,但其中一个必须是骨干区域。 ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。 |
骨干路由器BR | 该类设备至少有一个接口属于骨干区域。 所有的ABR和位于Area0的内部设备都是骨干路由器。 |
自治系统边界路由器ASBR | 与其他AS交换路由信息的设备称为ASBR。 ASBR并不一定位于AS的边界,它可能是区域内设备,也可能是ABR。只要一台OSPF设备引入了外部路由的信息,它就成为ASBR。 |
7、LSA链路状态通告类型
LSA类型 | 产生者 | 传播区域 | 作用 |
LSA1 | 所有路由器 | 只在所描述的区域内泛洪 | 描述某区域内路由器端口链路状态的集合 |
LSA2 | DR或BDR | 只在DR、BDR所属的区域内泛洪 | 描述广播型网络和NBMA网络,包含了该网络上所连接路由器的ID列表 |
LSA3 | ABR | 通过给其他相关区域 | 区域内所有网段的路由信息 |
LSA4 | ABR | 通告给除ASBR所在区域的其他相关区域 | 描述到ASBR的路由 |
LSA5 | ASBR | 通告到除Stub和NSSA区域以外的所有区域 | 描述到AS外部的路由 |
LSA7 | ASBR | 只在NSSA区域传播 | 描述到AS外部的路由 |
8、OSPF区域
标准区域 | 接受任何路由信息 |
主干区域 | 连接其他区域,接受任何路由信息。Area0 |
存根区域 | 不接受外部自治系统的路由信息,需要发送到区域外的报文采用默认路由0.0.0.0 |
完全存根区域 | 只接受本区域内的路由信息,其他一概不接受 |
不完全存根区域 | 除接受本区域内的路由信息,还接受LSA7的,并把LSA7转化成LSA5 |
完全NSSA区域 | 接受自治系统外的路由信息 |
9、OSPF网络类型
网络类型 | 特点 | 数据传播方式 |
点到点网络 | 有效邻居总是可以形成邻居关系 | 组播地址为224.0.0.5 |
点到多点网络 | 不选举DR、BDR,可看作是多个点到点链路的集合 | 单播 |
广播型网络 | 选举DR、BDR,所有路由器和DR、BDR交换信息,DR、BDR,不能被抢占 | 224.0.0.5组播OSPF路由器,224.0.0.6组播DB、BDR |
非广播型网络NBMA | 没有广播,需要手动指定邻居 | 单播 |
虚链路 | 虚链路一旦建立,就不再发送hello消息。应用在通过一个非Area0连接到Area0、一个非Area0连接到Area0的两个分段骨干区域 | 单播 |
10、OSPF的五种报文
(1)Hello:用于发现相邻的路由器。默认间隔10s发送一次hello报文,40s没有回应,则认为该邻居不存在,组播地址224.0.0.5
(2)数据库描述DBD:描述发送者的链路状态数据库内容
(3)链路状态请求LSR:向对方请求链路状态消息
(4)链路状态更新LSU:向邻居路由器发送链路状态通告
(5)链路状态应答LSACK:对链路状态更新报文的应答
(四)BGP边界网关协议
1、BGP介绍
路由矢量协议,边界网关协议。运行在不同AS的路由器之间,选择最佳路由。
通过TCP的179端口建立连接,支持CIDR和VLSM,支持鉴别、验证等。BGP4+支持IPv6
对等体
在BGP中,两个路由器之间的相邻连接称为对等体连接,两个路由器互为对等体
路由器对等体在同一个AS中,就是IBGP对等体,在不同的AS中,就是EBGP对等体
BGP4网关向对等实体发布可以到达的AS列表
2、BGP协议的格式及它与TCP和IP协议的关系
BGP报文不是直接封装在IP数据报中传送的
3、BGP特点
不用周期性发送路由信息
路由变化,发送增量路由(变化了的路由信息)
周期性发送KEEPALIVE报文校验TCP的连通性
4、BGP四种报文
OPEN报文 | 建立邻居关系 |
KEEPALIVE报文 | 保持活动关系,周期性的确认邻居关系,对OPEN报文回应 |
UPDATE报文 | 发送新的路由信息 |
NOTIFICATION报文 | 报告检测到的错误 |
5、BGP工作流程
- BGP路由器直接进行TCP三次握手,建立TCP会话连接
- 交换OPEN信息,确定版本等参数,建立邻居关系
- 路由器交换所有BGP路由直到平衡,之后只交换变化了的路由信息
- 路由更新由UPDATE完成
- 同KEEPALIVE验证路由器是否可用
- 出现问题,发送NOTIFICATION消息通知错误
(五)MPLS多协议标记交换
MPLS:属于2.5层,利用标记(label)进行数据转发的。当分组进入网络时,要为其分配固定长度的短的标记,并将标记与分组封装在一起,在整个转发过程中,交换节点仅根据标记进行转发。
标记具有局部性,提供QoS、粒度控制、负载均衡等
MPLS转发等价类(FEC),即把等价的通信流汇聚转发
(六)IS-IS中间系统-中间系统路由协议
1、IS-IS介绍
- 内部网关协议,一种链路状态协议,与TCP/IP网络中的OSPF协议非常相似,使用最短路径优先算法进行路由计算。
- 运行IS-IS协议的网络包含了终端系统(End System)、中间系统(Intermediate System)、区域(Area)和路由域(Routing Domain)
- 一个路由器是Intermediate System(IS),一个主机就是End System(ES)
- Net-Entity网络实体:
运行IS-IS的路由器必须配置一个网络实体地址。格式为:SEL服务访问点
区域ID(1字节) | 系统ID(16字节) | SEL(1字节) |
2、IS-IS的两层分层结构
骨干区域和非骨干区域
3、IS-IS的三种路由器角色
区域内Level-1、区域间Level-2、同属于Level-1-2
默认路由器接口为Level-1-2
(1)Level-1路由器
只能创建Level-1的链路状态数据库LSDB
Level-1路由器负责区域内的路由,它只与属于同一区域的Level-1和Level-1-2路由器形成邻居关系。
维护一个Level-1的链路状态数据库LSDB,该链路状态数据库包含本区域的路由信息,到区域外的报文转发给最近的Level-1-2路由器。
(2)Level-2路由器
只能创建Level-2的链路状态数据库LSDB
Level-2路由器负责区域间的路由,可以与同一区域或者其它区域的Level-2和Level-1-2路由器形成邻居关系。
维护一个Level-2的链路状态数据库,该链路状态数据库包含区域间的路由信息。所有Level-2路由器和Level-1-2路由器组成路由域的骨干网,负责在不同区域间通信,路由域中的Level-2路由器必须是物理连续的,以保证骨干网的连续性。
(3)Level-1-2路由器
Level-1-2路由器维护两个链路状态数据库,Level-1的链路状态数据库用于区域内路由,Level-2的链路状态数据库用于区域间路由。
Level-1-2路由器,可以与同一区域的Level-1和Level-1-2路由器形成Level-1邻居关系,也可以与同一区域或者其他区域的Level-2和Level-1-2路由器形成Level-2的邻居关系。
Level-1路由器必须通过Level-1-2路由器才能连接至其他区域。
(4)临界关系
Level-2路由器可以与Level-2路由器形成邻接关系
Level-1-2路由器可以与Level-2路由器形成邻接关系
Level-1-2路由器可以与Level-1-2路由器形成邻接关系
(七)访问控制技术ACL
1、ACL介绍
可以根据源地址、目标地址、源端口、目标端口、协议信息对数据包进出过滤控制
2、两个方向和两种动作
入口inbound:指数据流进入路由器
出口outbound:指数据流从路由器流出
允许permit、拒绝deny
3、ACL分类
(1)基本ACL
(2)高级ACL
(3)二层ACL
(3)用户ACL
4、ACL执行原则
自上而下排序原则
先匹配原则(特例在前,其他在后)
默认丢弃原则(deny any)
VRRP协议与keepalived基本原理实例演示
VRRP是什么?
VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)是一种容错协议,保证当主机的下一条路由器出现故障时,由另一台路由器来代替出现故障的路由器进行工作,从而保持网络通信的连续性和可靠性。
VRRP相关术语:
1.虚拟路由器:由一个Master路由器和一个或多个Backup路由器组成。所有的Master和Backup组成一个组,这个主就是虚拟路由器。
2.VRID:虚拟路由器的标识。同一虚拟路由器内的路由器有着相同的VRID。
3.Master:虚拟路由器中正在工作的路由器
4.Backup:备用路由器。
5.虚拟IP地址:路由器组(虚拟路由器)的IP地址。
6.优先级:用来确定Master和Backup。
7.抢占模式与非抢占模式:Master会以组播方式不断的向虚拟路由器组内发送自己的心跳报文,一旦Backup在设定时间内没有收到心跳信息的次数超过了设定次数,则会将Master的所有权转移到优先级最高的Backup,则就是抢占模式。
keepalived就是利用VRRP协议实现的一种可保障集群高可用的工具。通过主机之间的优先等级以及心跳检测来及时切换准备主机的工作状态,以提高集群的高可用性。
keepalived的核心组件:
1.VRRP stack
2.ipvs wrapper
3.checkers
为什么使用keepalived一定要确认网卡支持并开启组播功能?
如VRRP中所述,Master需要通过组播功能定时向Backup发送心跳信息,报告自己的运作是否正常,组播通信方式是一种很节省资源的通信方式。
1.安装keeplived
从centos6.4开始,keepalived就集成在yum的base仓中了(keepalived的应用重要可见一斑),所以直接yum安装即可。[[email protected] ~]# yum install -y keepalived
2.keepalived简单配置实现两台主机实现高可用模型
准备两台虚拟机
n1:192.168.11.11
n2:192.168.11.22
将n1下做配置/etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email { #通知邮件配置,将keepalived的状态信息发送到指定邮箱
[email protected] #这里配置通知的邮箱地址,为方便演示这里就配置为本机
}
notification_email_from [email protected] #配置发邮件的地址,这里也配置为本机
smtp_server 127.0.0.1
smtp_connect_timeout 30 #邮件服务超时时间
router_id n1 #当前标识当前主机
vrrp_mcast_group4 224.1.101.18 #配置组播地址,集群中通常不会使用默认的组播地址
}
vrrp_instance VI_1 { #当前节点所属的虚拟路由的名称
state MASTER #当前节点的状态,有Master和Backup两种状态
interface ens33 #定义vrrp地址绑定在哪个接口
virtual_router_id 51 #虚拟路由器的标识,同一虚拟路由器组中的ID要相同
priority 100 #优先级设置
advert_int 1 #每隔多久以组播形式向外通告一次,默认是1秒
authentication {
auth_type PASS #认证开启
auth_pass 1111 #认证密码
}
virtual_ipaddress { #配置虚拟路由ip,即漂移地址
192.168.11.99/24 dev ens33 label ens33:0 #漂移地址为192.168.11.99,配置在ens33网卡上并指定接口0
}
}
配置完成后将此配置复制到n1并修改route_id和priority[[email protected] ~]# scp /etc/keepalived/keepalived.conf [email protected]:/etc/keepalived/
确定网卡开启了multicast功能[[email protected] ~]# ifconfig
出现MULTICAST就说明已开启
开启keepalived
现在n2上开启(n2优先级比n1低),并查看状态
[[email protected] ~]# systemctl start keepalived
[[email protected] ~]# systemctl status keepalived
查看n2网卡配置[[email protected] ~]# ifconfig
可看出n2进入了MASTER状态
再开启n1,优先级高于n2,并查看状态
[[email protected] ~]# systemctl start keepalived
[[email protected] ~]# systemctl status keepalived
现在再查看n2
n1启动后漂移地址(虚拟IP)就漂移至n1了
n2网卡中的漂移地址(配置在ens33:0上)也被删除了,并漂移至n1上(同样配置在ens33:0)了。
利用抓包工具tcpdump可以更直观的看到虚拟地址漂移的过程
安装tcpdump[[email protected] ~]# yum install -y tcpdump
现在的状态是n1,n2的keepalived都开启了,n1的优先级大于n2。
在n1和n2上使用命令[[email protected] ~]# tcpdump -i ens33 -nn host 224.1.101.11
注意:因为n1为master状态,所以n1会不停的(配置是每隔1秒)发送组播通告,并且这个通告在同一局域网的所有主机都能接收到,但只有配置了keepalived的主机才会起作用。
停掉n1的keepalived服务[[email protected] ~]# systemctl stop keepalived
查看n2的抓包信息[[email protected] ~]# tcpdump -i ens33 -nn host 224.1.101.11
这就比较完整的展示了两个节点间在4层上使用keepalived做高可用的最基本的原理过程了。但这没有涉及到应用层的高可用,keepalived还能实现具体服务的高可用。
以上是关于九路由原理与路由协议的主要内容,如果未能解决你的问题,请参考以下文章