MPLS BGP多站点反射器

拓扑分析

1、现有一公司通过部署MPLS BGP专线,总公司作为数据中心提供服务,各分公司互访的流量必须通过总公司内进行监控过滤后再进行转发。

2、规定所有公司互访流量必须从PE1设备的G0/0/0.10口进入,从G0/0/0.20口发出

3、CE与PE之间是EBGP关系,PRR与各PE之间是IBGP关系

配置思路

1、通过使用VPN实例中的RT值的export和import参数来控制设备学习路由和发布路由

2、使用PRR设备做反射器3个PE设备为client

3、充分利用BGP传递属性使得各CE设备都学习到对方路由条目(后面会详细解释传递顺序)

配置注意事项

(此试验一定要理清VPN实例中RD值与RT值所起的作用,下面有详细说明)

1、PRR上需要忽略BGP VPNV4下的VPN TAG属性否则不会接受各PE路由

2、各CE与PE需要为EBGP关系,且CE1/CE2/CE3之间的AS尽量不要相同,否则AS号重叠将导致BGP的AS-PATH防环,接下来实验中演示相同的AS-PATH如何操作

3、各PE设备上的VPN实例中的RD值不可一样,否则路由传递到PE上后,PE设备不会将与本地VPN实例RD值相同的路由向PRR发送(RD值为32:32标识唯一的VPN实例,与32位的IP报文组合形成64位+32位的VPN实例路由,以此来与传统路由表隔开)

4、PE设备上VPN TAG的规划要遵循传递规则,VPN TAG的作用:负责接收和发送路由时打上VPN TAG标签(注意只是用来决定发布和接收的路由条目是否加入路由表中,报文的接收与否是看路由表中有没有路径。)

VPN RT属性解释:

以拓扑图来说:PE1上VPNIN实例中的EXPORT参数为10:20,也就是说VPNIN在向邻居发送自己的BGP路由时会打上10:20的 export标签(这个VPN TAG属性是在BGP的community团体属性中传递的,大家应该都知道BGP团体属性的作用是用来选取路由条目的),如果邻居的import标签为10:20,那么邻居就会接收VPNIN的路由,并加入到对应的VPN路由表中,且注意团体属性缺省情况下为Internet (缺省属性,所有路由都属于Internet,此属性的路由可以通告给所有BGP的邻居)也就是说收到此属性我如果不支持还是会发送给我的其他BGP邻居,例如图中的PE1中VPNIN向PRR传递路由带团体属性标签为export  10:20,PRR虽然不支持此属性但是他还是会在将从PE1学到的BGP路由反射出去的时候携带上此团体属性标签。

团体属性在BGP中属于可选过度属性:

可选过度:BGP 不能识别该属性,但可以接收该属性并将其发布给其他邻居的属性。

团体属性中支持的情况:

Internet :缺省属性,所有路由都属于Internet,此属性的路由可以通告给所有BGP的邻居
No_Export :收到此属性的路由后,不会将该路由发布给其他的AS。
No_Advertise :收到此属性的路由后,不会将该路由通告给任何BGP邻居。
No_Export_Subconfed :在联盟中使用

VPN RD属性:

RD值是32:32位的唯一标识在本地设备上标识唯一的VPN实例,起到的作用就是区分开传统IP和VPN实例IP(传统IPV4报文为32位),RD+IP得出64位+32位的VPNV4 IP条目。

当一个路由器收到一条报文,如果此报文长度是32位则为传统的IPV4报文,直接查IPV4路由表转发即可,当收到一个64+32位的则为VPNV4路由,这就需要查看报文中的RD值,并记录在本地的VPNV4路由表中,然后再根据RT值决定将此条VPNV4路由条目加入到本地哪一个VPN实例中。

在PE1上查看VPNV4路由学习情况,查看下面截图

可以看到PE1从RD值为1:3 的VPN实例上学习到了14.14.14.14的路由条目,从RD值为1:4的VPN实例上学习到了22.22.22.22的路由条目

再通过对端发送这两条路由时插入的团体属性RT值export值 20:10

本地进行比较与VPNOUT实例的import值  20:10相符合,即将两条路由都加入到了VPNOUT实例中,VPNIN实例由于不符合RT值,一条路由都没有学到。

 

理清RD与RT的作用即可开始配置

配置开始

1、先配置底层,搞通底层的IGP和MPLS LDP

PE2上:

isis 10

network-entity 49.0000.0000.0001.00

is-level level-2

int loopback0 10.10.10.10 32

isis enbale 10

mpls lsr-id 10.10.10.10

mpls

mpls ldp

int g0/0/0

ip add 10.0.0.10 30

isis enable 10

mpls 

mpls ldp

PE3上:(与PE2类似,略过)

PRR上:(与PE2类似,略过)

PE1上:(与PE2类似,略过)

2、配置IBGP邻居

PE2上:

bgp 100

router-id 10.10.10.10

peer 6.6.6.6 as-number 100 

peer 6.6.6.6 connect-interface LoopBack0

ipv4-family unicast

undo peer 6.6.6.6 enable  //此处不需要开启IPV4单播BGP邻居,关闭减少报文

ipv4-family vpnv4     //进入VPV4视图,开启VPNV4的BGP邻居

peer 6.6.6.6 enable

PE3上:(与PE2类似,略过)

PE1上:(与PE2类似,略过)

PRR上:

bgp 100

router-id 6.6.6.6

peer 2.2.2.2 as-number 100 

peer 2.2.2.2 connect-interface LoopBack0

peer 10.10.10.10 as-number 100

peer 10.10.10.10 connect-interface LoopBack0

peer 18.18.18.18 as-number 100 

peer 18.18.18.18 connect-interface LoopBack0

