资源描述
SE路由笔记
路由 : 指导路由器如何转发数据的一组途径信息。
应用层:为应用程序提供网络接入服务
表达层:数据加密,格式转化
会话层:建立端到端的会话
传输层:(数据段)对数据进行分段
网络层:网络寻址
数据链路层:建立链路的连接 PPP
物理层:数据转化层0 1 bit
层次化的网络结构:
为了方便对传统设备的管理,同时让网络的运营效率达成最高
接入层:作用 把用户接入到网络
(1) 大量的接口
(2) 必要的身份验证
(3) 接入的策略 (涉及路由策略)
典型代表 ----- 二层互换机
汇聚层:就是把接入用户产生的流量汇聚在一起。
由于位置比较重要,在汇聚层往往会考虑到冗余性的接口。
核心层:
把汇聚层传递过来的数据尽也许快的转发走,不需要复杂的路由策略。
核心层也会考虑到冗余性的结构。
为了加快路由转发的效率和增强转发的稳定性,
我们提出了控制平面和转发平面
控制平面: 专门负责收集路由信息
(路由协议工作在控制平面)
转发平面:负责数据报文的转发
(路由转发表工作在转发平面)
路由器的查表原则
(1)最长匹配原则
(2)递归查询
(3)默认路由
FIB 转发信息表
Ip直连路由表 ospf路由表 静态路由表……..
Fib表会将路由表里面有效且最优(ACTIVE)的路由加入到FIB表里面去,这样可以大大减小FIB表的规模。
Display fib
快速转发表 (基于硬件转发的)
由数据包里面的IP五元组信息生成
源目ip地址 源目端口 协议号
路由器收到数据包的时候会根据数据包的目的IP地址查找快速转发表,看看是否有缓存,假如有就根据缓存快速转发出去。假如没有缓存(相称于第一个数据流或者缓存清空)则查看FIB表,同时生成缓存表。
快速转发表的老化时间 30 S
<r1>dis ip fast-forwarding cache
路由的三种来源
直连路由出现的2个前提条件
1 接口下必须要有IP地址
2 接口必须处在UP状态
静态路由的优点:
(1)配置简朴
(2)没有开销
不可以感知链路的动态变化;
使用场合: (1)网络结构比较简朴/设备处在网络的边沿
(2)路由备份
动态路由协议:
收集链路信息动态的生成路由。
缺陷:占用带宽 消耗资源
根据协议算法不同分为
距离矢量路由协议
:
(1)只关心到达目的网段的距离(跳数)和方向
(2)周期性向外以广播或者组播的形式发送所有的路由信息。
(3)DV算法,无法解决路由环路
(4)收敛速度慢
RIP 30S周期性的向外发送自己的路由表,RIP路由的老化时间180S
水平分割
路由毒化
克制时间
毒性逆转
最大跳数
触发更新
链路状态路由协议
(1)通过hello包建立邻居关系
(2)周期性的向外发送LSA
(3)触发更新,收敛速度快
(4)采用的是SPF算法,每台路由器根据LSDB生成一个最短途径树,天生没有环路
典型的代表 : ospf is-is
途径矢量路由协议(对距离矢量的改善)
结合了距离矢量和链路状态路由的特点
邻居建立完毕后第一次会发送所有的路由信息,后面只发送增量路由。
典型代表是 BGP
同种路由协议发现的路由会去比较度量值。异种路由协议发现的相同路由比较路由协议的优先级。
同种路由协议(或者相同优先级的路由)发现去往相同目的网段的不同途径,并且他们的途径开销都同样---------等价路由。
基于流的负载分担:不同的数据流被分担到不同物理链路上。
基于数据包的负载分担:将所有流量按照数据包的划分方式在不同的链路上进行传递,解决了部分数据流过大长期占用带宽的情况。
路由聚合的作用:减少路由表的规模
注意
:在手动聚合的时候尽也许的让聚合路由恰好包含其明细子网路由
OSPF
: (1)没有跳数限制,可以用来大规模组网
(2) 使用组播地址来发送协议报文,减少对其他设备的干扰
组播地址:224.0.0.5 224.0.0.6
(3)以开销作为度量值,可以真实的反映网络的情况。 开销与带宽有关
(4)SPF算法计算路由可以天然的避免环路(最短途径树)
邻居发现-路由互换-路由计算-路由维护
(1) 邻居表 把建立好邻居关系的路由器放在邻居表内。
Display ospf peer
(2) LSDB链路状态数据库
Display ospf lsdb
(3) 路由表 由LSDB通过SPF算法计算出最优途径。
Display ip routing-table
OSPF的分层结构
骨干区域 area0 非骨干区域(除了区域0以外的所有区域)
注意:我们在部署多区域的ospf网络时候,必须要保证多区域里存在区域0.同时非骨干区域必须要和骨干区域直接相连。
因素:为了避免路由环路,ospf规定非骨干区域之间不可以直接通信,非骨干区域的通信通过骨干区域来完毕
为什么要进行区域的划分?
由于所有路由器放在一个区域里的弊端:
(1)LSDB异常庞大
(2)通过SPF算法去针对这个庞大的LSDB计算出路由会异常困难,消耗设备性能。
(3)区域内路由器数量众多会导致拓扑变化的几率越大,一旦网络发生变化,整个区域的LSDB也会随之发生变化。
ospf路由器的类型
区域内部路由器: ospf路由器所有接口都在一个区域。
区域边界路由器:ospf路由器的接口在不同的区域,其中必须要有一个接口在骨干区域。
骨干路由器:只要有一个接口在骨干区域的ospf路由器就可以是骨干路由器。
ASBR路由器: 当ospf引入外部路由以后,引入外部路由的那台设备就是ASBR。
ospf里必须要保证router id 全局唯一
router id 如何产生
(1) 手工指定
(2) 一方面查看是否有环回口,有环回口的话,环回口地址中IP最大的那个就是ROUTER ID
(3) 没有环回口就去从物理接口里面选举一个IP地址最大的作为
ROUTER ID
ospf针对不同的底层链路提出不同的网络类型,因此ospf可以广泛的使用在各种场合,不同的链路缺省的网络类型是不同样的
广播: 对于广播类型链路(以太网/令牌环网....),ospf缺省的网络类型是broadcast
P2P:假如我们的底层链路P2P的链路类型,那么对于的缺省网络类型是P2P
NBMA(非广播多路访问):当我们的底层链路是ATM,帧中继等等类型的时候,所相应的缺省的网络类型是NBMA
P2MP:没有一种链路缺省网络类型是P2MP
ospf的网络类型只是一个概念,我们可以手动去修改ospf的网络类型
interface GigabitEthernet0/0/0
ospf network-type nbma
广播 点到点 NBMA 点到多点
DR/BDR选举 需要 不需要 需要 不需要
hello 10s 10s 30s 30s
hello :建立和维护邻居关系
DD报文:数据库的汇总,包含LSA的摘要信息。通过交互DD报文邻居双方就可以知道双方有哪些路由信息。
LSR报文: LSA request
针对这些LSA摘要去索要具体的LSA的路由信息。
LSU: LSA update
通过LSU报文把真实的路由发送过来
LSACK:
收到路由更新报文以后回复LSACK表达确认。
启动ospf路由器会向组播地址
224.0.0.5发送hello包,协商hello包里面的参数后双方回去建立ospf的邻居关系,邻居关系建立好后我们仍会发送hello包去维护邻居关系。
DR BDR可以大大减少建立和维护的邻接关系的数量,如何选举?
通过比较hello里面的优先级,优先级高的为DR,优先级的数字为0的不参与DR BDR的选举
优先级同样比较router id,数值越大越好
为了增强网络的稳定,ospf规定一旦DR BDR选举完毕,这时候有优先级更高的成员加入也不会去改变DR BDR。
除非重启进程:
reset ospf process
down 没有启动ospf 稳定状态
init 收到对方的hello包,但是hello的邻居字段里没有我
two-way 稳定状态
我收到对方的hello包,并且在hello包里邻居字段里看到我自己。//
在twoway状态的时候已经完毕DR/BDR的选举。
exstart状态
互相发送空的DD协商主从报文,此处的DD报文仅仅是为了协商主从关系,决定由谁先发起真正意义上的DD报文(包含LSA摘要)。
exchange状态
(主先发,从再发)互换真正意义上的DD报文。
loading状态
交互真实的路由信息,通过
LSR-LSU-LSACK
full状态 第3稳定状态
表达我学习完毕我不具有的对方路由信息。
hello 里影响邻居建立的参数(这五个必须相同)
(1) 区域ID号
(2) 验证
(3) 子网掩码//在广播类型的链路里,ospf的hello包会携带掩码信息。
(4) hello时间
(5) 末节(STUB)区域标记
ospf为了防止环路
(1)从一个区域学习到的路由不会再向该区域注入
(2)非骨干区域之间不能直接通信
为了解决骨干区域被分割或者非骨干区域没有直接相连的情况,我们使用虚链接技术
虚链接:指的是在2个ABR(区域边界路由器)上借助非骨干区域建立起点到点的通路,在这个虚拟链路可以跨区域传递协议报文信息。
注意 ; 虚链接必须穿越非骨干区域
虚链接做在2个ABR上
虚链接指的是对方的ROUTERID
OSPF 的LSA
ospf的LSA老化时间是3600S
每隔1800S ospf会泛洪一次自己的所有路由信息
LSA的三要素
(1)LSA的类型
(2)LSA的链路ID(一类和二类、四类不是网段,是router-id)
(3)LSA的通告路由器
1. 不同LSA名称是什么
2. 不同的LSA是由谁产生
3. 不同LSA有什么作用
4. 不同的LSA它的传播范围是多大
一类LSA (router lsa)
每一台路由器都会产生一类LSA。
一类LSA描述的是路由的直连网段信息,涉及接口的状态,接口的开销......
一类LSA只可以在区域内部进行传递。
二类LSA
只出现在共享式(MA)网络里,由DR产生,
DR负责把共享网段的信息以IP加子网的形式告诉给其别人,可以减少区域内部LSA数量。
二类LSA只能在当前区域内部进行传递。
有了一类和二类LSA,已经可以解决
ospf区域内部通信问题
三类LSA
解决的是不同区域的通信问题
三类LSA由ABR产生,ABR负责把一个区域的路由汇总起来以三类LSA的形式传递到其他区域。当ABR收到一个三类LSA的时候,它会把通告路由器字段改为自己继续向下游区域传递。
三类LSA的传播范围是所有区域。
有了1类2类3类可以解决ospf区域内和区域间的通信。
四类LSA
四类LSA由ABR产生,目的是告诉
ospf内部的所有路由器ASBR在哪边,如何到达ASBR。
五类LSA
由ASBR产生,目的将AS外部路由引入到ospf内。
传播范围也是整个ospf区域。
5类LSA的目的是告诉我们ospf内部路由器外面有哪些路由信息。
Ospf接口的开销= 100M除以接口的带宽
Ospf路由开销的计算方法:沿着路由的传递方向去累加入接口的开销
只影响发出去的报文选路,不影响接受的报文
根据外部路由的可信限度,我们把引入的外部路由提成2种。
OE1 第一类外部路由
路由开销的计算方式是
内部到达ASBR的开销加上ASBR到目的网段的开销
OE2 第二类外部路由开销计算方式
ASBR到达目的网段的开销
默认是第二类外部路由
ospf的路由选择
区域内>区域间>OE1>OE2
当引入2条子网号相同但是掩码长度不同的路由条目的时候,由于ospf是按照LSA的三要素进行路由区分,这种方式无法去区分这2条路由,于是我们规定在引入子网号相同但是掩码长度不同的路由的时候会把掩码长度最长那个路由的子网广播地址作为该LSA的链路ID。
ospf的特殊区域:减少了LSA的交互量,节省路由表的空间
STUB
目的是减少非骨干区域中LSA的数量
STUB必须是非骨干区域,并且要在网络的边沿。一旦我们把非骨干区域配置为STUB,STUB区域内就会过滤4 5类LSA,同时STUB区域的ABR会下发3类LSA的默认路由。
完全STUB区域
过滤 4 5 类LSA,也过滤了3类的明细
NSSA(允许ASBR的存在)
将5类LSA转变为7类的LSA存在
ospf边沿区域后面尚有其他路由信息需要引入到ospf内部,这时候传统的特殊区域无法解决
ospf 1 router-id 3.3.3.3
area 0.0.0.2
network 192.168.34.0 0.0.0.255
stub no-summary //完全stub
//注意
配置为STUB区域的路由器里面的每一台路由器都要配置为stub路由器,否则邻居建立不起来。
路由过滤的场合
(1) 路由引入的时候
(2) 发布接受路由的时候
RIP OSPF BGP
过滤的办法
(1)过滤路由协议报文,一旦把路由协议报文过滤掉,该协议的所有路由信息都学不到。
(2)过滤部分路由信息
RIP 制定策略发送满足条件的路由信息。
(3) 对LSDB计算出的路由进行过滤
对于ospf而言。传递的是LSA,而不是路由条目,所以ospf路由协议报文不可以针对路由进行过滤。
IS IS
ES end system 指的就是PC
I S inter system 指的就是路由器
ISIS根据路由器的等级把路由提成4个等级
Level 0 ES和IS之间产生的路由
Level 1 IS 和 IS 之间产生传递的路由
Level 2 区域和区域之间传递的路由
Level 3 不同路由域之间互换的路由信息
L1路由器而言,它可以传递level0和1 路由
L2 路由器而言,它可以传递level 2路由
L1/2表达同时具有这2种能力。
IS IS里面骨干网表达所有具有L2能力的路由器的集合(物理直接相连)
DIS(相称于OSPF的DR)的选举:
1. 先比较优先级,优先级最大的是DIS(H3C默认优先级是64)。
2. 比较设备MAC地址,MAC地址最大的是DIS
3. DIS没有备份,并且支持抢占。
4.一个级别的路由器间就需要一个DIS,如L1的路由器间需要选一个DIS,L2的路由器间也需要再选一个DIS。
路由过滤的场合
(3) 路由引入的时候
(4) 发布接受路由的时候
RIP OSPF BGP
过滤的办法
(1)过滤路由协议报文,一旦把路由协议报文过滤掉,该协议的所有路由信息都学不到。
(2)过滤部分路由信息
RIP 制定策略发送满足条件的路由信息。
(3) 对LSDB计算出的路由进行过滤
对于ospf而言。传递的是LSA,而不是路由条目,所以ospf路由协议报文不可以针对路由进行过滤。
过滤工具
静默端口
使用场合:业务网段不需要接受路由协议信息。
一旦配置了静默接口,该接口不会向外发送路由协议信息。
ospf 1 router-id 1.1.1.1
silent-interface GigabitEthernet0/0/0
2.ACL 访问控制列表
在做路由过滤的时候,ACL的作用仅仅是去匹配数据。ACL需要和filter policy router policy 结合使用。
地址前缀列表
前缀列表名
索引号:标记一个列表名下的多个不同的表项。
前缀列表在匹配的时候按照索引号的升序依次匹配。
在ACL里,我们的规则只能写特定的反掩码,意味着我们只能匹配一个网段
Ru 1 deny sou 10.0.0.0 0.0.0.255
Ip ip-prefix deny sou 10.0.0.0 24
代表前缀列表拒绝来自以10.0.0 开头 掩码长度是24位的路由信息。
前缀列表可以去匹配一个子网范围
Ip ip-prefix jiance deny 10.0.0.0 8 grater 16 less 32
前缀列表会去拒绝以10开头的掩码范围是16到32 之间的所有路由。
注意:
在filter policy 和 ACL/前缀列表结合使用的时候,ACL/前缀列表中的permit和deny含义是允许和拒绝
在router policy 和 ACL/前缀列表结合使用的时候,ACL/前缀列表中的permit和deny含义是匹配路由数据,因此在router policy里一般我们ACL规则都是permit表达去匹配数据,然后交给router policy决定是否放行或者改变该路由的路由属性。
Router policy
(1)Router policy的名称
(2)节点的匹配模式
允许 / 拒绝
(3)最后加一个空节点表达允许这2个匹配规则以外的所有数据通过,默认是拒绝通过。
最后记得调用router policy
Router policy的使用场合
:(1)路由引入
(2)BGP
单一的动态路由协议OSPF、RIP不能使用路由策略
我们把一种路由协议发现的路由引入到另一种路由协议里面去的时候,被引入路由的度量值会发生变化,被引入路由的度量值会按照另一种路由协议的开销计算方式计算。(入乡随俗)同时,被引入路由的度量值会刷新为一个默认值,也就是种子度量值,不同路由协议的种子度量值是不同样的。
Ospf路由协议的种子度量值是1
直连 RIP 路由协议的种子度量值是0
路由环路:
双点引入的时候会导致一个路由协议发现的路由在网络里反复的引入。
解决办法:在引入的时候打上TAG标记(运用route-policy或者路由协议自身算法加上默认的tag),这样对方学习到的都是带有标记的路由,我们在把对方路由引入到本地的时候就可以去掉带有标记的路由信息。
PBR(是一条路由,而不是策略,是一条关心报文的源地址的路由)在普通路由之前一方面匹配,在接口下调用
1. 假如数据流匹配了PBR的permit的表项,那么数据流就从PBR指定的出街口
2. 假如数据流没有匹配了PBR的permit的表项,那么数据流就查看普通路由的出接口转发
BGP 边界网关协议
EGP路由协议
:运营在AS和AS之间,目的是在AS和AS之间可控制的去互换路由信息。
最早的AS间路由协议:EGP路由协议
收敛速度慢
不可以对路由进行很好的控制
不能防环
BGP路由协议:
(1)BGP用于在AS之间去专递路由信息,注意:BGP和IGP不通,IGP路由协议是去发现路由。 BGP完毕的是将IGP路由协议发现的路由灵活的传递出去。
(2)bgp是途径矢量路由协议,有丰富的属性,既可以对路由进行控制,也可以防环。
AS-PATH
(3)BGP的底层协议是TCP,借助TCP的可靠传输和滑动窗口机制,可以保证BGP大量可靠的传输协议报文。
端标语179
意味着BGP可以跨越多台设备去建立邻居关系,传递路由信息
丰富路由属性、
通过丰富的路由属性,它可以很好的对路由进行控制(涉及路由过滤和路由策略)。
发言者
BGP的对等体:
一对互相互换消息的BGP发言者之间
根据BGP发言者之间所处位置的不同,分为2种关系
(1)EBGP对等体,指的是发言者之间位于不同的AS
(2)IBGP对等体,指的是发言者之间位于相同的AS
BGP路由的学习规则
(1)从EBGP对等体那边学习到的路由会传递给所有BGP对等体邻居。
(2)从IBGP对等体学习到的路由不会传递给其他IBGP对等体(BGP的AS内部的防环措施)
BGP AS之间的防环用的是AS PATH属性
从IBGP对等体学习的路由是否传递给其他EBGP对等体与同步原则有关,默认同步是关闭的,因此默认会传递给EBGP邻居
BGP只会将路由表里有效且最优的路由告诉给其别人。
同步原则是如何解决路由黑洞?
同步原则规定只有IGP路由表和BGP路由表同步的时候,IBGP对等体学习的路由才会传递给其他EBGP对等体。
BGP的报文
Hello : 建立邻居关系
Keepalive: 维护邻居关系
Update: 发布路由更新,撤消路由信息
Notification: BGP检测到错误的时候,使用该消息中断连接
Active 状态: TCP连接建立成功但是BGP邻居建立失败,也许与BGP建立邻居的配置有关
当BGP邻居建立完毕,BGP会处在establish状态
BGP的属性:
公认必遵属性:这些属性BGP路由器必须辨认同时这些属性必须存在于BGP协议报文里
AS PATH
指的是BGP通过哪些AS到达本地的自治系统
bgp路由都携带as path列表,当这条路由从一个AS出去的时候,会把该区域的AS数字添加到AS path 列表的最前面
防环 + 选路 (选择通过跳数最小的途径作为最优途径)
Next-hop 属性
BGP里,一个AS为一跳,下一跳指的是下一个AS地址。
bgp发言者在把路由告诉给其他AS的时候,会把出接口的地址作为下一跳地址通告给其别人
EBGP在向IBGP传递路由信息的时候,它是不会积极修改下一跳地址的。
BGP
IM OSPF
BGP
Network 8.0.0.0
8.0.0.0 24 incompelte //引入的方式进入BGP路由表
8.0.0.0 24 network //宣告的方式进入BGP路由表
Origin属性的作用:表达这个路由是如何成为BGP路由的
本地优先
由于BGP的选路,只可以在一个AS内部进行传递,默认是100.
Bgp路由器在选路的时候会去比较路由的本地优先值,本地优先值数值越大,路由的优先级越高。
MED
同样用于BGP选路,用于一个AS到达另一个AS有多个出口的情况。
MED默认为0,MED值越小,路由的优先级越高。
MED可以在不同的AS之间传递。
首选值
首选值只在本地有效。
通过给接受到的不同路由器发过来的路由分派不同的首选值,从而控制选路。
BGP的13条选路原则。
对于BGP而言,它一定会去选择一条最优的路由出来。
但可以有条件地实现负载分担。
bgp 200
peer 192.168.12.1 as-number 100
//建立EBGP对等体关系
peer 192.168.24.2 as-number 200
//建立IBGP对等体关系
peer 192.168.24.2 next-hop-local
//在向对等体192.168.24.2发布路由的时候下一跳地址改为自己。
peer 3.3.3.3 connect-interface LoopBack0
//在向对等体3.3.3.3建立邻居关系的时候使用自己的环回口去建立,默认使用物理出接口。
注意:在建立BGP对等体关系的时候必须要保证2个地址之间TCP可达。
路由控制
Bgp 200
peer 192.168.24.1 preferred-value 100
意味着从邻居192.168.24.1学过来的路由都会分派首选值100
bgp 100
default med 100//修改本地默认MED值
default local-preference 10
//修改本地默认的本地优先值
这种修改对于本地路由表内所有的路由生效。
部署大规模BGP面临的挑战
需要建立维护BGP数量众多,配置麻烦
BGP路由规模太大,亟需缩小路由表的规模
建立全互联的IBGP对等体太过麻烦,不方便维护。
解决方案
对等体组
对等体组指的是把某些具有相同属性的路由器集中在一个组里。
bgp 200
group 1 internal //先创建IBGP对等体组
peer 192.168.23.2 group 1
peer 192.168.24.2 group 1
//把用户加入组中
peer 1 next-hop-local
后续的所有操作都是对对等体组操作,命令会下发给组成员。
路由聚合
减少BGP路由表中路由表的规模,将连续的子网聚合成教大的网络。
自动:将子网路由自动聚合成主类网络发布出去。只能对引入的路由进行聚合
手动:
bgp 200
aggregate 10.0.0.0 255.255.255.0
对各种来源的路由都生效
路由反射
手工去配置反射器和客户端
客户端向反射器发布的路由都会被反射给其他客户端。
IPV4的缺陷
地址数量少
不够安全
配置麻烦
IPV6
地址数目有保证
解决数据的安全传输问题(双向)
配置异常简朴
手工:
无状态地址自动配置:
Ipv6 address auto
IPV6里最重要的一个协议:ND邻居发现协议.。它可以同时解决:地址解析,邻居不可达检测,地址冲突检测,无状态地址自动配置,路由器重定向。
邻居状态可达状态即为邻居建立成功。
ND发现协议里面包含的报文
NS 邻居请求报文
ND 邻居通告报文
RS 路由器请求
RD 路由器通告
Redirect 路由重定向报文
NS ND:通过NS ND完毕地址解析和邻居检测
无状态地址自动配置:
表达PC可以在没有DHCP服务器存在的情况下自己收集链路信息完毕IPV6地址的配置。
(IPV6地址组成部分:
前缀 接口标记符 前缀长度)
RS RD:负责去给设备收集生成IPV6地址所需要的参数。
客户端向路由器发送RS报文,路由器收到后会回复ND报文,这个ND报文里包含了PC完毕地址配置所需要的这些参数(路由器前缀)。
路由重定向
自己选择一条最优的路由器出去。
展开阅读全文