什么是AS?
为了便于管理规模不断扩大的网络,将网络划分为不同的AS (Autonomous System自治系统)不同AS通过AS号区分,AS号取值范围1- 65535,其中64512 - 65535是私有AS号。
比如:中国移动163 AS号:4134.
中国电信CN2 AS号: 4809
中国网通AS号:9929
中国联通AS号: 9800.
中国教育网骨干网AS号: 4538.
AS之间传递路由
AS之间的连接需要使用直连链路,或者是通过运营商建立VPN进行逻辑连接AS之间可能是不同的组织机构,使用IGP协议传递路由信息将会有安全风险。因此我们在AS之间传递路由时使用BGP协议(边界网关路由协议Border Gateway Protocol)相较IGP协议,BGP协议有以下优势:
- BGP基于TCP工作(端口号179),因此只要能够建立TCP连接就可以建立BGP邻居关系;
- BGP能够承载上万条路由条目,而IGP仅能上千条;
- BGP路由器只传递路由条目,不会暴露AS内的拓扑信息,更加安全;
-
支持MPLS/VPN协议,用于传递客户VPN路由
BGP的特征
- RIP和BGP都是距离矢量路由协议,邻居之间直接传递路由,每条BGP路由都携带多种路径属性。
- 可以使用这些路径属性配置路由策略,实现灵活的路由选路,这是IGP协议无法做到的。
BGP协议的应用场景
- BGP协议在企业中的应用主要有以下两个场景
- 大型企业的内部,存在多个分支,每个分支属于一个AS,通过BGP协议在不同分支之间传递路由。
-
企业可以与运营商之间运行BGP协议,企业与运营商之间互相传递路由。
-
企业可以与运营商之间运行BGP协议,企业与运营商之间互相传递路由。
BGP的协议报文
BGP协议报文以单播的形式发送,BGP共有5种,其中路由是承载在Update报文中。BGP的有限状态机
一开始我们的BGP设备会是Idle的状态,在Idle的状态时,BGP设备不会接受任何邻居发来的建立请求,除非触发了BGP Start事件。
我们BGP在配置的时候,一开始可以去启用进程(router bgp ASID),当配置了BGP start事件激活了之后,就会进入Connect状态,会开始尝试去建立TCP连接,会从Ide状态变成Connect状态,如果此时成功建立了TCP连接,即对方做出了正确的回应,即此时设备的状态会从Connect状态变为Open-sent状态,当建立TCP连接失败时,设备会从Connect状态进入Active状态,此时Active状态会主动的尝试去建立TCP连接,在Connect状态时,会存在一个Connect-Retry的计时器,用来定时的尝试建立TCP连接。若建立TCP连接的过程中,发生了错误,也可能从Connect状态退回到Idle状态。在Active状态时,如果TCP连接建立成功,也会进入Open-sent状态,如果建立失败,也会存在一个Connect-Retry从Active退回到Connect状态。一般当配置出现问题时,经常会出现进入Active状态。Active状态如果发生错误,也会进入到Idle状态。
在Open-sent状态中,会去检查发送的Open报文,一旦发现双方报文中出现错误,就会从Open-sent状态返回到Idle状态,并且中断了TCP连接。如果报文正常,就可能从Open-sent状态进入到Open-confirm状态。在Open-confirm状态,会等待对方发送一个KeepAlive报文,如果当对方成功发送了一个KeepAlive报文,那么此时设备就会从Open-confirm进入到Established状态。如果对方发送的KeepAlive报文中有错误的话,那么也会从Open-confirm状态退回到Idle状态。因此最终的Established状态是最健康稳定的状态。如果在Established的状态出现错误,也会退回到Idle状态。
BGP对等体
BGP的邻居,我们叫做BGP对等体,也简称BGP peer。在同一个AS内的BGP peer,叫做IBGP peer(inside BGP),不同AS内的BPG peer,叫做EBGP peer(extend BGP)。
EBGP
互为EBGP peer的路由器彼此所属的AS号不同,EBGP peer一般基于直连接口建立。一般中间是广域网连接。通过Neighbor命令所指定的邻居IP地址要可达,TCP连接要能够正确建立。EBGP的路由管理距离为20,因为AS之间BGP比IGP更优。
IBGP
互为IBGP peer的BGP路由器属于同一个AS,IBGP peer 一般基于Loopback接口建立,peer之间可以跨越路由器,只要TCP连接要能够正确建立。IBGP的路由管理距离为200,因此AS内部IBGP更优。
BGP邻居表
BGP邻居表:包含了此台BGP路由器所有的邻居,以及他们之间的状态。
BGP默认每隔60秒发送一次BGP/TCP存活消息,保持时间为180秒,可以通过(show ip bgp summary)查看。
BGP路由表
每台BGP路由器独立维护一张BGP路由表,其包含了本地导入以及从BGP peer学习所有BGP路由。