BGP - 1,基本概念
1,BGP知识点
a)AS号:私有(64512-65535),公有(0-64511)。
b)什么时候使用BGP:有数据穿越本AS前往其他AS;本AS有多条到其他AS的连接;必须要做策略。
c)BGP路径矢量特征:BGP自治系统路径是无环路的。BGP路由器不接受路径列表中包含其自治系统号的路由更新。
d)BGP基于TCP(Port179),TCP是单播,使用滑动窗口确认,无需逐个确认后发更新分组,比OSPF,EIGRP效率高(它们使用1-to-1窗口)。
e)自治系统可能使用多种IGP,并采用多种度量值。
f)OSPF理论上支持1万条路由条目,ISIS理论上支持2万条。
g)IGP以路由器为单位确定下一跳(hop by hop),BGP以AS为单位确定下一跳(AS by AS)。
h)BGP的network宣告语句前缀必须完全和掩码一致,例如9.9.9.9/24不会接受,9.9.9.0/24会接受。
i)EBGP学来的20,IBGP学来的200,BGP希望AS内部由IGP自己搞定,AS之间的由BGP搞定。
j)EBGP邻居一般是直连,因为会查找直连路由。IBGP邻居无需直连,只要求TCP连通性。
k) AS内部,如果转发的是AS外部路由,都会先递归查找到达PE的路由,即实际上在AS内部,报文的转发路劲是根据目的PE设备来确定的,途径每一跳都这样,到了MPLS则直接打上标签了,中间黑洞路由器甚至无需知道该路由。
l) 关于BGP路由黑洞,trace的时候黑洞路由器应该是打****号的,甚至PE也会呈现*号,因为PE设备其实无需知道路由,因此完全可能没有ping发起者的路由(E传E时会自动改下一跳,I传I时一般手工指定next-hop-self,所以理论上BGP只需要有下一跳的路由即可),如果收到了TTL=1/0的报文,因为没路由不知道怎么回包,所以就打***号了,但后面其实又会有项目,并能ping通。另外,反过来,如果PE设备知道回包的路由,就会把EBGP之间的互联链路暴露出来,本来可能ping包发起者不知道该地址。这条可能理解有误,如果是黑洞路由器可能会根据标签转发至PE,PE再回包,会不会暴露P路由器地址呢?
2,协议比较
协议 | 内部/外部 | 类型 | 是否要层次化 | 度量值 |
ospf | 内部 | 链路状态 | 是 | 开销(思科上是开销即带宽) |
isis | 内部 | 链路状态 | 是 | 带宽(思科接口默认为10) |
eigrp | 内部 | 高级距离矢量 | 否 | 复合带宽+延迟 |
bgp | 外部 | 距离(路径)矢量 | 否 | 路径矢量,属性 |
rip | 内部 | 距离矢量 | 否 | 跳数 |
3,协议更新机制
触发更新:EIGRP,BGP
可以周期更新,也可以改为触发更新:RIP
周期更新和触发更新相结合:OSPF,ISIS
4,企业连到ISP方式,连接方案
连接方式 | 单宿 | 单链 |
双宿 | 双链路(客户路由器可以是一台,可以是两台) | |
多宿 | 单链路,双上联2个ISP | |
双多宿 | 双链路,双上联2个ISP | |
连接方案 | 每家ISP提供默认路由给企业(出自治系统的流量由IGP度量值决定,例如RIP选择离通过缺省路由跳数最少的路由器出,入由外部ISP决定) | |
每家ISP提供默认路由+部分路由给企业(对部分路由进行重发布,可以选择重发布的度量值避免次优路径) | ||
每家ISP提供全部路由给企业(需要建立全互联邻居关系,或者开启同步) |
5,基本概念
peer = neighbor : BGP邻居
bgp speaker : 运行BGP的路由器
EBGP:不同AS
IBGP:同一AS
BGP邻居不一定是直连,路由可达即可
BGP通过TCP建邻居,点到点协议,所以BGP都是单播更新,BGP只有单播地址没有组播地址