Border Gateway Protocol,边界网关协议,简称BGP,主要用于互联网AS(自治系统)之间的互联。
Linux内核原生支持的、专门用在大规模数据中心维护不同的“自治系统”之间路由信息的、无中心的路由协议.。
举例:
AS1和AS2分别是独立的自治系统,指一个组织管辖下的所有IP网络和路由器的全体(可以想象成一个小公司里所有的主机和路由器)
如果AS1的10.10.0.2要访问AS2的172.17.0.3的话,根据路由规则 ,发出的IP包必须经过Router1,通过C口发往网关Router2(AS上的路由器),
但是反过来,如果主机172.17.0.3要访问10.10.0.2,到达Router2后,就不知道去哪儿了,因为没有相应的路由规则,这时候,网络管理员就应该给Router2也添加一条路由规则 ,比如10.10.0.2的IP包,应该经过Router2的C接口,发往Router1
像Router1和Router2这样把各个自治系统连接在一起的路由器,叫:边界网关,它的路由表里拥有其他自治系统里的主机路由信息
如果网络拓扑结构非常复杂,要依靠人工来对边界网关的路由表进行配置和维护,不现实,于是BGP就出来了。
使用BGP后,每个边界网关上都运行着一个小程序,会将各自的路由表信息、通过TCP传输给其他的边界网关,而其他边界网关的这个小程序,会对收到的数据进行分析,然后将需要的信息添加到自己的路由表里。
所以,BGP就是在大规模网络中实现节点路由信息共享的一种协议。