BGP 事例 1

来自深圳捷联讯通科技有限公司
跳转至: 导航搜索
下面是一个多线 BGP 的网络结构,该网络中一台路由器连接 ISP1 和 ISP2,可以实现负载均衡,也可以做链路主备配置。
30--1.jpg
路由器的本地连接了两个网段 10.1.1.0/24 和 10.1.2.0/24 ,并且通过 AS 30(用私网 IP 建立 BGP 互连)与两个 ISP 互连,在网络中
有 10.1.2.130 为服务器,BGP 过程是首先建立连接,将两个本地网段宣告给对方,然后将 ISP1 设为主连接,ISP2 连接为备用
注意:这个事例将不介绍路由器与本地网络和服务器的网络连接配置,主要以 BGP 事例为主。


配置 BGP Peer


这里我们的路由器,已经配置好了与两个 ISP 的网络参数,就直接配置路由器两个 ISP 之间的 BGP peer
#set our AS number
/routing bgp instance
set default as=30
#add BGP peers
/routing bgp peer
add name=toISP1 remote-address=192.168.1.1 remote-as=10
add name=toISP2 remote-address=192.168.2.1 remote-as=20
如果与对端建立连接,peer 下会显示 E (established)的标记,路由器将接收到两个 ISP 发布的路由
[admin@RB1100] /routing bgp peer> print
Flags: X - disabled, E - established
# INSTANCE REMOTE-ADDRESS REMOTE-AS 
0 E default 192.168.1.1 10 
1 E default 192.168.1.2 20
network 宣告和路由过滤
当 peer 连接后,就可以开始宣告我们的网络,并配置路由过滤,路由过滤是对一些不必要的路由进行限制
第一步宣告我们的网络
/routing bgp network
add network=10.1.1.0/24 synchronize=no
add network=10.1.2.0/24 synchronize=no
第二步指定哪些路由需要过滤
/routing bgp peer
set isp1 in-filter=isp1-in out-filter=isp1-out
set isp2 in-filter=isp2-in out-filter=isp2-out
in-filter(incoming-filter)负责接收到的路由过滤,out-filter(outgoing-filter)负责发出路由过滤,都需要通过 prefixes匹配
路径选择
在 filter 的链表中可以指定哪些路由被接受,那么路由被拒绝。BGP 可以通过 as-path 路径长度连接选择优路径(路径越短的 AS-Path
越优先),这里希望 ISP2 为备份链路,因此将使用到 BGP AS prepend 属性,增加 AS-path长度。由于我们的网络上 EBGP,对于 MED 而
言但不同的 AS 不做比较,修改 BGP AS prepend 也可以称为路径欺骗,这样 BGP 的路径欺骗是 MED 的替代解决方法。RouterOS 通过
set-bgp-prepend,也可以选择set-bgp-prepend-path 属性,BGP 选路属性还可以使用 bgp-local-pref 属性,bgp-local-pref 默认为
100,数值越高优先级越大。
向 ISP1 发布路由进行过滤,进入 routing filter 下,发布本地的 10.1.1.0/24 和 10.1.2.0/24 网络,并拒绝发布其他路由
/routing filter
#accept our networks
add chain=isp1-out prefix=10.1.1.0/24 action=accept
add chain=isp1-out prefix=10.1.2.0/24 action=accept
#discard the rest
add chain=isp1-out action=discard
同样想 ISP2 发布路由进行过滤,但这里需要设置 set-bgp-prepend 属性,增加 as-path 长度:
/routing filter
#accept our networks and prepend AS path three times
add chain=isp2-out prefix=10.1.1.0/24 action=accept set-bgp-prepend=3
add chain=isp2-out prefix=10.1.2.0/24 action=accept set-bgp-prepend=3
#discard the rest
add chain=isp2-out action=discard
由于我们到两个 ISP 是建立默认路由,所以不需要接收,两个 ISP 向我们发布的任何路由,直接配置为拒绝接收,设置两条默认
的静态路由,但到 ISP2 的默认路由 distance 设置为 30 作为备份链路,并开启网关 ping 检测
/routing filter
add chain=isp1-in action=discard
add chain=isp2-in action=discard
/ip route
add gateway=192.168.1.1 check-gateway=ping
add gateway=192.168.2.1 distance=30 check-gateway=ping


负载均衡设置


根据之前的 BGP 网络结构,需要实现到两个 ISP 的路由负载均衡,实现负载均衡有多种方式,下面我们通过设置路由器本地两个段分别
走不同的 ISP 路由实现。
30--2.jpg
将 10.10.1.0/24 走 ISP1,10.10.2.0/24 走 ISP2,当然两个 ISP 直接同时互为备份路由,具体实现配置如下: 向 ISP1 发布路由过滤规则:
/routing filter
#accept our networks and prepend second network
add chain=isp1-out prefix=10.1.1.0/24 action=accept
add chain=isp1-out prefix=10.1.2.0/24 action=accept set-bgp-prepend=3
#discard the rest
add chain=isp1-out action=discard
向 ISP2 发布路由过滤规则:
/routing filter
#accept our networks and prepend first network
add chain=isp2-out prefix=10.1.1.0/24 action=accept set-bgp-prepend=3
add chain=isp2-out prefix=10.1.2.0/24 action=accept
#discard the rest
add chain=isp2-out action=discard
以上配置是 BGP 负载均衡的一种方法。