目录
一、层次选路的基本概念
二、域内路由选择
1、RIP*
2、OSPF
三、域间路由选择 BGP
1、AS 互连
2、AS 域间选路任务
3、示例:在 1d 上设置转发表
4、示例:在多个 AS 中做出选择
5、BGP 会话与通告
6、传播可达信息
7、路径属性和 BGP 路由
8、BGP 路由选择
9、BGP 报文
10、BGP 选路策略:客户 VS 供应商
11、为什么 AS 内选路和 AS 间选路采用不同的协议
一、层次选路的基本概念
将整个网络划分成若干个区域,并且实现这些区域的管理自治。
自治系统 AS:一个区域内所有路由器组成的集合。
- 相同 AS 内的路由器运行相同的路由协议 -- 区域内路由协议。
- 不同 AS 内的路由器可以运行不同的区域内路由协议。
网关路由器:是一台位于 AS 边缘的路由器,它直接连接到在其它 AS 中的一台或多台路由器。
- 运行域间路由协议 BGP,与其它网关路由器交互
- 运行域内路由协议 IGP,与相同 AS 内的所有其它路由器交互
内部路由器:仅连接在它自己 AS 中的主机和路由器。
二、域内路由选择
这个 “域” 就是指的一个自治系统。
使用域内路由协议 IGP,也被称作内部网关协议。
标准的域内路由协议有:
- RIP:路由信息协议
- OSPF:开放式最短路径优先
- IGRP:内部网关路由协议(Cisco 所拥有)
1、RIP*
全称为 Routing Information Protocol
- 使用距离向量算法
- 将所有链路权值都设置为 1
- 距离的衡量标准:跳数
由于权值都为 1,因此一条最优的路由就是总跳数最少的那条。此外,RIP 还规定跳数不能超过 15 次,一旦超过则视为不可到达,从而放弃转发该分组。
RIP 通告
RIP 通告:每隔 30 秒,通过响应报文在邻居间交换距离向量。
每个通告包含了多达 25 个 AS 内的目的子网的列表。
RIP 链路失败及恢复
若 180 秒后没有收到通告,则认为邻居死机或链路中断:
- 通过该故障邻居的路由失败
- 将新的公告发送给其它邻居
- 如果转发表发生变化,则邻居再发送新的公告
- 链路故障信息快速传播到整个网络
使用毒性逆转防止乒乓循环(无限距离 = 16 跳)
2、OSPF
Open Shortest Path First:open 意为开放的、公用的。
- 使用链路状态算法
- 每个节点具有拓扑图
- 路由计算使用 Dijkstra 算法
OSPF 通告
AS 内每个路由器都会广播 OSPF 通告,并且都会为其邻居路由器设置一个表项,记录每个邻居的链路特征和费用。
- OSPF 通告会散布到整个自治系统 -- 洪泛方式
- OSPF 通告直接通过 IP 传输,既不是 TCP 也不是 UDP
OSPF 相较于 RIP 的优点
- 安全:所有 OSPF 通告需要认证,防止恶意入侵
- 允许使用多条相同开销的路径,而在 RIP 中只有一条路径
- 对于每条链路,有多个消费尺度用于不同的服务类型 TOS
例如在尽力转发时卫星链路代价设置为 “低” ,而对实时应用设置为高
- 单播和多播综合支持:多播 MOSPF 使用和 OSPF 同样的链路数据库
- 在大的区域中使用层次 OSPF
层次 OSPF
将一个 AS 划分出两级层次。
两级层次:主干区域和本地区域。
- 各个路由器只在所属区域内发送 OSPF 通告
- 每个节点有详细的区域拓扑:仅知道到达其它区域内网络的方向,即最短路径
边界路由器:连接到其它自治系统。
主干路由器:限于在主干区域内运行 OSPF 路由协议,本身不是区域边界路由器。
区域边界路由器:汇总了到达本地区域内部网络的路径,并通告给其它区域边界路由器。
区域边界路由器同时属于本地区域和主干区域,它只会告诉主干路由器和边界路由器:我能到达哪些内部路由器,但是不会告诉是怎么到达的。
三、域间路由选择 BGP
Border Gateway Protocol
BGP 为每个 AS 提供了一种手段:
- 从相邻 AS 获取子网可达信息
- 向该 AS 内部的所有路由器传播这些可达性信息
- 基于该可达信息和 AS 策略,决定到达子网的 “好” 路由
即允许一个子网向 Internet 的其它部分通告它的存在 “I am here” 。
1、AS 互连
转发表是根据 AS 内和 AS 间选路算法而配置的。
- AS 域内的选路项用于目的端在域内的选路
- AS 域内和 AS 域间的选路项用于目的端在域外的选路
2、AS 域间选路任务
假设 AS1 中的路由器接收到了目的端是 AS1 外的分组,路由器需要将把这个分组转发到网关路由器,但应该选择哪个网关路由器呢?
AS1 需要知道:
- 通过 AS2 和 AS3 可以到达哪些目的端
- 将这些可达信息通知给 AS1 内的所有路由器
这就是域间选路的任务。
3、示例:在 1d 上设置转发表
4、示例:在多个 AS 中做出选择
请不要在意上面那张图是怎么画的。目前的情况是:AS1 的两个网关路由器分别连接了 AS3 和 AS2,并且 AS3 和 AS2 都能到达子网 x 。
- 现在假设 AS1 通过域间选路协议知道子网 x 从 AS3 和 AS2 都可以到达
- 为了配置转发表,路由器 1d 必须决定通过哪个网关将分组转发到目的子网 x
- 这同时也是域内路由协议的工作
- 热土豆选路:把分组送到两个路由器中最近的一个
1d 是根据域内路由协议知道的哪个网关路由器离自己最近。
5、BGP 会话与通告
- BGP 对等方通过半永久 TCP 连接来交换选路信息 -- BGP 会话。
- BGP 会话和物理链路无关,即并不总是和某条物理链路对应。
因为两个相邻 AS 的网关路由器之间可能是由多条物理链路连接而成的。
在 BGP 中,分组是路由到 CIDR 化的前缀,其中每个前缀表示一个子网或一个子网的集合。比如,转发表项(x, I)中的 x 就是一个前缀(例如 138.16.68/22)。
比如:当 AS2 通告一个前缀给 AS1 时,相当于 AS2 告诉 AS1:我能够转发目的地址前缀等于该前缀的所有分组。并且 AS2 能够在其通告中汇总这些前缀,从而让 AS1 知道它可以转发到的所有子网。
6、传播可达信息
注意:BGP 传播的只是可达信息,并没有计算出一个最优路径。
7、路径属性和 BGP 路由
当 AS 通告前缀时,在通告中包含了 BGP 属性。
- AS-PATH:包含了该通告已经通告过的 AS,形式如 AS 67 AS 17 。
- NEXT-HOP:指出到达下一个 AS 的具体 AS 间边界路由器。
当网关路由器接收到 BGP 通告时,使用输入策略来决定接收或舍弃该通告。
AS 之间只是在逻辑上是相邻的,因此可能存在多条从当前 AS 到达下一个 AS 的链路。
8、BGP 路由选择
路由器可能知道到达相同前缀的多条路由,因此必须从中选出一条。
- 排除规则
- 最短 AS-PATH 的路由:经过的 AS 最少
- 最靠近 NEXT-HOP 路由器的路由:热土豆路由
- 本地偏好值属性:具有最高偏好值的路由被选择
移动、电信、联通,任选你爱~
9、BGP 报文
BGP 报文交换使用 TCP
- OPEN:建立到对方的 TCP 连接,并对发送者进行认证
- UPDATE:通告新路径或者撤销旧路径
- KEEPALIVE:在没有 UPDATES 时保持连结活跃,也对 OPEN 请求作出应答
- NOTIFICATION:报告前面报文的错误,也用于关闭连接
10、BGP 选路策略:客户 VS 供应商
A,B,C 是供应商的网络,X,W,Y 是供应商客户的网络。
X 不希望 B 通过 X 到 C 的路由 BXC,所以 X 不会向 B 通告到 C 的路由 XC 。
11、为什么 AS 内选路和 AS 间选路采用不同的协议
① 策略
- AS 间:管理员想控制本 AS 内产生的通信流怎样选路,以及什么通信流穿过自己的网络。
- AS 内:单个管理者,因此不需要策略。
② 规模
- 层次路由节省了转发表的大小空间,从而减少了路由更新的流量。
③ 性能
- AS 内:集中在性能上。
- AS 间:策略可能比性能更加重要。