路由协议
首先通过IP协议来判断两台主机是否在同一个子网中,如果在同一个子网,就通过ARP协议查询对应的MAC地址,然后以广播的形式向该子网内的主机发送数据包;如果不在同一个子网,以太网会将该数据包转发给本子网的网关进行路由。网关是互联网上子网与子网之间的桥梁,所以网关会进行多次转发,最终将该数据包转发到目标IP所在的子网中,然后再通过ARP获取目标机MAC,最终也是通过广播形式将数据包发送给接收方。而完成这个路由协议的物理设备就是路由器,路由器扮演着交通枢纽的角色,它会根据信道情况,选择并设定路由,以最佳路径来转发数据包。
所以,网络层的主要工作是定义网络地址、区分网段、子网内MAC寻址、对于不同子网的数据包进行路由。
当一个 IP 包从一台计算机被发送,它会到达一个 IP 路由器。
IP 路由器负责将这个包路由至它的目的地,直接地或者通过其他的路由器。
在一个相同的通信中,一个包所经由的路径可能会和其他的包不同。而路由器负责根据通信量、网络中的错误或者其他参数来进行正确地寻址。
RIP协议
路由协议RIP(Routing Information Protocol )
淘汰
1、距离矢量路由算法 DVR( Distance Vector Routing )
1)以跳数为代价单位;
2)每个路由器周期性的与相邻路由器交换若干二元组组成的路由信息,x表示可到达的目的站(主机或网络),d代表到目的站的距离(跳数);
3)相邻路由器得到路由信息后,按照距离矢量算法(最短路径原则,实现最佳性),建立或更新路由表。
2、实现步骤
1)初始化:路由器启动时,对每个直接相连的网络生成一个路由表项,跳数为0。
2)路由信息交换:每个路由器周期性向相邻路由器报告自己的路由表,以二元组形式 。
3)路由表更新:依据距离矢量算法
4)路由表稳定:经过一定时间,路由表达到稳定,称为算法达到收敛状态。
3、RIP特点
RIP基于距离矢量路由算法而开发的。RIP协议适用于中小型网络,有RIP-1和RIP-2。
优点: 实现比较简单,所需CPU和内存开销少
缺点:
- 由于每个路由器要将自己整个路由表发送给所有相邻路由器,路由信息量大,占较大的网络开销;
- 好路由消息传播快,坏路由信息传播速度慢。网络出现故障,传播时间往往需要较长的时间(数分钟);
- 存在路由同步(我的计算结果依赖于你,你的计算结果依赖于我),算法收敛速度慢,容易引发更新不一致;
- 可扩展性不好,只能适用于小规模网络,一条路径上最多15个路由器;
- 可产生路由环路,为避免路由环路需要特殊处理;
4、环路解决办法
(1)触发更新
一旦发现网络链路断掉,立即将该条路由项设置为不可达,并立即发送路由更新报文,而不需要等到正常的路由更新周期到来再发送。
常与带毒性逆转的水平分割技术结合使用。
(2)水平分割
路由向一个接口发送路由更新报文中不包含该接口获取的路由信息。
5、工程实际使用
1)源于一个linux下一个rounted应用程序
2)RIP协议最大有15跳,16跳为不可达(等价无穷大).
3)采用跨层设计思想:RIP协议工作在应用层,传输层调用UDP(UDP端口号为520)
6、RIP协议工作原理
两种报文类型:
1)请求(request):向相邻路由器请求路由信息;
2)响应(response)更新:向相邻路由器通告本地路由信息;
7、工作原理
1)路由器启动时,RIP协议在接口上发送request报文, 等待相邻路由器的request和response,并予以应答;当收到response时,利用距离矢量算法进行路由更新.
2)路由器周期性发送response,定期通告本地路由信息给邻居路由器。
3)一个路由器路由信息发生变化,会主动发送response给邻居路由器。
注:RIP协议的相关说明
1、仅和所有相邻的路由器交换信息。
2、交换的路由信息是当前本路由器所知道(除了从待交换方向的邻居路由器学习到的路由信息)的全部路由信息,即自己的路由表。
3、路由信息发送时机
请求交换:request, reponse;
周期交换:按固定的时间间隔周期交换路由信息,例如,每隔 30 秒;
触发交换:路由信息发送变化时自动告知邻居路由器。
OSPF协议
OSPF:开放式最短路径优先协议;
1、OSPF的5种数据包类型:
- hello 包
- DBD包 -数据库描述包
- LSR链路状态请求
- LSU链路状态更新
- LSack 链路状态确认
2、SPF算法
- 在同一个区域每台路由具有一致的LSDB
- 每台路由器以自己为根计算到达每个目标的最短路径(最小cost值)
- 必须区域划分
BGP协议
Border Gateway Protocol(边界网关)(当前使用的版本是 BGP-4)
动态路由协议可以按照工作范围分为IGP以及EGP。IGP工作在同一个AS内,主要用来发现和计算路由,为AS内提供路由信息的交换;而EGP工作在AS与AS之间,在AS间提供无环路的路由信息交换,BGP则是EGP的一种。
BGP是一种增强的路径矢量路由协议,同时BGP是拥有丰富的策略控制技术的外部网关协议。多运行于AS与AS之间。
1、BGP 着眼点不在于自动发现网络拓扑,而是在AS之间选择最佳路由和控制路由的传播
1)BGP使用传输层协议TCP(监听端口号为179),提高了协议的可靠性,且不需要专门的机制来确保连接的可控性。
- BGP进行域间的路由选择,对协议的稳定性要求非常高。因此用TCP协议的高可靠性来保证BGP协议的稳定性。
- BGP的对等体之间必须在逻辑上连通,并进行TCP连接。目的端口号为179,本地端口号任意。
2)路由更新时,BGP只发送更新的路由,大大减少了BGP传播路由所占用的带宽,适用于在Internet上传播大量的路由信息。
3)BGP从设计上避免了环路的发生。
- AS之间:BGP通过携带AS路径信息来标记途经的AS,带有本地AS号的路由将被丢弃,从而避免了域间产生环路。
- AS内部:BGP在AS内学到的路由不再通告给AS内的BGP邻居,避免了AS内产生环路。
4)支持CIDR 无类域间路由
5)BGP提供了丰富的路由策略;提供了防止路由振荡的机制;BGP也易于扩展
2、自治系统AS(Autonomous System )
AS是指在一个实体管辖下的拥有相同选路策略的IP网络。每个AS都有唯一的自治系统编号,这个编号是由IANA分配的。编号范围是1~65535(其中1到64511是注册的因特网编号,64512到65535是私有网络编号。
3、BGP报文有5种消息类型及其应用
- Open消息:是TCP连接建立后发送的第一个消息,用于建立BGP对等体之间的连接关系。对等体在接收到Open消息并协商成功后,将发送Keepalive消息确认并保持连接的有效性。确认后,对等体间可以进行Update、Notification、Keepalive和Route-Refresh消息的交换。
- Update消息:用于在对等体之间交换路由信息。Update消息可以发布多条属性相同的可达路由信息,也可以撤销多条不可达路由信息。
- Keepalive消息:BGP会周期性的向对等体发出Keepalive消息,用来保持连接的有效性。
- Notification消息:当BGP检测到错误状态时,就向对等体发出Notification消息,之后BGP连接会立即中断。
- Route-Refresh消息:通过OPEN消息告知BGP peer本地支持路由刷新能力(Route-Refresh capability)。
这5种消息的应用:
通过TCP建立BGP连接时,发送OPEN消息
连接建立后,如果有路由需要发送或路由变化时,发送UPDATE消息通告对端
稳定后要定时发送KEEPALIVE消息以保持BGP连接的有效性
当本地BGP在运行中发现错误时,要发送NOTIFICATION消息通告BGP对等体
ROUTE-REFRESH消息用来通知对等体自己支持路由刷新
4、报文格式
BGP报文中的报文头Header:
Marker(标记):16字节,固定为1。
Length(长度):两字节无符号整数。指定了消息的全长,包括头部。
Type(类型):1 字节,指示报文类型,如OPEN、UPDATE报文等
1 – OPEN
2 – UPDATE
3 –NOTIFICATION
4 – KEEPALIVE
例如:open消息的具体报文格式:
5、状态机
BGP有限状态机共有六种状态,分别是Idle、Connect、Active、OpenSent、OpenConfirm和Established。
6、BGP选路规则与负载分担
当到达同一目的地存在多条路由时,BGP采取如下策略进行路由选择:
- 如果此路由的下一跳不可达,忽略此路由
- 优选协议首选值(PrefVal)最高的路由 (华为设备特有属性)
- 优选本地优先级(Local_Pref)最高的路由
- 优选本地生成的路由
- 优选AS路径(AS_Path)最短的路由
- 比较Origin属性,依次优选Origin类型为IGP、EGP、Incomplete的路由
- 优选MED值最低的路由
- 优选从EBGP邻居学来的路由
- 优选到BGP下一跳IGP Metric较小的路由
当以上全部相同,则为“等价路由”,可以负载分担
注:AS_PATH必须一致;当负载分担时,以下3条原则无效
- 优选Cluster_List最短的路由
- 优选Originator_ID 或者Router ID最小的路由器发布的路由
- 比较对等体的IP Address,优选从具有较小IP Address的对等体学来的路由
7、9个影响BGP选路的重要参数
根据BGP的选路原则以及BGP常用的路径属性:
- Preferred Value
- LOCAL_PREF
- AS_PATH
- ORIGIN
- MED
- 邻居类别是EBGP还是IBGP
- IGP内部开销值
- Cluster List /ROUTER_ID
- COMMUNITY
以上参数都能直接地影响BGP的路径选择,其中我们常用的参数分别为LOCAL_PREF, AS_PATH和MED属性。
8、BGP扩展特性
安全特性;路由衰减
9、BGP安全特性:
MD5:BGP使用TCP作为传输层协议,为提高BGP的安全性,可以在建立TCP连接时进行MD5认证。但BGP的MD5认证并不能对BGP报文认证,它只是为TCP连接设置MD5认证密码,由TCP完成认证。如果认证失败,则不建立TCP连接。
GTSM(Generalized TTL Security Mechanism 即通用TTL安全保护机制):使能BGP的GTSM策略后,接口板对所有BGP报文的TTL值进行检查。根据实际组网的需要,对于不符合TTL值范围的报文,GTSM可以设置为通过或丢弃。配置GTSM缺省动作为丢弃时,可以根据网络拓扑选择合适的TTL有限值范围,不符合TTL值范围的报文会被接口板直接丢弃,这样就避免了网络攻击者模拟的“合法”BGP报文占用CPU。该功能与EBGP多跳互斥。
限制从对等体接收的路由数量:防止资源耗尽性攻击。
AS_Path长度保护:通过在入口和出口两个方向对AS_Path的长度进行限定,直接丢弃AS_Path超限的报文。
注:部分图片来源与网络!
如有错误侵权,请联系作者更改删除!!!