面试问题收集笔记-BGP

1.BGP报文有哪些?分别有什么作用?

(1)open报文:用于建立BGP对等体连接。
(2)update报文:用于在对等体交换路由信息。
(3)Notification报文:用于中断BGP连接,报告(错误报告),用于通告BGP错误
(4)Keepalive报文:用于保持BGP连接,默认60秒发送一次,hold down时间180,时间不一致不影响邻居关系建立,双方只会发送hold时间,若双方hold时间不一致时,选较小值,不会发送keepalive时间
(5)Route-refresh报文:用于改变路由策略后请求重新发送路由信息,只有支持route-refresh功能的设备才会响应发送此报文。

2.BGP为什么要使用TCP作为底层连接?

BGP是运行在AS之间传递路由,AS之间是广域网链路,广域网链路可能会出现丢失或拥塞的情况,需要用TCP来保证传递的可靠性。

3.BGP公认必遵属性

1.Origin属性
2.AS-path属性
3.Next-hop

4.BGP防环机制

IBGP:IBGP水平分割,通过一个IBGP邻居学习的路由不能传递给其他的IBGP邻居(IBGP只传一跳)
EBGP:AS-path防环,当一条路由传递出某个AS时,在AS-path属性中在增加自身所属AS号,所有路由器默认不接收AS-path包含自身AS号的路由信息。

5.IBGP 为什么采用全互联?不采用全互联怎么部署?

由于IBGP的水平分割导致一个路由器收到的一条BGP路由不能传递给其他IBGP的邻居。这样的话,如果要让一个iGp中所有路由器都要可以给别的路由器传递BGP路由的话,就需要建立全互连这样的邻居关系就是每个路由器两两之间都要建立邻居,这样才能解决那个数据层面路由黑洞的问题。

6.路由黑洞是什么?怎么样解决?

路由黑洞:在查找路由表发现没有去往目标的路由条目时会将数据包丢弃。
对BGP来说由于存在iBGP水平分割规则,只把路由传递一跳,这是一种防环机制,所以在BGP的设计上有些设备就不会运行BGP。
解决办法:
1.AS内设备物理全互联(成本太高一般不用)
2.在AS内IBGP的对等体邻接关系的全互连,逻辑上形成Full Mesh
将EBGP的路由在边缘路由器上把Next-hop 设置为自己的地址
3.将AS内部的边缘路由器上的BGP路由重新分发进IGP中
4.在AS内部的边缘路由器之间建立Tunnel。
5.在AS内所有路由器上启用MPLS。