一、基础配置
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的路由成为最优路由。