BGP的基础配置

一、 BGP的基础配置

【1】 建立邻居关系—BGP基于单播进行建邻和沟通,故需要管理员手工指定邻居的ip地址;
1) 使用直连接口ip地址来建立EBGP邻居关系
[r1]bgp 1 启动时需要定义真实的AS号,没有多进程概念
[r1-bgp]router-id 1.1.1.1 建议手工配置RID,–手工—环回最大值—物理接口最大值
[r1-bgp]peer 12.1.1.2 as-number 2 对端IP地址,及对端所在的AS号

2)实际工程中,一个AS的内部正常具有较为复杂的网络拓扑结构,设备到设备间存在大量的备份和负载均衡;因此建立IBGP邻居关系时,建议使用双方的环回接口来作为源/目IP地址;
[r3]bgp 2
[r3-bgp]router-id 3.3.3.3
[r3-bgp]peer 2.2.2.2 as-number 2
一旦使用环回接口作为目标ip地址时,也应该修改源为本地的环回接口ip地址
[r3-bgp]peer 2.2.2.2 connect-interface LoopBack 0

3) 若EBGP邻居间存在多条直连链路时,也建议使用环回接口来建立;
「1」 IP可达
[r4]ip route-static 5.5.5.0 24 45.1.1.2
[r4]ip route-static 5.5.5.0 24 54.1.1.2
「2」建立BGP邻居关系
[r5]bgp 3
[r5-bgp]router-id 5.5.5.5
[r5-bgp]peer 4.4.4.4 as-number 2
[r5-bgp]peer 4.4.4.4 connect-interface LoopBack 0
「3」BGP规定EBGP邻居间默认所有的BGP数据包TTL值为1,导致环回建立邻居关系服务正常
[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2

当两端邻居建立配置完成后,将进行tcp的三次握手,建立TCP的会话;
[r1]display tcp status
TCPCB Tid/Soid Local Add:port Foreign Add:port VPNID State
b4ca4bc8 164/8 12.1.1.1:179 12.1.1.2:50042 0 Established

当TCP会话建立后,BGP协议基于会话收发一次open报文,建立邻居关系,生成邻居表:
[r1]display bgp peer
BGP local router ID : 1.1.1.1
Local AS number : 1
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
12.1.1.2 4 2 6 7 0 00:04:29 Established 0

二、 BGP的路由宣告

BGP协议本身不计算生成路由条目;负责转发从其他BGP邻居传递过来的路由条目;
同时可以将本地路由表中任意路由宣告到BGP协议中来;
BGP宣告配置时,只能宣告本地路由表中的路由条目,且宣告配置中网络号的掩码必须和路由表中的记录完全的一致;
[r1]bgp 1
[r1-bgp]network 1.1.1.0 24

当BGP设备进行宣告配置后,本地生成BGP表:装载本地发出及接收到所有BGP路由
[r1]display bgp routing-table
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 1.1.1.0/24 0.0.0.0 0 0 i
状态 目标网络号 属性
*表示可用 >表示条目优秀—可以加表,可以传递(共享给本地的其他邻居)
状态处的i表示该条目通过IBGP邻居关系学习
不优的原因:1、下一跳不可达(因为AS-BY-AS
[r2]bgp 2
[r2-bgp]peer 3.3.3.3 next-hop-local) 将BGP路由传输给邻居3.3.3.3时修改下一跳属性为本地(2.2.2.2)
条目传递给本地的ebgp邻居,自动修改属性,包括下一跳为本地;

三、有条件的打破IBGP的水平分割;

IBGP水平分割—避免IBGP环路—从一个IBGP邻居处学习到的路由条目不能传递给本地的其他IBGP邻居;
因为BGP可以非直连建邻,故正常一台运行了BGP协议的路由器,均存在EBGP邻居,需要从其他AS学习路由条目,再共享到内部AS时,由于水平分割的现在,需要和本地AS内所有的BGP设备建立IBGP邻居关系;IBGP邻居关系的数量成指数上升;

有条件打破IBGP水平分割— 有条件 – 在管理员确定网络无环的前提下,人为的打破水平分割限制建设邻居关系的数量;
无环的核心思想为AS-BY-AS规则;一条条目在AS内部传递时其属性默认不变化;

【1】 路由反射器
3种角色,RR(反射器) 客户端 非客户端
3者构建一个簇;可以理解为RR为中心站点,客户端或非客户端是分支站点
要求所有分支与中心必须是IBGP邻居关系;
在一个簇中至少存在一台客户端;

规则:
1、 RR从一台EBGP邻居处学习到的路由可以传输给本地的客户端、非客户端、其他EBGP邻居
2、 RR从一台客户端邻居处学习到的路由,可以传输给本地的其他客户端、非客户端、其他EBGP邻居
3、 RR从一台非客户端邻居处学习到的路由条目,可以传输给本地的客户端,其他EBGP邻居;不得传输给本地的其他非客户端;
注意:若路由条目不优,不具有传递性;反射器也无法反射路由;

[r3-bgp]peer 2.2.2.2 reflect-client
该指令的作用,是让2.2.2.2成为本地的客户端,同时本地成为路由反射器;

【2】 联邦
将一个真实的大AS,逻辑的分为多个小AS;小AS的编号建议为私有编号;
小AS间构建联邦内的EBGP邻居关系,可以向真实EBGP关系一样传递路由条目,但不修改属性; 对于该大AS外的其他AS,是不知道内部的小AS情况;

  1. 所有配置全部基于小as号进行
    [r3]bgp 64512
    [r3-bgp]router-id 3.3.3.3
    [r3-bgp]pe 2.2.2.2 as-number 64512
    [r3-bgp]pe 2.2.2.2 connect-interface LoopBack 0
    [r3-bgp]pe 4.4.4.4 as-number 64513
    [r3-bgp]pe 4.4.4.4 connect-interface LoopBack 0
    [r3-bgp]peer 4.4.4.4 ebgp-max-hop 2

2)联邦内所有运行BGP协议的设备均声明自己所在的大AS号
[r2]bgp 64512
[r2-bgp]confederation id 2
3)小AS间互指peer;在联邦内的ebgp邻居关系间的两台设备,互相定义对端的小AS号;
[r4-bgp]confederation peer-as 64512

切记:华为设备,必须先定义联邦的id,和互相小AS号后再配置邻居关系建立的命令;
在实际的工程案例中,联邦和反射器是同时被使用,降低配置量;

猜你喜欢

转载自blog.csdn.net/Han_V_Qin/article/details/112710661