Section 5 网络层:控制平面
中科大郑烇、杨坚老师《计算机网络》笔记
5.4 ISP之间的路由选择
- 平面路由
- 一个网络中的所有路由器的地位一样(在一个平面)
- 通过LS、DV等算法,所有路由器都要知道其他所有路由器(子网)的路径
- 平面路由的问题
- 规模巨大的网络中,路由信息的存储、传输和计算代价巨大
- 管理问题:不同网络不同管理形式;对外网隐藏网络细节
- 层次路由
- 将互联网分成自治系统AS
- AS内部路由:Intra-AS Routing Protocol(RIP、OSPF、思科IGRP等)
- 网关路由器连接其他AS
- AS之间路由:外部网关协议 Inter-AS Routing Protocol
- 解决了规模问题(具有可扩展性,性能下降比较缓慢)和管理问题
- AS间的路由:Border Gateway Protocol(BGP)
- BGP提供给每个AS的方法
- eBGP:从相邻的ASes那里获得子网可达信息
- iBGP:将获得的子网可达信息传遍到AS内部的所有路由器
- 根据子网可达信息和策略来决定到达子网的“好”路径
- 采用改进的DV算法(包括到达各个目标网络的详细路径信息)
- BGP基础
- BGP会话:两个BGP路由器在一个半永久的TCP连接上交换BGP报文:通告(BGP advertisement)向不同目标子网前缀的“路径”
- 通告一个子网前缀: prefix + attributes
- 两个重要属性:AS-PATH和NEXT-HOP
- 基于策略的路由
- 当一个网关路由器接收到了一个路由通告,使用输入策略来接受或过滤(accept/decline),e.g. 不想经过某个AS,转发某些前缀的分组,已经有了一条往某前缀的偏好路径
- BGP通告:通告所经过的AS列表,目的是检测环路/多路径选择,转发前加上自己的AS号
- BGP会话:两个BGP路由器在一个半永久的TCP连接上交换BGP报文:通告(BGP advertisement)向不同目标子网前缀的“路径”
- BGP报文
- 使用TCP协议交换BGP报文
- BGP报文
- OPEN:打开TCP连接,认证发送方
- UPDATE:通告新路径 (或者撤销原路径)
- KEEPALIVE:在没有更新时保持连接,也用于对OPEN请求确认
- NOTIFICATION:报告以前消息的错误,也用来关闭连接
- BGP路径选择
- 路由器可能获得一个网络前缀的多个路径,自定义方案打分
- 可能的方案:本地偏好值属性、最短AS-PATH、最近的NEXT-HOP路由器(热土豆路由:有人给你了一个热土豆,你就找代价最低的一个邻居赶紧丢出去)、附加的判据(使用BGP标示)
- 路由器可能获得一个网络前缀的多个路径,自定义方案打分
- BGP提供给每个AS的方法
- 为什么内部网关协议和外部网关协议设计不同?
- 策略
- Inter-AS:管理员需要控制通信路径,谁在使用它的网络进行数据传输
- Intra-AS:子网管理者,所以无需策略,尽可能地利用资源进行快速路由
- 规模
- Inter-AS:必须考虑规模问题,以便支持全网的数据转发
- Intra-AS:规模可控(如果AS太大,可将此AS分成小的AS)
- 性能
- Inter-AS:策略可能比性能更重要
- Intra-AS:关注性能
- 策略