10 2021 档案
摘要:BGP路由优选的首要条件是对应路由的下一跳必须可达,即只会在BGP路由表中对应路由有星号的路由上进行优选;满足下一跳可达的前提下,首先优选首选值(Preference_Value)最高的路由(该属性为私有属性,仅在本地有效,一般不常修改来影响路由选路);如果首选值一样,则对比本地优先级(Local_Preference),本地优先级最高的路由被优选;如果本地优先级一样,则比较聚合方式,聚合方式是手动聚合大于自动聚合,大于本地network宣告,大于引入宣告,大于从邻居学习到的路由;如果聚合方式一样,则比较AS_Path长度,AS_Path最短的路由被优选(这里的AS_Path最短是指经过的as数量最少,并非as号码长度);如果AS_Path长度一样,则比较起源属性,起源属性优先级是本地宣告大于引入宣告;如果起源属性也一样,则比较来自同一AS的路由,优选MED最小的路由;如果MED也一样,则比对邻居类型,邻居类型优选顺序是EBGP类型邻居大于IBGP类型邻居;如果邻居类型也一样,则优选AS内部IGP的开销最小的路由;即比较去往对应下一跳的开销;去往对应下一跳开销小的路由被优选;
阅读全文
摘要:BGP的防环机制主要从两种邻居类型来说,对于IBGP来说,主要依靠水平分割机制,即IBGP间,路由更新只传递一跳;对于EBGP来说,主要依靠AS_Path这个属性来防止环路,即收到路由更新的BGP路由器,发现AS_Path 里有自己的AS号,则对应路由会被丢弃;
阅读全文
摘要:bgp宣告路由,首先宣告的路由在本地路由表中可以查看到,即对于宣告者来说,宣告的路由必须是最优的路由(存放在ip路由表中的路由对于本地路由器来说就是最优路由),其次默认情况下BGP建立起邻居不会宣告任何网络,只有宣告者手动明确、精确宣告以后,对应路由才会被邻居学习到;邻居类型为IBGP,对应路由只传一跳(为了防止环路);EBGP邻居类型,是可以正常互相传递路由;EBGP类型邻居,在互传路由时会自动修改路由为自己,然后再宣告给对端邻居;而IBGP类型邻居,不会自动修改下一跳为自己,只有手动使用命令强制将对应路由修改为自己,然后传递给邻居;
阅读全文
摘要:BGP工作在应用层,其端口号为179;报文结构是7层封装,BGP报文主要由两种报文头部组成,公共头部和类型头部;公共头部主要用来描述bgp AS号,包头长度,报文类型,版本信息等等信息,类型头部主要用来描述不同类型的BGP报文相关属性;BGP报文类型有5种,分别是open包、update包、Notification包、keepalive和route-refresh;其中open包主要用来建立邻居使用,在邻居建立以后相互发送一次,后续不再发送;keepalive包主要作用是维护邻居关系,默认情况下bgp是每60秒发送一次keepalive包向邻居通告自己还“活”着;如果连续三个周期没有收到邻居的keepalive包,此时本端会认为邻居挂掉;update包主要用来路由更新,其包里的内容主要是用来描述更新的路由信息和属性;只要有路由更新对应都会向邻居发送更新;notification包主要用来发送当检测到错误,发送后关闭BGP连接的信息;Route-refresh包主要用来触发请求邻居重新通告路由;
阅读全文
摘要:不同AS之间使用非直连网络建立邻居需要修改对应报文的TTL值,原因是不同AS之间建立邻居发送包的TTL值为1,如果不是直连,对应非直连经过路由以后,对应报文的TTL值会减为0,对端收到TTL值为0的包,会认为该包无效,所以会导致邻居关系建立不起来;如果一段修改了TTL值,另一端未修改,那么会导致邻居关系非常不稳定,一会建立,一会断开;通常情况下我们建议ibgp类型邻居使用回环口建立邻居,ebgp使用物理口建立邻居;用回环口建立邻居有一个好处就是对应回环口只要ip地址不变,它几乎都是up的,也就是说在同一as内,推荐使用回环口建立邻居,因为回环口非常稳定;
阅读全文
摘要:BGP的前身EGP设计非常简单,只能在AS之间简单的传递路由信息,不会对路由进行任何优选,也没有考虑如何在AS之间避免路由环路等问题,因而EGP最终被BGP取代;相比于EGP,BGP更具有路由协议的特征,比如邻居的发现和邻居关系的建立;路由的获取,优选和通告;提供路由环路避免机制,并能够高效传递路由,维护大量的路由信息;在不完全信任的AS之间提供丰富的路由控制能力;
阅读全文
摘要:我们知道对于路由器来说,它最终依靠的是ip路由表来转发数据;对于去往同一网络的路由,优先级数字越小,表示优先级越高;优先级越高,对应也就表示路由越优先;即对应路由优先存放在路由表;如果优先级相同,则此时才会比对开销,开销越小的路由,对应路由优先存放在ip路由表中,即在数据包转发选路时,优先选择开销小的路由;如果优先级、开销都一样,则两个路由对应的链路,负载分担对应网络流量;
阅读全文
摘要:路由引入对我们来说应该不是很陌生,前边聊ospf时就提到外部路由;所谓路由引入就是指把原本不属于本路由协议的路由,通过import-route命令将对应路由引入至本路由协议,使得其他路由器能够通过本路由协议学习到相关路由;在ospf里我们把引入的路由叫外部路由,对应通过5类LSA在全网泛洪,对应引入外部路由的路由器叫ASBR;
阅读全文