BGP基础配置
[R1]bgp 123 #指定设备所处的AS号
[R1-bgp]router-id 1.1.1.1 # 建议配置为环回接口地址
[R1-bgp]peer 3.3.3.3 as-number 123 #指定对等体的ip地址与AS号
#指定用于建立BGP会话的源接口或源地址:
[R1-bgp]peer 3.3.3.3 connect-interface LoopBack 0 #缺省情况使用的是出接口的IP地址为源地址
BGP引入路由
● BGP本身不发现路由,因此需要将其他路由引入到BGP路由表
● BGP引入路由支持Import和Network两种方式:
(1)Import方式时能按协议类型,将RIP、OSPF等协议的路由引入到BGP表中,还可引入直连和静态路由;
(2)Network方式是逐条将IP路由表中已经存在的路由引入到BGP路由表中。
● BGP中的Network命令与IGP中的Network是大不相同的,BGP中的Network用于将路由通告到BGP,而不是在接口上**BGP。
● BGP在引入IGP的路由时,可以使用路由策略进行路由过滤和路由属性设置。
BGP配置实例:
#此处省去OSPF的配置
R1的配置如下:
[R1]bgp 123
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 10.1.23.3 as-number123
R3的配置如下:
[R3]bgp 123
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 10.1.12.1 as-number 123
[R3-bgp]peer 10.1.34.4 as-number 400
R4的配置如下:
[R4]bgp 400
[R4-bgp]router-id 4.4.4.4
[R4-bgp]peer 10.1.34.3 as-number 123
[R4-bgp]network 4.4.4.4 32
查看R3的BGP表:
R3已经学习到R4传递过来的4.4.4.4/32,并且该路由被优选(Best),路由前面有>标记,该路由将会被加载到路由表中
查看R1的BGP表:
R1学习到R3传递过来的4.4.4.4/32后,发现路由的Next-Hop吓一跳是10.1.34.4,但是R1在本地路由表中没有到达10.1.34.0/24网段的路由,因此BGP路由Next-Hop不可达,该条BGP路由也就不能被优选,更不会被加载到路由表。该条路由前面没有*号,代表路由不可用。
修改BGP Next-Hop下一跳为自身:
命令:
[R3-bgp]peer 10.1.12.1 next-hop-local
● 当BGP路由在一个AS内部传递的时候,属性不会发生改变
● BGP是AS-by-AS的路由协议,而不是Router-by-Router的路由协议。在BGP中,Next-Hop属性值并不意味着是下一台路由器,而是到达下一个AS的IP地址
● 当路由器将一条BGP路由传递给自己的EBGP对等体时,缺省情况下该路由的Next-Hop属性为其接口IP地址。
(1)本例中R4将4.4.4.4/32路由通告给R3,该路由的Next-Hop属性为10.1.34.4,也就是R4的地址,当路由器将一条学习自EBGP对等体的路由传递给自己的IBGP对等体时,它会保持原有的Next-Hop属性不变。使用peer x.x.x.x next-hop-local 命令可以将路由的Next-Hop修改为自己。
配置完peer 10.1.12.1 next-hop-local 命令后
查看R1的BGP表:
可看到R3将EBGP路由4.4.4.4/32传递给R1时,将路由的吓一跳属性改成了自身的IP,而这个IP对于R1来说是路由可达的,因此被加载到路由表中。
指定更新源IP
● 指定BGP连接所使用的建立TCP连接会话的源接口和源地址
[R1-bgp]peer x.x.x.x connect-interface LoopBack 0
缺省情况下会使用报文出接口作为建立会话的源地址
● 在部署IBGP对等体关系时,建议使用Loopback地址作为更新源地址,Loopback接口非常稳定,而且可借助AS内的IGP和冗余拓扑来保证可靠性
● 在部署EBGP对等体关系时,建议使用直连出接口的IP地址作为更新源地址,若使用Loopback接口建立,则应注意EBGP多条问题
修改R1和R3使用Loopback接口建立对等体:
注意:务必要使得R1及R3的Loopback接口路由可达
R1配置:
[R1-bgp]peer 3.3.3.3 as-number 123
[R1-bgp]peer 3.3.3.3 connect-interface LoopBack 0
R3配置:
[R3-bgp]peer 1.1.1.1 as-number 123
[R3-bgp]peer 1.1.1.1 connect-interface LoopBack 0
EBGP多跳配置
● 在EBGP之间,所发送的BGP报文的TTL默认为1跳,因此如果EBGP对等体之间存在多条,则需修改最大条数限制。
命令如下:
[R3-bgp]peer x.x.x.x ebgp-max-hop [hop-count]
如果没有指定具体参数,则为255
要求:R1能够ping通R4的Loopback接口BGP地址
分析:
R1去ping4.4.4.4/32时,当路由到达R2路由器,R2上没有到达4.4.4.4/32的路由,故丢弃数据包,导致ping不通。
解决思路:
首先在R1/R2/R3上将各自的Loopback接口的IP地址通告到OSPF中,R2也运行BGP协议,并于R3建立IBGP对等体关系,则R2就可以学习到R4传递过来的4.4.4.4/32这条BGP路由,并在R1上通告10.1.12.0/24这个网段,确保R4能够学习到10.1.12.0/24这个网段,作返程路由。
R2的配置如下:
[R2]bgp 123
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 3.3.3.3 as-number 123
[R2-bgp]peer 3.3.3.3 connect-interface loopback 0
R3的配置如下:
[R3]bgp 123
[R3-bgp]peer 2.2.2.2 as-number 123
[R3-bgp]peer 2.2.2.2 connect-interface LoopBack 0
[R3-bgp]peer 2.2.2.2 next-hop-local
在R1上通告10.1.12.0/24:
[R1-bgp]network 10.1.12.0 24
查看R1的BGP表:
查看R4的BGP表:
测试: