计算机网络知识点——10.网络层之BGP协议
概述:
- 路由器为了访问AS之外的网络就需要在路由表中加入这些网络的路由。
- 内部网关协议只负责建立AS内的网络的路由,而外部网关协议可以在AS之间传递路由。
- 最早的一种外部网关协议(EGP)是EGP协议(Exterior GatewayProtocol) ,它只允许树形结构的连接。现在主要使用的外部网关协议是边界网关协议 (Border Gateway Protocol, BGP协议),它允许图形方式的连接。
- BGP协议采用可靠扩散(reliable flooding)的方法把AS内的网络的信息传遍整个因特网。
- 每个AS需要分配一个号码。与IP地址分配相同,全局AS号(1 –64511)由ICANN的下属机构进行统一分配。 64512 – 65535为私有AS号。
工作原理:
- 在AS中,每个运行了BGP协议的路由器被称为BGP路由器, 所运行的BGP协议被称为BGP发言人(BGP Speeker), 而其它路由器称为内部路由器(internal router)。 BGP路由器也运行内部网关协议。 后面所说的BGP路由器一般都是指BGP发言人。
- 在BGP路由器之间可以通过TCP连接(端口号为179) 建立相邻关系。
- AS内的两个BGP路由器之间建立的相邻关系称为iBGP(interior BGP)相邻关系,而位于不同AS的两个BGP路由器之间建立的相邻关系称为eBGP(exterior BGP)相邻关系。
- BGP协议所扩散的网络前缀(网络号)称为网络层可达信息(Network Layer Reachablility Information, NLRI)。
- BGP路由器可以把网络层可达信息(Network Layer Reachablility Information, NLRI),连同它们的属性一起通过相邻关系扩散给邻居,进而扩散到因特网中所有的BGP路由器。
- BGP路由器在NLRI引入BGP协议时扩散一次,并不定期扩散。
如何形成和扩散NLRI:
- 与谁建立相邻关系是由AS管理员指定的。把AS中的哪些网络前缀形成NLRI发布出去一般是由AS管理员指定的,也可以采用自动产生(重发布)和聚合产生。这些指定网络只有发布路由表中存在才会被改路由器扩散出去。如果它们失效,则会把撤销路由的消息扩散出去。
- 为了防止NLRI在AS之间扩散时形成回路, BGP路由器会丢弃所收到的AS_PATH中包含当前AS号的NLRI。
- 为了防止NLRI在AS内部扩散时形成回路,BGP路由器不会把从iBGP邻居收到的NLRI转发给iBGP邻居。
- BGP路由器可以聚合若干NLRI网络形成一个新的NLRI。
- 如果从多条路径收到同一个NLRI,在默认情况下选择AS-PATH中AS数最少的路径。
- BGP路由器根据NLRI的属性NEXT HOP查询IGP路由表得到NEXT HOP, 就可以使用该路由。如果没有查询到匹配项,则丢弃该NLRI。
- 如果设置了IGP同步并且NLRI在IGP路由表中没有匹配项,该NLRI不能转发给eBGP邻居。
- BGP路由器可以把多个路由聚合(aggregate)为一个路由,其NLRI的ORIGIN属性要改为IMCOMPLETE。
- 如果iBGP邻居之间的路由要经过内部路由器,那么就要给IGP路由表中注入AS外的路由,或者通过隧道技术连接iBGP邻居。
例:哪个NLRI的属性可以用于防止扩散NLRI时在AS之间形成回路?
B.Next Hop
C.AS-PATH
D.Local Preference
answer:C