ipv4-family unicast           //关闭一下IPV4的邻居
  undo synchronization
  undo peer 2.2.2.2 enable
  undo peer 10.10.10.10 enable
  undo peer 18.18.18.18 enable


 ipv4-family vpnv4       开启VPNV4邻居
  undo policy vpn-target
  peer 2.2.2.2 enable 
  peer 2.2.2.2 reflect-client        //将PE1/PE2/PE3都作为客户端,自身为RR
  peer 10.10.10.10 enable
  peer 10.10.10.10 reflect-client
  peer 18.18.18.18 enable
  peer 18.18.18.18 reflect-client

3、VPN实例的配置

PE2上:

ip vpn-instance VPNA    //起实例
 ipv4-family
  route-distinguisher 1:3
  vpn-target 20:10 export-extcommunity
  vpn-target 10:20 import-extcommunity

interface GigabitEthernet0/0/1    //绑定实例
 ip binding vpn-instance VPNA
 ip address 192.168.0.1 255.255.255.0 

PE3上:

ip vpn-instance VPNB   //起实例
 ipv4-family
  route-distinguisher 1:4
  vpn-target 20:10 export-extcommunity
  vpn-target 10:20 import-extcommunity

interface GigabitEthernet0/0/1   //绑实例
 ip binding vpn-instance VPNB
 ip address 192.168.0.1 255.255.255.0 

PE1上:

ip vpn-instance VPNIN    //起实例VPNIN
 ipv4-family
  route-distinguisher 2:1
  vpn-target 10:20 export-extcommunity

ip vpn-instance VPNOUT    //起实例VPNOUT
 ipv4-family
  route-distinguisher 2:2
  vpn-target 20:10 import-extcommunity

interface GigabitEthernet0/0/0.10    //起子接口
 dot1q termination vid 10      //dot1q用来起VID值和其他接口隔离
 ip binding vpn-instance VPNIN   //绑定VPNIN
 ip address 10.0.10.2 255.255.255.252 
 arp broadcast enable    //开二层广播功能

interface GigabitEthernet0/0/0.20
 dot1q termination vid 20
 ip binding vpn-instance VPNOUT
 ip address 10.0.20.2 255.255.255.252 
 arp broadcast enable

CE设备与PE设备起EBGP

PE2上:

 ipv4-family vpn-instance VPNA   //在实例下起,因为接口绑定这个实例了
  peer 192.168.0.2 as-number 200 

CE2上:

int loopback 0

ip add 14.14.14.14 32

int g0/0/0

ip add 192.168.0.2 24

bgp 200
 peer 192.168.0.1 as-number 100 
 network 14.14.14.14 255.255.255.255 

PE3/CE3上配置类似略过

PE1上:

 ipv4-family vpn-instance VPNIN 
  peer 10.0.10.1 as-number 200 

 ipv4-family vpn-instance VPNOUT 
  peer 10.0.20.1 as-number 200 

CE1上:

bgp 200       
 peer 10.0.10.2 as-number 100 
 peer 10.0.20.2 as-number 100 

注意此处在CE1/CE2/CE3上都起的BGP 200,最后学习路由是因为AS-PATH属性防环会导致路由学习不到,需要用命令解决

CE1上学习不到BGP表项,忽略AS-PATH解决方式:

查看BGP VPNV4表项,发现VPNOUT实例已经学习到了,且VPNOUT向CE1发布了路由,CE1由于AS-path未接收:

PE1上:dis bgp vpnv4 all routing-table ,可以看到VPNOUT中学习到了表项,但是AS-path为200

 看一下是否向CE1发送了路由

PE1上:dis bgp vpnv4 vpn-instance VPNOUT routing-table peer 10.0.20.1 advertised-r
outes   //查看向对等体10.0.20.1宣告的路由,可以看到PE1加上AS-PATH100后是宣告了的,只是CE1未接收

那么在CE1上忽略AS-PATH

CE1上:

ipv4-family unicast

 peer 10.0.20.2 allow-as-loop

再查看CE1已经有路由了

 但是此时的PE1上的VPNIN实例表里没学到任何路由,且CE1也向自己的EBGP邻居PE1的VPNIN宣告了路由,看CE1上的路由可以看到是AS100防环了,那么我们需要再忽略掉AS-PATH。

PE1上:

ipv4-family vpn-instance VPNIN 

peer 10.0.10.1 allow-as-loop 3

此时PE1上的VPNIN也有了路由且也向外宣告了,但是,我们通过命令在PE2/3设备上查看AS-PATH为两层了

PE2上:

dis bgp vpnv4 all routing-table //注意理解此处为什么PE2/PE3会学到AS含有100的路由条目,需要理解BGP的水平分割原理,对于EBGP邻居通过AS-path防环,对于IBGP邻居,是从EBGP学习到的路由不向自己的IBGP邻居通告,也就是说IBGP邻居是不通过AS-PATH防环,是AS域内IBGP不互相通告来防环,此时我们设立PRR为反射器打破IBGP传递原则,所以PE2/PE3收到了路由

 PE2上:dis bgp vpnv4 vpn-instance VPNA routing-table peer 192.168.0.2 advertised-r
outes  查看已经向CE2宣告 此时AS-PATH中两个200

CE2/CE3上忽略到AS-PATH:

peer 192.168.0.1 allow-as-loop 3  //缺省情况下数值为1,此时AS为两次重复所以给数值3次

此上配置完成

测试

在CE2上tracertCE3,查看路径

CE2上:tracert -a 14.14.14.14 22.22.22.22  //带源tracet  因为使用的loopback0地址,且MPLS未开启 lsp-trigger all 命令,只为32位的路由分配标签

 配置成功


 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值