路由协议总结 主要内容 路由原理,路由协议分类,路由汇总,路由过滤 PBR , OSPF 框架, BGP 框架
控制平面与转发平面 路由器的核心工作可以分为路由表的建立维护和数据转发,两个工作分属于两个不同的平面: 控制平面:路由表的建立与维护 转发平面:收到数据包以后,路由器将目标地址取出查找路由表,  根据查找结果对数据包进行处理(转发 / 丢弃)
Routing Protocol & Routed Protocol Routing  protocols are  used between  routers to determine paths and maintain  routing tables. 路由器学习路径的方式 Once the path is determined, a router can route a  routed  protocol. 数据包的运输工具
Routing Protocol & Routed Protocol 在 TCP/IP 协议栈中, Routed Protocol ( IP )工作在  网络层,而  Routing Protocol 工作在传输层或者应用层,他们之间的关系为: Routing Protocol  负责学习最佳路径,而  Routed Protocol 根据最 佳路径将来自上层的信息封装在 IP 包里传输 TCP/IP 中 Routing Protocol 的路由信息也是封装在 IP 包中传输的 在 OSI 路由环境中, IS-IS 的路由信息是直接封装在第二层数据帧头 里面传输的,而不是封装在三层协议 (CLNP) 中
路由选择与查找
路由匹配与查找 匹配方式:最长匹配-尽量采用最精确的路由 查找方式:递归查找-查找到转发接口,转发;否则,丢弃数据包 假设路由表中有如下的路由 1 R  10.1.0.0/24 [120/1] via …… 2 O  10.1.0.0/16 [110/50] via…… 3 S  11.1.0.0/16  via 172.16.1.2  4 R  172.16.1.0  via 192.168.1.2 5 C  192.168.1.0 Directed  Serial0 目标地址为 10.1.0.1 的数据包,将会选择 1 进行转发,目标地址为 10.1.2.1 的 数据包选择 2 进行转发,而目标地址为 200.1.1.1 的数据包 则会选择 3 进行转发 注意 :   1. 10.1.0.0/16 与 10.1.0.0/24 是两条不同的路由,他们之间不会进行 AD 值的比较 2.  从第 3 条路由我们可以发现,路由的 Next-Hop 未必是与路由器直连的,只要通 过递归查找方式能找到直连接口即认为此路由是有效的
路由的种类 直连路由: 链路层协议自动发现,是其他两类路由的基础 静态路由: 管理员手工配置 动态路由: 通过路由协议动态学习发现的
静态路由 Router(config)#ip route  network  [ mask ]  { address  |  interface }[ distance ] [permanent]   仅仅在点到点( point-to-point )链路上才可以指定本地的转发端口; Distance 指的是 AD ,指定 Next-Hop 时缺省为 1 ,指定本地转发端口 时缺省为 0 通过修改缺省的 Distance 可以实现浮动的静态路由起备份的作用 Next-Hop address 可以不直接相连(递归查找到直连接口即可) Interface 经常配置成 null0 用于配置黑洞路由,避免路由环路
浮动静态路由( AD 值的重要应用之一) 主链路采用 EIGRP 协议,备份链路采用 ISDN 拨号并配置静态路由,默认情况下,静态路由优于动态路由 修改静态路由的 AD 值(高于 EIGRP ) 1. 当主链路正常时,静态路由不会出现在路由表中(沉入水中) 2. 当主链路失效时,静态路由出现在路由表中(浮出水面)
路由协议分类 从路由的学习方式划分:距离矢量路由协议( DV )与链路状 态路由协议( LS ) 从工作的范围划分: IGP 与 EGP 从路由更新时是否携带掩码:无类路由协议( Classless )与 按类路由协议( Classful )
DV 与 LS 注意: 1.EIGRP 是思科的私有协议,兼具 DV 与 LS 的特征 2.BGP 属于高级 DV 协议,同时某些方面具备 LS 的特征 OSPF  IS-IS EIGRP BGP RIP  IGRP  EIGRP  BGP  采用组播进行更新 采用广播进行更新( RIPv2 基于组播) 交换发生变化的 LSA 交换整张路由表 触发式路由更新 周期性的路由更新 邻居之间交换链路状态信息( LSA )不容易产生环路(地图询路) 邻居之间直接交换路由 (Routing By Rumour)  容易产生环路 (路标询路) LS DV
LS 数据结构 Neighbor Database  (交换链路状态信息) Topology Database  (地图,包含所有可能路径) Forward Database  (路由表,只包含最佳路径) 运行 LS 路由协议的路由器之间首先通过 HELLO 包建立邻居关系,邻居 之间交换 LSA 信息,所有 LSA 的集合体构成拓扑数据库,拓扑数据库同  步后,每个路由器都独立运行 SPF 算法,计算出最佳路由
Classful 与 Classless RIPv2 OSPF  IS-IS EIGRP BGP RIPv1  IGRP  支持 VLSM 和非连续子网 不支持 VLSM 和非连续子网 支持手工汇总( RIPv2 和 EIGRP 还支持自动汇总) 只支持网络边界自动汇总 路由更新时携带掩码信息 路由更新时不携带掩码信息 Classless Classful
Classful 路由更新行为
Classful 路由更新行为 发送方,将目标网络( D )和发送接口所属的网络 ( T ) 进行比较 1. 不同的大类网络,将目标网络自动汇总成大类网络  不带掩码传输(不 支持非连续子网) 2. 相同的大类网络,掩码也相同,将目标网络按原状态  不带掩码传输 3. 相同的大类网络,掩码不相同,不发送目标网络 (不支持  VLSM ) 接收方,将目标网络( D )和接收接口网络( R )进行比较 1. 不同的大类网络,将默认掩码应用于目标网络  放入路由表 2. 相同的大类网络,将接收接口掩码应用于目标网络  放入路由表
LS 数据结构 Neighbor Database  (交换链路状态信息) Topology Database  (地图,包含所有可能路径) Forward Database  (路由表,只包含最佳路径) 运行 LS 路由协议的路由器之间首先通过 HELLO 包建立邻居关系,邻居之间 交换 LSA 信息,所有 LSA 的集合体构成拓扑数据库,拓扑数据库同步后,每 个路由器都独立运行 SPF 算法,计算出最佳路由
默认路由 默认路由可以静态配置,也可以通过路由协议动态产生 默认路由目标网段未必是全 0 的 在路由表中,默认路由以 * 标记
静态默认路由 在 Stub Router (连接 Stub Network 的路由器)上通常配置缺省路由, 这也是大多数企业在接入 INTERNET 时所采用的配置。
默认路由动态发布 内部网络中的路由通过某一种路由协议学习,比如 OSPF , 他们的系统出口为路由器 A ,内部路由器访问外部的网络  ( 172.31.0.0 )通常是通过缺省路由实现 。 直接在每个路由器上配置静态路由(配置开销很高) 在边界路由器 A 上配置静态默认路由,然后重分发到内部协议中( redistribute ) 但是某些协议在重分发的时候不能识别全 0 的路由(如 IGRP ) 通过 default-network 或者 default-information 分发缺省路由 172.31.0.0/24 External AS A B C ………
默认路由动态发布( RIP ) RouterA router rip network 10.0.0.0 ip default-network 172.31.0.0  ip route 172.31.0.0 255.255.0.0 172.31.1.1 或者  router rip network 10.0.0.0 ip route 0.0.0.0 0.0.0.0  172.31.1.1  ( RIP 自动重分发全 0 的默认路由) RIP 172.31.0.0/24 External AS A B C ………
默认路由动态发布( default-network ) RouterA router igrp/eigrp 100 network 10.0.0.0 network  172.31.0.0  (虚假宣告) ip default-network 172.31.0.0 ip route 172.31.0.0 255.255.0.0 172.31.1.1 这样内部路由器将出现如下的默认路由 D* 172.31.0.0 Via A IGRP/EIGRP 172.31.0.0/24 External AS A B C ………
默认路由动态发布( default-information ) RouterA router ospf 100 network 10.0.0.0 0.255.255.255 area 0 default-information originate ip route 0.0.0.0 0.0.0.0 172.31.1.1  ospf/is-is 注意 :在 A 上如果没有缺省路由必须在 default-information originate  后面加上关键字“ always” 172.31.0.0/24 External AS A B C ………
路由汇总 汇总的好处 1.  减少路由表条目的数量从而节省内存及 CPU 资源 2.  可以使得路由变化的影响本地化( Localize ) RIPv1  IGRP 只支持自动汇总 OSPF IS-IS 只支持手工汇总 area xx range x.x.x.x  x.x.x.x (OSPF 区域间汇总 ) summary-address x.x.x.x  x.x.x.x (OSPF IS-IS) RIPv2  EIGRP  BGP 既支持自动汇总,也支持手工汇总 (no) auto-summary  ( 协议进程 ) ip summary-address rip  x.x.x.x x.x.x.x  (RIP  端口 ) ip summary-address eigrp  as-number x.x.x.x x.x.x.x (EIGRP  端口 ) aggregate-address x.x.x.x x.x.x.x  summary-only (BGP 协议进程 ) 对于 IGP 协议 , 汇总后自动抑制具体路由,而对 BGP, 默认情况  下汇总路由和具体路由一起传输( Summary-Only 抑制具体路由) 汇总以后  会自动产生 Null 0 路由
黑洞路由( Null0 )避免路由环路 D:172.16.12.0/24  172.16.13.0/24 172.16.14.0/24 172.16.15.0/24 0.0.0.0/0 via  internet 172.16.0.0/16 via null0 Internet:172.16.0.0/16 via D 按照最长匹配原则,没有 Null0 路由的时候,如果 internet 收到目的地址为 172.16.12.1 的数据包会传给 D  ,如果某个时刻 172.16.12.0 失效, D 根据默认路由送回 Internet ,从而形成路由环路,有了 Null0 路由 路由器 D 则会将数据包抛弃 internet
协议与数字 注意: 在思科路由器上, IS-IS 的 AD 值为 115 20  (EBGP) 200  ( IBGP ) Unicast TCP 179   BGP 120 V1: 255.255.255.255  V2:  224.0.0.9 UDP 520   RIP 110 224.0.0.5 (DRother) 224.0.0.6 (DRouter)   88 OSPF 90  (Internal) 170 (External) 224.0.0.10   89 EIGRP 100 255.255.255.255   9 IGRP Administrative Distance Update Address Port Number Protocol Number Routing Protocol
路由优化 路由过滤 全部过虑 局部过虑 路由重分发 策略路由( PBR )与路由策略
路由过滤(完全过滤) 对于 B 来讲, RIP 更新信息不会从 S1 口发送出去,但 S1 所在子网 10.0.0.16/30 仍然会被 RIP 从 S0 更新出去 Passive-Interface 通常用于 Classful 协议,仅过滤 Outbound Routing Passive-Interface 用于 LS 协议时,不仅过滤路由信息,也过滤 Hello 包 , 所以  此时也过滤 Inbound Routing (无法建立邻居关系)
路由过滤(局部过虑) 基于路由进程的过滤(发送或者接收路由时的过滤) 基于路由重分发时的过滤 路由过滤的配置分为”控制”和”调用”两个方面 路由控制: Access – List filter  (最传统的控制方法,不灵活) Prefix–List filter  (控制路由灵活方便) AS–path filter  (仅适用于 BGP ) Community–list filter  (仅适用于 BGP ) 调用方式: Distribute –List  (只过滤不做属性控制) Route –Map (过滤的同时进行属性控制) 注意: 在 BGP 中,二者均可被 Neighbor 所调用,在 IGP 中,二者均是在协 议进程模式下配置, Distribute –List 既可用于路由更新时的过滤,也可以 用于路由重分发时的过滤,而 Route –map 只能用于路由重分发
路由过虑(补充事项) Distribute-List 命令仅仅适用于对路由信息的过滤,不能用来过  滤 LSA ,当用于 OSPF 中时, Distribute-List  不能与接口结合过  滤 OUT 方向的路由,当用于 IN 方向时,用于阻止路由从 LSDB 进  入 Routing Table area {area-id} filter-list prefix {prefix-list-name in | out}  ( 在 ABR 上过滤区域间的路由 -Type 3 LSA)
路由控制( Prefix-List ) 0<=len<ge<le<=32 组合方式 network/len network/len ge xx  (控制掩码长度在 ge 到 32 之间) network/len le xx  (控制掩码长度在 len 到 le 之间) network/len ge xx le xx  (控制掩码长度在 ge 到 le 之间) 用 ACL 区分开 10.1.0.0/16 与 10.1.0.0/24 不是一件容易的事情 Router (config )# ip prefix-list  list-name  [seq  seq-value ] {deny | permit}  network/len  [ge  ge-value ] [le  le-value ]
路由控制( Prefix-List ) ip prefix-list A permit 0.0.0.0/0 ge 32 ip prefix-list B permit 128.0.0.0/2 ge 17 ip prefix-list C permit 0.0.0.0/0 le 32 ip prefix-list D permit 0.0.0.0/0 ip prefix-list E permit 0.0.0.0/1 le 24 What will be matched by All host routes Any subnet in class B address space All routes Just the default route Any prefix in class A address space covering at least 256 addresses
路由重分发( Redistribute ) 尽量避免双向重分发以及多点重分发 做路由重分发时,容易出现路由回馈现象 1. 路由环路 2. 非最佳路径的选择( suboptimal routing ) 解决路由回馈的方案 1. 路由过滤: 避免路由环路 2. 修改 AD 值:避免 Suboptimal routing
策略路由( PBR )与路由策略 PBR 是凌驾于正常路由(基于路由表的 destination-based 路由) 之上的基于手工策略的路由 路由策略是针对接收或者发送的路由根据路由的某些属性(如 IGP Metric) 实施策略的行为 PBR 影响的是数据包,而路由策略影响的是路由 路由策略主要应用于 BGP 中, PBR 则独立于所运行的路由协议
策略路由( PBR ) PBR 可以针对通过路由器的数据包或者是始发自路由器的数据包实施策略 通过 Route-Map 定义策略(策略可以基于数据包头里面的各种参数制定) 影响通过路由器的数据包,在数据包入口上应用策略,影响始发自路由器的数据包,在全局模式应用策略 注意 :   Route-Map 在用于路由过滤时,默认隐含“ Deny” 而在用于策略路由 时默认隐含为“转正常路由”
OSPF 单区域学习要点 邻居(近邻)关系建立 LSDB 的建立与维护 OSPF 在 NBMA 中的配置
DR/BDR 选举 选举规则 Interface Priority -> RID (先比较优先级,优先级相同则通过 RID 打破僵局) Priority=0 则意味着此路由器必然是 DRother ( 此规则在 NBMA 的配置中有极 其重要的作用 ) 两大原则 稳定压倒一切(非抢占 Non pre emptive ) 快速响应( BDR 自动接替 DR )
OSPF 在 NBMA 中的配置 1 ( NBMA 模式) R5(config)# router ospf 100 R5(config-router)# network 10.1.1.0 0.0.0.255 area 0 R5(config-router)# neighbor 10.1.1.2 priority 0 R5(config-router)# neighbor 10.1.1.3 priority 0 R6(config-if)# frame-relay map ip 10.1.1.3 100 broadcast R7(config-if)# frame-relay map ip 10.1.1.2 200 broadcast R6: O 172.16.2.0/24 via 10.1.1.3 …… serial 0
OSPF 在 NBMA 中的配置 2 ( P2MP 模式) R5(config-if)# ip ospf network point-to-multipoint R6(config-if)# ip ospf network point-to-multipoint R7(config-if)# ip ospf network point-to-multipoint
OSPF 在 NBMA 中的配置 3 ( P2P 模式) R5(config)#interface serial1.1 point-to-point R5(config-subif)# ip address 10.1.1.1 255.255.255.0 R5(config-subif)# frame-relay interface-dlci 100 R5(config)#interface serial1.2 point-to-point R5(config-subif)# ip address 10.1.2.1 255.255.255.0 R5(config-subif)# frame-relay interface-dlci 200 R6(config-if)# ip ospf network point-to-point R7(config-if)# ip ospf network point-to-point
OSPF 多区域 多区域设计的终级目标:尽可能的减少网络中 LSA 的流量 区域属性的设计( Stub ,Totally Stub, NSSA )  ( 减少接收 LSA 的量 ) 路由汇总( ABR ASBR )  ( 减少发送 LSA 的量 )
OSPF 多区域  LSA 类型 Type3 来源于同一个区域中的 Type1 Type4 是由 Type5 触发的 Type7 到达 NSSA ABR 后  ABR 将其转换成 Type5 NSSA ASBR ASBR ABR ABR DR Area Router Originator AS External Link Destination network's IP address.  5 NSSA AS External Link Destination network's IP address. 7 ASBR Summary Link Router ID of the ASBR 4 Summary Link Destination network's IP address. 3 Network Link IP interface address of the DR  2 Router Link Originating router's Router ID  1 Description Link-State ID LSA Type
NSSA 区域 NSSA 区域中存在两个以上的 ABR 时,只有一个路由器作为 Transitioner 将  Type7 LSA 转换成 Type5 LSA Transitioner 的选举: RID 最高者胜出
OSPF 排错 show ip ospf: 查看 OSPF 协议参数( RID, Timer 等)和统计信息 show ip ospf interface: 查看端口状态( RID ,area number, network  type ) , 端口邻居关系 show ip ospf border-routers:  查看到达  ABR/ASBR 的内部路径  show ip ospf database :查看 LSDB 内容 show ip ospf database summary :查看 LSDB 中的 Type3 LSA show ip route ospf: 查看 OSPF 路由 show ip ospf virtual-Links  :查看 VL 的状态
OSPF 排错(邻居) ospf log-adjacency-changes   show ip ospf neighbors (details) debug ip ospf adj 邻居关系异常的主要原因 : 1. 区域号不一致 2.Hello/Hold  时钟不一致 3. 区域 Stub 属性不一致 4. 认证未通过 5. 网络类型不一致( NBMA ) 6.MTU 不一致
输入策略机 输出策略机 选择最佳路由 BGP Net  Int IGP Net  Int 本地产生 BGP 路由 路由表 来自邻居的路由 Network … Redistribute … AD 值最小 发送邻居的路由 BGP 协议概览
BGP 强悍所在 BGP 掌控着 Internet 上十多万条路由,之所以这么强悍是因为其深谙 无为而治的道理, IGP 的协议都有着非常复杂的路由算法( SPF/DUAL ), 看上去很美的算法反而束缚了这些协议的施展空间, BGP 没有算法,有的 是可以随心所欲控制的规则(属性) 可怜的 IGP 不仅要被人鄙视,还要被霸道的 BGP 利用,它们一方面要为 BGP 牵线搭桥建立邻居关系,另一方面他们辛苦学习来的路由还要遭受 BGP 随心所欲的玩弄(控制) 相对于 IGP 而言, BGP 协议的精髓在于对路由的控制,而不是学习路由。
BGP 邻居 IBGP : 用 loopback 接口创建 (update-source loopback) ,保证 邻居的可靠冗余两个地址之间有 IGP 路由即可  。存在以 下两个问题: 1. 同步问题( IBGP 与 IGP 的同步) 2. 水平分割问题 :有三种解决方案 : FULL-MESH IBGP  (开销太高) Route Reflector  (路由反射器) 通过 Originator-ID 和 Cluster-List 避免路由反射中的环路 Route Confederence  (路由联盟) 注意:如果 IGBP 邻居之间启用了 MPLS 或者 GRE 隧道,中间的路由器可以不运行 BGP EBGP:  通常用直连物理接口地址创建邻居关系 1. 如果邻居之间存在多条链路,通过 loopback 创建 ( update-source loopback ) 2. 通过静态路由解决 loopback 之间的互通 3. 默认的 ttl = 1  通过 ebgp-multihop 修改
BGP 路由策略 控制数据包的出口路径(在 inbound 方向的路由上设置) Weight Local-Preference 控制数据包的入口路经(在 outbound 方向的路由上设置) As-Path prepend Med Community (通常与 Local-Preference 结合使用)
BGP 常见故障汇总 邻居不能建立( AS 号码错误,地址不匹配,路由不可达, TTL 问题) bgp log-neighbor-change show ip bgp neighbor x.x.x.x show ip bgp summary 路由丢失  (next-hop 无效,路由未同步,宣告的网络没有与之精确匹配的 IGP 路由,汇总时被抑制,做了错误的过滤等 ) show ip bgp (x.x.x.x) (longer) show ip route (x.x.x.x)(longer) show ip bgp neighbor x.x.x.x  advertised-routes show ip bgp neighbor x.x.x.x  received-routes show ip bgp neighbor x.x.x.x  routes ( 需要命令 neighbor soft  reconfiguration ) debug ip bgp debug ip bgp x.x.x.x update debug ip bgp events c lear  ip bgp  ( soft in )  clear ip  bgp  (soft  out)

