“动态BGP”和“静态BGP”,经常有人疑惑关于这两种有什么区别?今天快速云帮大家简单介绍下。
从传统多线到BGP
不知道大家是否还记得当年联网打游戏,联通的兄弟和电信的兄弟,完全没法配合,延迟吓 死人。这是由于每个运营商都有自己的网络,运营商之间互联点是比较少的,带宽也不大,跨网 连接都要迂回到连接点还经常拥塞。
很多应用为了应付这种情况,都申请了多线,一根电信一根联通一根移动。应用在每一个运 营商都申请了一个IP地址,多个IP地址共同映射到同一个内网IP上。电信访问走电信的IP,移动 访问走移动的IP,联通走联通自己的IP。
这样确实是能解决跨网的问题,但是随着运营商数量越来越多(长城、教育网等),IP的维 护越来越复杂,DNS的智能解析要求越来越高。
我们是否有办法申请一个IP地址,让每一个运营商网络都有这个IP的路由,并且都指向我们 的应用,不再跨网?即上图不再是IP1~IP3,而只有IP1。
BGP类型的EIP就是专门针对处理这个问题的。
例如某段IP地址,在多家运营商同时广播,每家运营商网络里面都有这个IP的路由并指向同 一个地方。这类IP地址就是BGP类型的IP地址。
传统多线,如果应用只申请了IP1,在联通发布,则电信的访问者必须先走到电信与联通互 联口上,进入联通网络才能访问到IP1。
BGPIP,每一家运营商内网都有IP1的路由并直接指向网内的某出口,不必跨网。
在BGP的场景下,运营商的路由管理是比之前复杂的。老场景下,同一个IP段的路由只有1 条;BGP的场景下,本网内有1条,还可能从其他网学到路由。本地的路由表维护量会翻倍,优 先走网内,次优跨网。
这里有个点。既然网内已经有了一条,为何还需要从其他运营商那里学路由?
如果不学,当网内路由出现问题,路由消失业务就断了;学了以后,网内故障,可以迂回到 其他运营商;
路由在运营商之间交叉穿透,这会导致运营商网络维护复杂度更高,运营商缺省是不穿透 的,需要客户买单。
动态BGP与静态BGP
刚才说了运营商网内的事情,但IP地址其实是归企业所有的,运营商只是代播。那IP地址到 底是如何发布到所有运营商的?作为一个企业,是如何跟运营商对接的?
所说的动态和静态,其实就是企业跟运营商对接的方式和IP广播点上有差异。
动态BGP
企业的路由器跟所有的运营商之间建立EBGP,IP地址在企业的路由器上发布,运营商只负 责学习并传播。若企业路由器跟运营商之间线路中断,运营商没有学到路由,网内路由撤销。
这就是动态BGP。
动态BGP的好处就是,路由发布点是在企业的路由器上,企业可以自己控制各个运营商的路 由优先级。当某一家运营商网络抖动厉害时,企业可以主动取消对他发布的路由,而使得该运营 商内网的访问者迂回其他运营商访问,旁路故障点。
静态BGP
企业的路由器跟运营商之间只是普通的IP对接,不需要建立BGP。IP地址在运营商的网络里 面发布以后,通过静态路由的方式将网段指给企业的路由器。线路的中断,企业的路由器的故 障,跟运营商的IP发布情况没有关联关系。
静态BGP配置简单,而且跟运营商之间没有动态协议联动。对运营商来说,自己网内的路由 都是自己发的,不需要依赖企业的发布。所以静态BGP比动态BGP便宜。
回包怎么回?
刚才说的都是入方向的流量,那出方向怎么出呢?因为源地址都是一样的,目的地址也都是 随机的,如何知道该走哪家运营商出去呢?
传统多线,出方向的报文,会选择一家运营商,或者通过链路负载均衡等设备选择。
动态BGP,因为企业会学习到各个运营商的细化路由,回包匹配路由回程即可
静态BGP,还是需要单独找设备跟运营商建立EBGP,收取运营商的路由,根据收到的路由做路由策略回程