BGP路由协议
边界网关协议BGP(Border Gateway Protocol)是一种实现自治系统AS(Autonomous System)之间的路由可达,并选择优选路由的距离矢量路由协议。
AS(Autonomous System,自治系统)是指由同一个技术管理机构管理、使用统一选路策略的一些路由器的集合。
AS的内部使用IGP来计算和发现路由,同一个AS内部的路由器之间是相互信任的,因此IGP的路由计算和信息泛洪完全处于开放状态,人工干预很少。
不同AS之间的连接需求推动了外部网关协议的发展,BGP作为一种外部网关协议,用于在AS之间进行路由控制和优选。
IGP 是运行在AS 内部的路由协议,主要有RIP、OSPF 及IS-IS,IGP 着重于发现和计算路由。
EGP 是运行于AS 之间的路由协议,现通常都是指BGP,BGP 是实现路由控制和选择最好的路由协议。
BGP是外部路由协议,用来在AS之间传递路由信息
是一种增强的距离矢量路由协议
可靠的路由更新机制(路由的获取,优选和通告)(传输协议:TCP,端口号179;无需周期性更新;路由更新只发送增量路由;周期性发送keepAlive报文检测TCP的连通性)
丰富的Metric度量方法
从设计上避免了环路的发生,提供路由环路避免机制,并能够高效传递路由,维护大量的路由信息;
在不完全信任的AS之间提供丰富的路由控制能力。
为路由附带属性信息
支持CIDR(无类别域间选路)
丰富的路由过滤和路由策略,能够灵活的进行路由选路
运行在不同AS之间的BGP路由器建立的邻居关系为EBGP(External BGP)邻居关系。
运行在相同AS内的BGP路由器建立的邻居关系为IBGP(Internal BGP)邻居关系。
BGP报文有五种类型:
(其中Keepalive报文为周期性发送,其余报文为触发式发送)
Open:负责和对等体建立邻居关系。
KeepAlive:该消息在对等体之间周期性地发送,用于保持BGP连接。
Update:该消息被用来在BGP对等体之间传递路由信息。
Notification:当BGP Speaker检测到错误的时候,就发送该消息给对等体。
Route-refresh:用来通知对等体自己支持路由刷新能力;用于在改变路由策略后请求对等体重新发送路由信息。只有支持路由刷新(Route-refresh)能力的BGP设备会发送和响应此报文。
第一种方法是通过Network 命令:路由器将通过Network 将IP 路由表里的路由信息注入到BGP 的路由表中,并通过BGP 传递给其他对等体。通过Network 命令注入到BGP 路由表里的路由信息必须存在于IP 路由表中。
第二种方法是通过Import 命令把其他协议的路由信息注入到BGP 路由表中,通过Import 注入的路由信息通过组合策略共同使用。
BGP通告原则之一 : 仅将自己最优且有效(valid,即路由条目前有*标识)(best,即路由条目前有>标识)的路由发布给邻居。
BGP通告原则之二 : 通过EBGP获得的最优路由发布给除路由获取端以外的所有BGP邻居(包括EBGP邻居和IBGP邻居)
BGP通告原则之三 : 通过IBGP获得的最优路由不会发布给其他的IBGP邻居(水平分割)
BGP通告原则之四 : BGP与IGP同步(从IBGP邻居学来的路由是否发布给BGP邻居,取决于该路由是否也能通过IGP得知,即BGP和IGP同步)
本地始发的路由都是最优且有效路由(通过network和import注入的路由等),都是会被通告给邻居路由器的,包括IBGP邻居与EBGP邻居。
BGP路径属性是一组描述BGP前缀特性的参数
BGP路径属性可以被分为四大类:
公认必遵 (Well-known mandatory)
公认任意 (Well-known discretionary)
可选过渡 (Optional transitive)
可选非过渡 (Optional non-transitive)
Origin:起点属性。定义路由信息的来源,标记一条路由是怎样成为BGP路由的。
As_PATH:AS路径属性。是路由经过的AS的序列,即列出此路由在传递过程中经过了哪些AS。它可以防止路由循环,并用于路由的过滤和选择。
Next hop:下一跳属性。包含到达更新消息所列网络的下一跳边界路由器的IP地址。
MED属性:当某个AS有多个入口时,可以用MED属性来帮助其外部的AS选择一个较好的入口路径。一条路由的MED值越小,其优先级越高。
Local-Preference:本地优先级属性。用于在AS内优选到达某一目的地的路由。反映了BGP Speaker对每条BGP路由的偏好程度。属性值越大越优。
Community:团体属性。团体属性标识了一组具有相同特征的路由信息,与它所在的IP子网或自治系统无关。
BGP路由器将路由通告给邻居后,每个BGP邻居都会进行路由优选,路由选择有三种情况:
一般来说,BGP计算路由优先级的规则如下:
当BGP的邻居关系无法建立时,可以从以下几点进行检查
(1)TCP 179 端口被禁用(ACL过滤了)
(2)没有IP 连通性。
(3)OPEN 消息参数不正常。
(4)EBGP/IBGP 配置有误。
(5)物理层以及其他故障。
BGP路径属性的作用?BGP发展到现在为止总共有多少种属性?
BGP是一个路由选择策略工具,区别于IGP,BGP目的是传递路由而不是发现路由。而BGP的路径属性就是一组描述BGP前缀特性的参数,让BGP可以很好的控制路由信息的传递。而BGP4发展到现在为止,总共有16种路径属性。
AS_PATH属性是怎样防止路由环路?
AS_PATH属性列表以相反的顺序列出了一条前缀先后经过的AS,每经过的一个AS,该AS号会被放入AS_PATH列表的最前面(开始处)。如果在路由更新消息中发现自己所在的AS号已经被包含在AS_PATH属性中,则表明该路由之前曾经通过该AS或者是源自于该AS,为避免路由环路,将此路由信息丢弃。
MED与LOCAL_PREF属性的区别是什么?
MED主要作用在EBGP对等体上,而LOCAL_PREF则主要作用在IBGP对等体上。换过另外一种说法就是,MED通常通过EBGP对等体向外发送,从而实现对对端AS入流量的控制;而LOCAP_PREF通常向IBGP对等体发送,从而实现对本地AS出流量的控制。