「这是我参与2022首次更文挑战的第15天,活动详情查看:2022首次更文挑战」
边界网关协议BGP
外部网关协议EGP(例如边界网关协议BGP)
- 在不同自治系统内,度量路由的“代价”(距离,带宽,费用等)可能不同。因此,对于自治系统之间的路由选择,使用代价”作为度量来寻找最佳路由是不行的。
- 自治系统之间的路由选择必须考虑相关策略(政治,经济,安全等)
- BGP只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由
边界网关协议BGP的基本工作原理
1、在配置BGP时,每个自治系统的管理员要选择至少一个路由器作为该自治系统的“BGP发言人"
2、不同自治系统的BGP发言人要交换路由信息,首先必须建立TCP连接,端口号为179
-
在此TCP连接上交换BGP报文以建立BGP会话
-
利用BGP会话交换路由信息(例如,增加新的路由,或撤销过时的路由,以及报告出错的情况等)
-
使用TCP连接交换路由信息的两个BGP发言人,彼此称为对方的邻站(neighbor)或对等站(peer)
3、BGP发言人除了运行BGP外,还必须运行自己所在自治系统所使用的内部网关协议IGP,例如OSPF或RIP。
4、BGP发言人交换网络可达性的信息(要到达某个网络所要经过的一系列自治系统)
5、当BGP发言人互相交换了网络可达性的信息后,各BGP发言人就根据所采用的策略从收到的路由信息中找出到达各自治系统的较好的路由。也就是构造出树形结构、不存在回路的自治系统连通图。
示意图:
解释:AS1网络要和AS2网络通信时,两方先建立TCP可靠连接,再由两方的BGP发言人进行BGP会话,交换两个网络间的路由信息,在两个网络不能直达时,再与其他的外部网络建立BGP发言人进行BGP会话交换路由信息,知道AS1网络和AS2网络成功获取到对方网络的路由信息。
BGP的四种报文
- OPEN(打开)报文:用来与相邻的另一个BGP发言人建立关系,使通信初始化。
- UPDATE(更新)报文:用来通告某一路由的信息,以及列出要撤销的多条路由。
- KEEPALIVE(保活)报文:用来周期性地证实邻站的连通性。
- NOTIFICATION(通知)报文:用来发送检测到的差错。
RIP、OSPF、BGP的封装关系
RIP封装在端口号为520的用户数据报中,IP数据包中协议字段的值为17
OSPF封装在IP数据报中,协议字段的值是89
BGP封装在端口号为179的用户数据报中,IP数据包中协议字段的值为6