边界网关协议(Broder Gateway Protocol,BGP)
- BGP4是当前因特网中域间路由选择的事实标准;
BGP服务
BGP为每个AS提供以下服务:
- 从相邻AS处获得子网可达性信息;
- 向本AS内部的所有路由器传播可达性信息;
- 基于可达性信息和AS策略,确定到达子网的优路由;
- BGP使得每个子网向因特网的其它部分通过自身的存在 ,即确保因特网中的所有AS了解该子网的存在即如何到达该子网;
- BGP使得每个AS了解经过其相邻AS可达的目的地;
- 目的地不是主机IP,而是CDIR(无类别域间路由选择)化的前缀;
- 每个前缀代表一个子网或一个子网的集合;
- BGP通过IP地址聚合,最长前缀匹配等技术生成,解析前缀;
BGP基本概念
BGP会话
- 用于BGP的TCP连接,路由器对使用179端口的半永久TCP连接以交换路由选择信息;
- BGP会话是TCP连接,未必与实际的物理链路对应;
BGP对等方 位于一个BGP会话两端的两台路由器;
外部BGP会话(eBGP) 跨越两个AS的BGP会话;
内部BGP会话(iBGP) 同一AS内两路由器间的BGP会话;
路径属性及BGP路由
自洽系统号(Autonomous System Number,ASN)
- BGP中,自洽系统由全局唯一的自洽系统号标识(桩AS无ASN);
- AS号由ICANN地区注册机构分配;
桩AS
- 仅承载源地址或目的地址为本AS的流量,通常无ASN;
- 即不承载中转流量的AS,这样的AS往往是客户AS;
路由
- 路由是带有BGP属性的IP前缀;
- BGP对等方通过BGP会话彼此通告路由;
路由属性
-
AS-PATH
该属性包含前缀的通告已经通过的AS;
当前缀传送到一个AS时,该AS将它的ASN添加到AS-PATH属性中;
AS-PATH属性可以检测和防止循环通告;
一台路由器若发现他的AS被包括在AS-PATH中,则它会拒绝该通告; -
NEXT-HOP
一个开始某AS-PATH的路由器接口,即下一跳AS对应网关路由器的相应接口;
路由器使用该属性配置转发表;
输入策略
当网关路由器收到一条路由时,根据输入策略决定接收或过滤该路由;
BGP路由选择
BGP使用eBGP和iBGP发布路由;
某台路由器可能知道到达某一前缀的多条路由,路由器必须在可能的路由中选择一条;
消除规则
输入:到同一前缀的多条路由
输出:一条路由
- 本地偏好值,该值由AS的网络管理员设置;被配置了本地偏好的路由器,会选择本地偏好值最大的路由;若有多个最大值,进入下一步;
- 选择具有最短AS-PATH的路由;若有多个最短AS-PATH路由,进入下一步;
- 选择具有最靠近NEXT-HOP路由器的路由(即热土豆路由选择);最靠近指最低费用;若有多个最靠近路由器,进入下一步;
- 使用BGP标识符选择路由;
路由选择策略
- AS网络可分为主干提供商网络和客户桩网络
- 客户桩网络至少与一个提供商网络相连以获得因特网连接
- 客户桩网络也可以多宿,即同时与多个提供商网络连接
- 多宿的客户桩网络不会转发过路流量,亦即所有通告客户桩网络的流量或者发送源该网络,或者目的地是该网络
- 亦即,客户桩网络不会向邻居AS转发到其它网络的BGP通告
- 主干提供商网络与其它提供商网络和它的客户网络相连
- 提供商网络会为它的客户转发BGP通告
- 提供商网络之间如何转发BGP通告并没有统一的强制性规定
事实上的商业法则是,任何穿越某ISP主干网的流量必须是其源或目的地位于该ISP的某个客户网络的流量;否则,这些流量就免费通过该ISP网络