bgp bgp 是哪一层网络协议知识科普

BGP全称Border Gateway Protocol,中文叫边界网关协议。名字里面带边界、网关,乍听像门禁管控工具,实际作用更像是互联网各大网络之间互相传递路由信息,告诉对方自己能抵达哪些网段,双方确认最优通行路径。很多人第一次接触BGP,都是看到新闻某运营商配置出错,引发全球路由异常,评论区出现BGP炸了这类说法。这时就会产生疑问,BGP属于哪一层协议?

套用OSI七层模型划分,BGP一般归类到应用层,也就是第七层。这个结论很多人会觉得矛盾,BGP明明负责网络选路,怎么划分到应用层。根源在于它的实现方式。BGP不会直接封装进IP数据包,它依托TCP传输,使用179端口。建立邻居关系前,先完成TCP三次握手,交换OPEN消息,依靠KEEPALIVE维持邻居连接,通过UPDATE消息通告路由。整套交互逻辑和HTTP、SMTP这类经典应用层协议一致,借助传输层可靠连接传输自身数据。从协议栈实现位置判断,它属于应用层。

bgp bgp 是哪一层网络协议知识科普

但它的功能服务于网络层。IP协议负责第三层数据包转发,路由器转发数据包的前提是存在路由表,BGP就是填充路由表的协议之一。它交换的不是网页或者文件,而是抵达某个网段需要途经哪些AS这类路由信息。AS叫自治系统,可以理解成独立管理的大型网络,像运营商、云厂商、大型企业出口网络。BGP工作在不同AS之间,边界网关协议名字由此而来。同一个AS内部,常用OSPF、IS-IS等路由协议,处理内网选路;BGP负责向外通告内网路由,同时学习外部路由。

这里区分两个概念方便记忆。IP属于被路由协议,承担数据包转发工作。BGP属于路由协议,生成、交换路由信息,本身不会转发用户业务数据。数据包到达路由器,路由器读取BGP、OSPF生成好的路由表,再依据表项转发。BGP不参与每一个数据包的传输,只在后台维护路由表。可以类比成地图编辑员和快递员:BGP负责绘制地图,IP相当于快递员,真正在路上传输的是IP数据包。

BGP还有个特点,不会依靠最短路径算法选路。OSPF这类协议计算链路开销,寻找成本最低路径。BGP属于路径向量协议,记录目标网段途经的全部AS,依靠AS_PATH属性防止路由环路,管理员也能借助各类策略属性干预选路。比如多条路径都能访问目标网段,管理员可以通过本地优先级、MED、权重等参数,优先选用某一家运营商线路。所以BGP选出的路径不一定物理距离最短,但符合网络运营者预设的流量调度策略。这也是BGP配置里,策略优先级高于算法的原因。

BGP分为两种会话。eBGP是不同AS之间的邻居,iBGP是同一个AS内部的BGP会话。单个AS存在多台边界路由器时,内部依靠iBGP把外部学习到的路由同步到所有边界路由器。不然A入口获取的路由,B出口无法识别,流量进入之后无法正常转发。iBGP要求全互联,或者部署路由反射器简化架构,这也是大型网络BGP架构设计复杂度较高的原因。

普通用户日常感知不到BGP存在,但一旦故障,影响范围巨大。运营商错误通告不属于自身的网段,其他网络会把流量转发过去,造成大范围访问异常。BGP劫持、路由泄露问题,根源就是BGP信任模型过于开放。早期BGP默认信任邻居发布的路由,邻居宣称可达某个网段,其他设备直接录入路由表。后续出现RPKI机制,依靠加密签名验证AS发布网段的权限,不过部署率无法做到全覆盖,老问题依旧存在。

回到最初问题。从实现层面,BGP跑在TCP之上,归属应用层;从功能层面,它是网络层路由协议,为IP转发提供路由条目。描述成应用层的路由协议,最不容易产生歧义。它不传输用户业务数据,作用是让整个互联网互相知晓网段可达路径。可以把它想象成互联网邮政系统,各个区域之间互相交换地址簿。地址簿内容属于第三层范畴,传递地址簿的方式属于第七层。

免责声明:本文提供的方法与建议仅供技术参考,实际部署效果受机房环境、运营商线路、系统配置等多重因素影响。请在专业人员指导下操作,因自行操作导致的业务损失本站不承担责任。

相关推荐