一、基礎配置
1、基本功能配置
peer as-number命令用來配置指定對等體(組)的對端AS號;
peer connect-interface命令用來指定發送BGP報文的源接口,並可指定發起連接時使用的源地址;如果是 EBGP連接,還要配置peer ebgp-max-hop命令,允許EBGP通過非直連方式建立鄰居關係。
peer next-hop-local命令用來設置向IBGP對等體(組)通告路由時,把下一跳屬性設爲自身的IP地址。
group group-name [external| internal] 命令用來創建對等體組,external創建EBGP對等體組,internal創建IBGP對等體組。
2、配置local-preference
peer 24.1.1.4 route-policy 10 import //配置引入route-policy
route-policy 10 permit node 10
if-match ip-prefix 10
apply local-preference 50 //配置本地優先級
route-policy 10 permit node 20
ip ip-prefix 10 index 10 permit 10.0.2.0 24
peer route-policy爲BGP視圖命令用來對來自對等體(組)的路由或向對等體(組)發佈的路由指定Route-Policy,對接收或發佈的路由進行控制。
3、配置BGP MED屬性
peer 46.1.1.4 route-policy MED export
route-policy MED permit node 10
if-match ip-prefix 10
apply cost 100 //配置MED值
route-policy MED permit node 20
ip ip-prefix 10 index 10 permit 10.0.1.0 24
4、配置BGP團體屬性
peer 68.1.1.6 route-policy COMM export
peer 68.1.1.6 advertise-community
route-policy COMM permit node 10
if-match ip-prefix 10
apply community no-export //配置團體屬性爲no-export
route-policy COMM permit node 20
ip ip-prefix 10 index 10 permit 10.0.3.0 24
5、配置BGP AS_Path屬性
bgp 200
peer 45.1.1.5 default-route-advertise //用來設置給對等體(組)發佈缺省路由。
bpg 300
peer 45.1.1.4 route-policy AS_PATH import
route-policy AS_PATH permit node 10
if-match as-path-filter AS_Filter
ip as-path-filter AS_Filter deny _100|400$
ip as-path-filter AS_Filter permit .*
peer default-route-advertise命令用來設置給對象體發佈缺省路由。
6、配置BGP負載分擔
maximum load-balancing ,bgp視圖命令用來設置等價路由的最大條數
maximum load-balancing [ ebgp|ibgp ] number ,ebgp:僅EBGP路由參與負載分擔;ibgp:僅IBGP路由參與負載分擔;number:BGP路由表中最大等價路由條數。
7、配置BGP認證
bgp 100
peer 2.2.2.2 password cipher Huawei
peer 3.3.3.3 password cipher Huawei
二 基礎案例分析
1、案例1
(1)拓撲圖:
(2)基礎配置
拓撲描述如下:
S4的G0/0/1、G0/0/2、G0/0/3屬於VLAN 10;S4與R1、R1與R2通過直連接口建立EBGP鄰居關係;R2與R3通過物理接口建立IBGP鄰居關係;R2和R3的迴環口在AS300中進行通告;
基礎配置如下:
R1:
int g0/0/0
ip add 10.0.134.1 24
int g0/0/1
ip add 10.0.12.1 24
bgp 100
peer 10.0.134.254 as-number 200
peer 10.0.12.2 as-number 300
R2:
int g0/0/0
ip add 10.0.134.2 24
int g0/0/1
ip add 10.0.12.2 24
int lo0
ip add 2.2.2.2 32
bgp 300
peer 10.0.12.1 as-number 100
peer 10.0.134.3 as-number 300
network 2.2.2.2 255.255.255.255
R3:
int g0/0/0
ip add 10.0.134.3 24
int lo0
ip add 3.3.3.3 32
bgp 300
peer 10.0.134.2 as-number 300
network 3.3.3.3 255.255.255.255
S4:
vlan 10
port-group group member g0/0/1 to g0/0/3
port link-type access
port default vlan 10
quit
int vlan 10
ip add 10.0.134.254 24
bgp 200
peer 10.0.134.1 as-number 100
(3)需求配置
需求如下:
由於業務需要,S4的G0/0/2和G0/0/3實施端口隔離,請確保網絡能夠正常互訪。
S4:
int g0/0/2
port-isolate enable
int g0/0/3
port-isolate enable
配置ARP VLAN內代理,使得R2與R3可以正常ping通,
S4:
int vlan 10
arp-proxy inner-sub-vlan-proxy enable
配置完成後,R2、R3恢復ping通:
此時,R2上bgp路由表如下:
但此時,R2無法ping通3.3.3.3,因爲S4上BGP路由表如下,S4收到報文後,會走三層轉發直接丟給R1(因爲配置了vlan內arp代理,會通過查詢路由表走三層轉發,而不是正常的二層轉發丟給R3),從而形成環路。
需要在S4上修改從R1引入的路由下一跳變爲10.0.134.3,即可讓R2的ping包到達R3的3.3.3.3地址。R3通過直連路由和IBGP路由,通過S4的ARP代理轉發回ping包,從而實現互通。通過配置route-policy,使得S4在引入路由時,改變路由下一跳。(其實在S4上直接添加一條去往3.3.3.3的靜態路由就可以達到同樣效果)。
bgp 200
peer 10.0.134.1 route-policy changenexthop import
#
route-policy changenexthop permit node 10
if-match ip-prefix 10
apply ip-address next-hop 10.0.134.3
route-policy changenexthop permit node 20
#
ip ip-prefix 10 index 10 permit 3.3.3.3 32
配置完成後,R2正常ping通3.3.3.3。
2、案例2
(1)拓撲圖:
描述如下
R5與R3和R4建立EBGP鄰居關係,R5通告10.0.X.0/24,將傳遞給AS 300的路由10.0.0.0/24標記community爲400:1;其他各相連路由器間建立BGP鄰居關係;路由10.0.0.0/24不能穿越AS 300且R4需繼承原有的community屬性,禁用過濾,在R4上操作;AS 100和AS 200訪問網絡10.0.1.0/24時,優選經過AS 300的路徑。
(2)基礎配置
R1:
int g0/0/0
ip add 192.168.12.1 24
int g0/0/1
ip add 192.168.13.1 24
bgp 100
peer 192.168.13.3 as-number 200
peer 192.168.12.2 as-number 300
R2:
int g0/0/0
ip add 192.168.12.2 24
int g0/0/2
ip add 192.168.24.2 24
bgp 300
peer 192.168.12.1 as-number 100
peer 192.168.24.4 as-number 300
peer 192.168.24.4 next-hop-local
R3:
int g0/0/1
ip add 192.168.13.3 24
int g0/0/2
ip add 192.168.35.3 24
bgp 200
peer 192.168.13.1 as-number 100
peer 192.168.35.5 as-number 400
R4:
int g0/0/0
ip add 192.168.45.4 24
int g0/0/2
ip add 192.168.24.4 24
bgp 300
peer 192.168.45.5 as-number 400
peer 192.168.24.2 as-number 300
peer 192.168.24.2 next-hop-local
R5:
int g0/0/0
ip add 192.168.45.5 24
int g0/0/2
ip add 192.168.35.5 24
int lo0
ip add 10.0.0.5 24
ip add 10.0.1.5 24 sub
bgp 400
peer 192.168.45.4 as-number 300
peer 192.168.35.3 as-number 200
network 10.0.0.0 24
network 10.0.1.0 24
(3)需求配置
R5通告10.0.X.0/24,將傳遞給AS300的路由10.0.0.0/24標記community爲400.1
R5:
bgp 400
peer 192.168.45.4 route-policy changecomm export
peer 192.168.45.4 advertise-community
#
route-policy changecomm permit node 10
if-match ip-prefix 10
apply community 400:1
route-policy changecomm permit node 20
#
ip ip-prefix 10 index 10 permit 10.0.0.0 24
在R2上dis bgp routing-table community ,查看bgp community屬性
路由10.0.0.0/24不能穿越AS300且R4需繼承原有的community屬性,禁用過濾,在R4上操作:
R4:
bgp 300
peer 192.168.24.2 route-policy addcomm export
peer 192.168.24.2 advertise-community
#
route-policy addcomm permit node 10
if-match community-filter 1
apply community no-export additive //additive添加該屬性,表示繼承原有屬性,不添加該參數會導致會丟失原有的community屬性
#
route-policy addcomm permit node 20
#
ip community-filter 1 permit 400:1
配置完成後,R2上的10.0.0.0的community屬性增加了no-export,而且R1上的10.0.0.0/24這個路由條目下一跳變成只有R3的地址:
AS 100 和AS 200訪問網絡10.0.1.0/24時,優選經過AS 300的路徑
R3:
bgp 200
peer 192.168.35.5 route-policy changeaspath import
#
route-policy changeaspath permit node 10
if-match ip-prefix 20
apply as-path 400 400 400 additive //在AS路徑中添加額外的AS號 ,從而改變BGP選路
#
route-policy changeaspath permit node 20
#
ip ip-prefix 20 index 20 permit 10.0.1.0 24
配置完成後,來自R5的路由AS-path比來自R1的AS-path路徑還長,來自R1的路由成爲最優路由。