网络系统集成-层次路由与ospf、bgp协议
层次路由
使用原因
- "扁平"网络(尤其大规模网络)在实际网络中不可行
- 网络规模达到6亿,路由表几乎无法存储,交换量巨大
- 管理自治:每个网络的管理可能都期望自主控制其网内路由
层次路由
构成
- 自治系统AS:同一as内运行的路由器协议相同,不同as可运行不同路由协议
- 网关路由器gateway router:位于as边缘,与其他as网关路由器相连
互连as
由as内部路由算法和as间路由算法共同协作配置
例
一、路由器1d的转发表设置
- 假设as学到as间路由,可通1c到达指定接口(as间路由通过协议向所有内部路由传播可达信息)
- 路由器1d利用该路由器信息确定到达1c的最小费用的路径接口
二、在多as间选择
假设 as通过as间路由协议学到as2 as3均可到达目的地址,这时路由器就会通过热图土豆路由,将分组发送欸最近的网关路由器
OSPF协议
概述及特点
- “开放”: 公众可用
- 采用链路状态路由算法
- LS分组扩散(通告)
- 每个路由器构造完整的网络(AS)拓扑图
- 利用Dijkstra算法计算路由
- OSPF通告中,每个入口对应一个邻居
- OSPF通告在整个AS范围泛洪
- OSPF报文直接封装到IP数据报中
- 与OSPF极其相似的一个路由协议:IS-IS 路由协议
OSPF 优点(RIP 不具备)
- 安全(security): 所有OSPF报文可以被认证(预防恶意入侵)
- 允许使用多条相同费用的路径 (RIP只能选一条)
- 对于每条链路,可以针对不同的TOS设置多个不
同的费用度量 (e.g., 卫星链路可以针对“尽力”
(best effort) ToS设置“低”费用;针对实时ToS
设置“高”费用) - 集成单播路由与多播路由:
- 多播OSPF协议(MOSPF) 与OSPF利用相同的
网络拓扑数据 - OSPF支持对大规模AS分层(hierarchical)
分层OSPF
各层分工(自底向上):
- 内部路由器:链路状态通告只限于区内,每个路由器掌握所在区的详细拓扑。只知道去往其他区网络的“方向” (最短路径)
- 区边界路由器(AreaBorder Routers): “ 汇总”到达所在区网络的距离,通告给其他区边界路由器。
- 主干路由器(BackboneRouters): 在主干区内行 运行OSPF 路由算法.
- AS 边界路由器(ASboundary routers):连接其他AS.
bgp协议
概述
边界网关协议bgp,将无数网络构建成Internet的关键
bgp通信手段
- eBGP:从邻居as获取子网的可达性信息
- iBGP:向所有as内部路由器传播子网可达性信息
bgp基础
**bgp会话:**两个bgp路由器交换bgp报文:
- 通告去往不同前缀的路径
- 报文交换基于半永久tcp连接
bgp报文关键字
open: 与peer建立tcp连线,并认证发送方
**update:**通告新路径
**keepalive:**在无update时,保持连接,也用于对open请求的确认
notification: 报告先前报文的差错,也被用于关闭连接
当AS3通告一个前缀给AS1时:
- AS3承诺可以将数据报转发给该子网
- AS3在通告中会聚合网络前缀,即总结完并通告给其他as
在3a与1c之间, AS3利用eBGP会话向AS1发送前缀可
达性信息.
- 1c则可以利用iBGP向AS1内的所有路由器分发新的前缀可达
性信息 - 1b可以(也可能不)进一步通过1b-到-2a的eBGP会话,向
AS2通告新的可达性信息 - 当路由器获得新的前缀可达性时,即在其转发表中增
加关于该前缀的入口(去往该目标网段的端口,即路由项).
通告的前缀信息包括BGP属性
- 前缀+属性= “路由”
两个重要属性:
- AS-PATH(AS路径): 包含前缀通告所经过的AS序列: e.g., AS 67,
AS 17 - NEXT-HOP(下一跳): 开始一个AS-PATH的路由器接口,指向下一
跳AS.
• 可能从当前AS到下一跳AS存在多条链路
bgp路由选择
网关路由器收到路由通告后,利用其输入策略(import policy)决策接受/拒绝该路由
- e.g., 从不将流量路由到AS x
- 基于策略(policy-based) 路由
路由器可能获知到达某目的AS的多条路由,基于以下准则选择:
- 本地偏好(preference)值属性: 策略决策(policydecision)
- 最短AS-PATH
- 最近NEXT-HOP路由器: 热土豆路由(hot potato
routing) - 附加准则
bgp路由选择策略
例1
需要注意的是下述网络:
- W,Y是桩网络(stub network/AS): 只与一个其他AS相连
- X是双宿网络(dual-homed network/AS): 连接两个其他AS,且 X不希望经过他路由B到C的流量,因此,X不会向B通告任何一条到达C的路由
例2
- A向B通告一条路径:AW
- B向X通告路径:BAW,此时,X就是b的客户流量
- B不会向C通告BAW,以为W是A的客户,C是运营商,也不是B的客户流量。所以,B期望A向W路由流量不从它这里经过,而强制从C通过,B期望只路由去往/来自其客户的流量。
为什么采用不同的AS 内与AS 间路由协议?
- 策略(policy):
- inter-AS: 期望能够管理控制流量如何被路由,谁路由
经过其网络等. - intra-AS: 单一管理,无需策略决策
- 规模(scale):
- 层次路由节省路由表大小,减少路由更新流量
- 适应大规模互联网
- 性能(performance):
- intra-AS: 侧重性能
- inter-AS: 策略主导