Cisco路由协议高度总结

  • 1.
  • 2.
    控制平面与转发平面 路由器的核心工作可以分为路由表的建立维护和数据转发,两个工作分属于两个不同的平面: 控制平面:路由表的建立与维护转发平面:收到数据包以后,路由器将目标地址取出查找路由表, 根据查找结果对数据包进行处理(转发 / 丢弃)
  • 3.
    Routing Protocol &Routed Protocol Routing protocols are used between routers to determine paths and maintain routing tables. 路由器学习路径的方式 Once the path is determined, a router can route a routed protocol. 数据包的运输工具
  • 4.
    Routing Protocol &Routed Protocol 在 TCP/IP 协议栈中, Routed Protocol ( IP )工作在 网络层,而 Routing Protocol 工作在传输层或者应用层,他们之间的关系为: Routing Protocol 负责学习最佳路径,而 Routed Protocol 根据最 佳路径将来自上层的信息封装在 IP 包里传输 TCP/IP 中 Routing Protocol 的路由信息也是封装在 IP 包中传输的 在 OSI 路由环境中, IS-IS 的路由信息是直接封装在第二层数据帧头 里面传输的,而不是封装在三层协议 (CLNP) 中
  • 5.
  • 6.
    路由匹配与查找 匹配方式:最长匹配-尽量采用最精确的路由 查找方式:递归查找-查找到转发接口,转发;否则,丢弃数据包假设路由表中有如下的路由 1 R 10.1.0.0/24 [120/1] via …… 2 O 10.1.0.0/16 [110/50] via…… 3 S 11.1.0.0/16 via 172.16.1.2 4 R 172.16.1.0 via 192.168.1.2 5 C 192.168.1.0 Directed Serial0 目标地址为 10.1.0.1 的数据包,将会选择 1 进行转发,目标地址为 10.1.2.1 的 数据包选择 2 进行转发,而目标地址为 200.1.1.1 的数据包 则会选择 3 进行转发 注意 : 1. 10.1.0.0/16 与 10.1.0.0/24 是两条不同的路由,他们之间不会进行 AD 值的比较 2. 从第 3 条路由我们可以发现,路由的 Next-Hop 未必是与路由器直连的,只要通 过递归查找方式能找到直连接口即认为此路由是有效的
  • 7.
    路由的种类 直连路由: 链路层协议自动发现,是其他两类路由的基础静态路由: 管理员手工配置 动态路由: 通过路由协议动态学习发现的
  • 8.
    静态路由 Router(config)#ip route network [ mask ] { address | interface }[ distance ] [permanent] 仅仅在点到点( point-to-point )链路上才可以指定本地的转发端口; Distance 指的是 AD ,指定 Next-Hop 时缺省为 1 ,指定本地转发端口 时缺省为 0 通过修改缺省的 Distance 可以实现浮动的静态路由起备份的作用 Next-Hop address 可以不直接相连(递归查找到直连接口即可) Interface 经常配置成 null0 用于配置黑洞路由,避免路由环路
  • 9.
    浮动静态路由( AD 值的重要应用之一)主链路采用 EIGRP 协议,备份链路采用 ISDN 拨号并配置静态路由,默认情况下,静态路由优于动态路由 修改静态路由的 AD 值(高于 EIGRP ) 1. 当主链路正常时,静态路由不会出现在路由表中(沉入水中) 2. 当主链路失效时,静态路由出现在路由表中(浮出水面)
  • 10.
    路由协议分类 从路由的学习方式划分:距离矢量路由协议( DV)与链路状 态路由协议( LS ) 从工作的范围划分: IGP 与 EGP 从路由更新时是否携带掩码:无类路由协议( Classless )与 按类路由协议( Classful )
  • 11.
    DV 与 LS注意: 1.EIGRP 是思科的私有协议,兼具 DV 与 LS 的特征 2.BGP 属于高级 DV 协议,同时某些方面具备 LS 的特征 OSPF IS-IS EIGRP BGP RIP IGRP EIGRP BGP 采用组播进行更新 采用广播进行更新( RIPv2 基于组播) 交换发生变化的 LSA 交换整张路由表 触发式路由更新 周期性的路由更新 邻居之间交换链路状态信息( LSA )不容易产生环路(地图询路) 邻居之间直接交换路由 (Routing By Rumour) 容易产生环路 (路标询路) LS DV
  • 12.
    LS 数据结构 NeighborDatabase (交换链路状态信息) Topology Database (地图,包含所有可能路径) Forward Database (路由表,只包含最佳路径) 运行 LS 路由协议的路由器之间首先通过 HELLO 包建立邻居关系,邻居 之间交换 LSA 信息,所有 LSA 的集合体构成拓扑数据库,拓扑数据库同 步后,每个路由器都独立运行 SPF 算法,计算出最佳路由
  • 13.
    Classful 与 ClasslessRIPv2 OSPF IS-IS EIGRP BGP RIPv1 IGRP 支持 VLSM 和非连续子网 不支持 VLSM 和非连续子网 支持手工汇总( RIPv2 和 EIGRP 还支持自动汇总) 只支持网络边界自动汇总 路由更新时携带掩码信息 路由更新时不携带掩码信息 Classless Classful
  • 14.
  • 15.
    Classful 路由更新行为 发送方,将目标网络(D )和发送接口所属的网络 ( T ) 进行比较 1. 不同的大类网络,将目标网络自动汇总成大类网络 不带掩码传输(不 支持非连续子网) 2. 相同的大类网络,掩码也相同,将目标网络按原状态 不带掩码传输 3. 相同的大类网络,掩码不相同,不发送目标网络 (不支持 VLSM ) 接收方,将目标网络( D )和接收接口网络( R )进行比较 1. 不同的大类网络,将默认掩码应用于目标网络 放入路由表 2. 相同的大类网络,将接收接口掩码应用于目标网络 放入路由表
  • 16.
    LS 数据结构 NeighborDatabase (交换链路状态信息) Topology Database (地图,包含所有可能路径) Forward Database (路由表,只包含最佳路径) 运行 LS 路由协议的路由器之间首先通过 HELLO 包建立邻居关系,邻居之间 交换 LSA 信息,所有 LSA 的集合体构成拓扑数据库,拓扑数据库同步后,每 个路由器都独立运行 SPF 算法,计算出最佳路由
  • 17.
  • 18.
    静态默认路由 在 StubRouter (连接 Stub Network 的路由器)上通常配置缺省路由, 这也是大多数企业在接入 INTERNET 时所采用的配置。
  • 19.
    默认路由动态发布 内部网络中的路由通过某一种路由协议学习,比如 OSPF, 他们的系统出口为路由器 A ,内部路由器访问外部的网络 ( 172.31.0.0 )通常是通过缺省路由实现 。 直接在每个路由器上配置静态路由(配置开销很高) 在边界路由器 A 上配置静态默认路由,然后重分发到内部协议中( redistribute ) 但是某些协议在重分发的时候不能识别全 0 的路由(如 IGRP ) 通过 default-network 或者 default-information 分发缺省路由 172.31.0.0/24 External AS A B C ………
  • 20.
    默认路由动态发布( RIP )RouterA router rip network 10.0.0.0 ip default-network 172.31.0.0 ip route 172.31.0.0 255.255.0.0 172.31.1.1 或者 router rip network 10.0.0.0 ip route 0.0.0.0 0.0.0.0 172.31.1.1 ( RIP 自动重分发全 0 的默认路由) RIP 172.31.0.0/24 External AS A B C ………
  • 21.
    默认路由动态发布( default-network )RouterA router igrp/eigrp 100 network 10.0.0.0 network 172.31.0.0 (虚假宣告) ip default-network 172.31.0.0 ip route 172.31.0.0 255.255.0.0 172.31.1.1 这样内部路由器将出现如下的默认路由 D* 172.31.0.0 Via A IGRP/EIGRP 172.31.0.0/24 External AS A B C ………
  • 22.
    默认路由动态发布( default-information )RouterA router ospf 100 network 10.0.0.0 0.255.255.255 area 0 default-information originate ip route 0.0.0.0 0.0.0.0 172.31.1.1 ospf/is-is 注意 :在 A 上如果没有缺省路由必须在 default-information originate 后面加上关键字“ always” 172.31.0.0/24 External AS A B C ………
  • 23.
    路由汇总 汇总的好处 1. 减少路由表条目的数量从而节省内存及 CPU 资源 2. 可以使得路由变化的影响本地化( Localize ) RIPv1 IGRP 只支持自动汇总 OSPF IS-IS 只支持手工汇总 area xx range x.x.x.x x.x.x.x (OSPF 区域间汇总 ) summary-address x.x.x.x x.x.x.x (OSPF IS-IS) RIPv2 EIGRP BGP 既支持自动汇总,也支持手工汇总 (no) auto-summary ( 协议进程 ) ip summary-address rip x.x.x.x x.x.x.x (RIP 端口 ) ip summary-address eigrp as-number x.x.x.x x.x.x.x (EIGRP 端口 ) aggregate-address x.x.x.x x.x.x.x summary-only (BGP 协议进程 ) 对于 IGP 协议 , 汇总后自动抑制具体路由,而对 BGP, 默认情况 下汇总路由和具体路由一起传输( Summary-Only 抑制具体路由) 汇总以后 会自动产生 Null 0 路由
  • 24.
    黑洞路由( Null0 )避免路由环路D:172.16.12.0/24 172.16.13.0/24 172.16.14.0/24 172.16.15.0/24 0.0.0.0/0 via internet 172.16.0.0/16 via null0 Internet:172.16.0.0/16 via D 按照最长匹配原则,没有 Null0 路由的时候,如果 internet 收到目的地址为 172.16.12.1 的数据包会传给 D ,如果某个时刻 172.16.12.0 失效, D 根据默认路由送回 Internet ,从而形成路由环路,有了 Null0 路由 路由器 D 则会将数据包抛弃 internet
  • 25.
    协议与数字 注意: 在思科路由器上,IS-IS 的 AD 值为 115 20 (EBGP) 200 ( IBGP ) Unicast TCP 179   BGP 120 V1: 255.255.255.255 V2: 224.0.0.9 UDP 520   RIP 110 224.0.0.5 (DRother) 224.0.0.6 (DRouter)   88 OSPF 90 (Internal) 170 (External) 224.0.0.10   89 EIGRP 100 255.255.255.255   9 IGRP Administrative Distance Update Address Port Number Protocol Number Routing Protocol
  • 26.
    路由优化 路由过滤 全部过虑局部过虑 路由重分发 策略路由( PBR )与路由策略
  • 27.
    路由过滤(完全过滤) 对于 B来讲, RIP 更新信息不会从 S1 口发送出去,但 S1 所在子网 10.0.0.16/30 仍然会被 RIP 从 S0 更新出去 Passive-Interface 通常用于 Classful 协议,仅过滤 Outbound Routing Passive-Interface 用于 LS 协议时,不仅过滤路由信息,也过滤 Hello 包 , 所以 此时也过滤 Inbound Routing (无法建立邻居关系)
  • 28.
    路由过滤(局部过虑) 基于路由进程的过滤(发送或者接收路由时的过滤) 基于路由重分发时的过滤路由过滤的配置分为”控制”和”调用”两个方面 路由控制: Access – List filter (最传统的控制方法,不灵活) Prefix–List filter (控制路由灵活方便) AS–path filter (仅适用于 BGP ) Community–list filter (仅适用于 BGP ) 调用方式: Distribute –List (只过滤不做属性控制) Route –Map (过滤的同时进行属性控制) 注意: 在 BGP 中,二者均可被 Neighbor 所调用,在 IGP 中,二者均是在协 议进程模式下配置, Distribute –List 既可用于路由更新时的过滤,也可以 用于路由重分发时的过滤,而 Route –map 只能用于路由重分发
  • 29.
    路由过虑(补充事项) Distribute-List 命令仅仅适用于对路由信息的过滤,不能用来过 滤 LSA ,当用于 OSPF 中时, Distribute-List 不能与接口结合过 滤 OUT 方向的路由,当用于 IN 方向时,用于阻止路由从 LSDB 进 入 Routing Table area {area-id} filter-list prefix {prefix-list-name in | out} ( 在 ABR 上过滤区域间的路由 -Type 3 LSA)
  • 30.
    路由控制( Prefix-List )0<=len<ge<le<=32 组合方式 network/len network/len ge xx (控制掩码长度在 ge 到 32 之间) network/len le xx (控制掩码长度在 len 到 le 之间) network/len ge xx le xx (控制掩码长度在 ge 到 le 之间) 用 ACL 区分开 10.1.0.0/16 与 10.1.0.0/24 不是一件容易的事情 Router (config )# ip prefix-list list-name [seq seq-value ] {deny | permit} network/len [ge ge-value ] [le le-value ]
  • 31.
    路由控制( Prefix-List )ip prefix-list A permit 0.0.0.0/0 ge 32 ip prefix-list B permit 128.0.0.0/2 ge 17 ip prefix-list C permit 0.0.0.0/0 le 32 ip prefix-list D permit 0.0.0.0/0 ip prefix-list E permit 0.0.0.0/1 le 24 What will be matched by All host routes Any subnet in class B address space All routes Just the default route Any prefix in class A address space covering at least 256 addresses
  • 32.
    路由重分发( Redistribute )尽量避免双向重分发以及多点重分发 做路由重分发时,容易出现路由回馈现象 1. 路由环路 2. 非最佳路径的选择( suboptimal routing ) 解决路由回馈的方案 1. 路由过滤: 避免路由环路 2. 修改 AD 值:避免 Suboptimal routing
  • 33.
    策略路由( PBR )与路由策略PBR 是凌驾于正常路由(基于路由表的 destination-based 路由) 之上的基于手工策略的路由 路由策略是针对接收或者发送的路由根据路由的某些属性(如 IGP Metric) 实施策略的行为 PBR 影响的是数据包,而路由策略影响的是路由 路由策略主要应用于 BGP 中, PBR 则独立于所运行的路由协议
  • 34.
    策略路由( PBR )PBR 可以针对通过路由器的数据包或者是始发自路由器的数据包实施策略 通过 Route-Map 定义策略(策略可以基于数据包头里面的各种参数制定) 影响通过路由器的数据包,在数据包入口上应用策略,影响始发自路由器的数据包,在全局模式应用策略 注意 : Route-Map 在用于路由过滤时,默认隐含“ Deny” 而在用于策略路由 时默认隐含为“转正常路由”
  • 35.
    OSPF 单区域学习要点 邻居(近邻)关系建立LSDB 的建立与维护 OSPF 在 NBMA 中的配置
  • 36.
    DR/BDR 选举 选举规则Interface Priority -> RID (先比较优先级,优先级相同则通过 RID 打破僵局) Priority=0 则意味着此路由器必然是 DRother ( 此规则在 NBMA 的配置中有极 其重要的作用 ) 两大原则 稳定压倒一切(非抢占 Non pre emptive ) 快速响应( BDR 自动接替 DR )
  • 37.
    OSPF 在 NBMA中的配置 1 ( NBMA 模式) R5(config)# router ospf 100 R5(config-router)# network 10.1.1.0 0.0.0.255 area 0 R5(config-router)# neighbor 10.1.1.2 priority 0 R5(config-router)# neighbor 10.1.1.3 priority 0 R6(config-if)# frame-relay map ip 10.1.1.3 100 broadcast R7(config-if)# frame-relay map ip 10.1.1.2 200 broadcast R6: O 172.16.2.0/24 via 10.1.1.3 …… serial 0
  • 38.
    OSPF 在 NBMA中的配置 2 ( P2MP 模式) R5(config-if)# ip ospf network point-to-multipoint R6(config-if)# ip ospf network point-to-multipoint R7(config-if)# ip ospf network point-to-multipoint
  • 39.
    OSPF 在 NBMA中的配置 3 ( P2P 模式) R5(config)#interface serial1.1 point-to-point R5(config-subif)# ip address 10.1.1.1 255.255.255.0 R5(config-subif)# frame-relay interface-dlci 100 R5(config)#interface serial1.2 point-to-point R5(config-subif)# ip address 10.1.2.1 255.255.255.0 R5(config-subif)# frame-relay interface-dlci 200 R6(config-if)# ip ospf network point-to-point R7(config-if)# ip ospf network point-to-point
  • 40.
    OSPF 多区域 多区域设计的终级目标:尽可能的减少网络中LSA 的流量 区域属性的设计( Stub ,Totally Stub, NSSA ) ( 减少接收 LSA 的量 ) 路由汇总( ABR ASBR ) ( 减少发送 LSA 的量 )
  • 41.
    OSPF 多区域 LSA 类型 Type3 来源于同一个区域中的 Type1 Type4 是由 Type5 触发的 Type7 到达 NSSA ABR 后 ABR 将其转换成 Type5 NSSA ASBR ASBR ABR ABR DR Area Router Originator AS External Link Destination network's IP address. 5 NSSA AS External Link Destination network's IP address. 7 ASBR Summary Link Router ID of the ASBR 4 Summary Link Destination network's IP address. 3 Network Link IP interface address of the DR 2 Router Link Originating router's Router ID 1 Description Link-State ID LSA Type
  • 42.
    NSSA 区域 NSSA区域中存在两个以上的 ABR 时,只有一个路由器作为 Transitioner 将 Type7 LSA 转换成 Type5 LSA Transitioner 的选举: RID 最高者胜出
  • 43.
    OSPF 排错 showip ospf: 查看 OSPF 协议参数( RID, Timer 等)和统计信息 show ip ospf interface: 查看端口状态( RID ,area number, network type ) , 端口邻居关系 show ip ospf border-routers: 查看到达 ABR/ASBR 的内部路径 show ip ospf database :查看 LSDB 内容 show ip ospf database summary :查看 LSDB 中的 Type3 LSA show ip route ospf: 查看 OSPF 路由 show ip ospf virtual-Links :查看 VL 的状态
  • 44.
    OSPF 排错(邻居) ospflog-adjacency-changes show ip ospf neighbors (details) debug ip ospf adj 邻居关系异常的主要原因 : 1. 区域号不一致 2.Hello/Hold 时钟不一致 3. 区域 Stub 属性不一致 4. 认证未通过 5. 网络类型不一致( NBMA ) 6.MTU 不一致
  • 45.
    输入策略机 输出策略机 选择最佳路由BGP Net Int IGP Net Int 本地产生 BGP 路由 路由表 来自邻居的路由 Network … Redistribute … AD 值最小 发送邻居的路由 BGP 协议概览
  • 46.
    BGP 强悍所在 BGP掌控着 Internet 上十多万条路由,之所以这么强悍是因为其深谙 无为而治的道理, IGP 的协议都有着非常复杂的路由算法( SPF/DUAL ), 看上去很美的算法反而束缚了这些协议的施展空间, BGP 没有算法,有的 是可以随心所欲控制的规则(属性) 可怜的 IGP 不仅要被人鄙视,还要被霸道的 BGP 利用,它们一方面要为 BGP 牵线搭桥建立邻居关系,另一方面他们辛苦学习来的路由还要遭受 BGP 随心所欲的玩弄(控制) 相对于 IGP 而言, BGP 协议的精髓在于对路由的控制,而不是学习路由。
  • 47.
    BGP 邻居 IBGP: 用 loopback 接口创建 (update-source loopback) ,保证 邻居的可靠冗余两个地址之间有 IGP 路由即可 。存在以 下两个问题: 1. 同步问题( IBGP 与 IGP 的同步) 2. 水平分割问题 :有三种解决方案 : FULL-MESH IBGP (开销太高) Route Reflector (路由反射器) 通过 Originator-ID 和 Cluster-List 避免路由反射中的环路 Route Confederence (路由联盟) 注意:如果 IGBP 邻居之间启用了 MPLS 或者 GRE 隧道,中间的路由器可以不运行 BGP EBGP: 通常用直连物理接口地址创建邻居关系 1. 如果邻居之间存在多条链路,通过 loopback 创建 ( update-source loopback ) 2. 通过静态路由解决 loopback 之间的互通 3. 默认的 ttl = 1 通过 ebgp-multihop 修改
  • 48.
    BGP 路由策略 控制数据包的出口路径(在inbound 方向的路由上设置) Weight Local-Preference 控制数据包的入口路经(在 outbound 方向的路由上设置) As-Path prepend Med Community (通常与 Local-Preference 结合使用)
  • 49.
    BGP 常见故障汇总 邻居不能建立(AS 号码错误,地址不匹配,路由不可达, TTL 问题) bgp log-neighbor-change show ip bgp neighbor x.x.x.x show ip bgp summary 路由丢失 (next-hop 无效,路由未同步,宣告的网络没有与之精确匹配的 IGP 路由,汇总时被抑制,做了错误的过滤等 ) show ip bgp (x.x.x.x) (longer) show ip route (x.x.x.x)(longer) show ip bgp neighbor x.x.x.x advertised-routes show ip bgp neighbor x.x.x.x received-routes show ip bgp neighbor x.x.x.x routes ( 需要命令 neighbor soft reconfiguration ) debug ip bgp debug ip bgp x.x.x.x update debug ip bgp events c lear ip bgp ( soft in ) clear ip bgp (soft out)