IPv4用的BGP,IPv6用的BGP4+

    基于自治系统(AS)的路由协议。IGP是一个一个的小岛,BGP是把这些小岛连起来的跨海大桥。

AS不一样时,是eBGP连接,从eBGP邻居学到的本AS路由,直接丢弃,就像从邻居那里听到自家的事,不可信,丢掉。

AS一样时,是iBGP连接。从同AS邻居学到的路由,不告诉AS其它邻居,因为大家都在一个AS混的,不需要你告诉它。。

    GTSM通过检测TTL值,达到保护路由目的。TTL不对劲,说明路由不对劲,而且TTL值也可以避免数据包在网络一直游荡,为0了就直接丢弃。

    主要方法还是实践为主,遇到问题,再去看理论知识,这样得来的印象才最深刻。


BGP小小实验_第1张图片

*基本功能

    通过eNSP实验来学习,AS就是拥有相同选路策略的IP网络,如上图两块AS65008和AS65009。IBGP就是一个AS内的BGP,路由器B是不会把从A听到的关于AS65009的闲话告诉路由器D的,因为他们是一个公司AS65009的,这样会影响公司团结。

    从路由器C的GE0/0/0抓包,可以看到下面的数据包交互。

    路由器B的GE0/0/0向路由器C的GE0/0/0说:“keepalive,你要活着哦,亲爱的。”

    可以看到BGP报文使用的源端口是179,然后路由器C反过来说:“知道了,亲爱的。”而且也学路由器B那样说亲爱的要活着,路由器B也说知道了。貌似很无聊,但是这是心中有爱的表现,不然对方路由器挂了都不知道。两个路由器都叫speaker,而且互称peer(对等体)。

    路由器ID一般采用loopback地址,比如路由器A的1.1.1.1,路由器B的2.2.2.2.

    现在我想看到交换的各种报文,所以我先关掉了路由器C的GE0/0/0端口,但是路由器B上的bgp peer 路由器C还是连接着,这样不行,后面肯定会有办法解决这个问题(加快路由聚合速度)。实际上这是BGP peer会保持30s的连接,即使对方peer不可达,防止bgp不停震荡。

    现在先看BGP的五种报文,如果不看到实际包,肯定没什么印象。

    Open用来对等体连接,update用来交换路由,Notification用来中断连接,keepalive用来保持。Route-refresh刷新路由。

BGP小小实验_第2张图片

     BGP本身是个邻居路由协议,不发现路由,需要引进其它路由,import或者network两种方式,上面例子路由器A就引入import-route direct,直连路由 8.8.8.1。