mpls vpn配置步骤

 一、预习:

          BGP/MPLS IP VPN 是多种技术结合的综合解决方案,一般由运营商搭建,VPN用户购买VPN服务来实现用户网络之间的路由传递、数据互通等。

          MPLS VPN使用BGP在运营商骨干网上发布VPN路由,使用MPLS在运营商骨干网上转发VPN报文。BGP/MPLS IP VPN又被简称为MPLS VPN,是一种常见的 Layer 3 VPN技术。

          MPLS vpn应用场景:LDP广泛应用在VPN服务器上,具有组网简单、配置简单、支持基于路由动态建立 LSP、支持大容量LSP等优点

        为什么选择mpls vpn:
        对于vpn客户来说,不感知vpn的存在,不需要部署和维护VPN,降低企业运维难度和成本;  一般部署在运营商的MPLS VPN专网上,有一定的安全保障
        对运营商而言:MPLS在无连接的IP网络中增加了面对连接的控制平面,为IP网络增加了管理和运营手段;支持地址空间重叠;组网方式灵活、可扩展性好;能够方便地支持MPLS TE合理调控现有网络资源,最大化节省运营商成本

        MPLS vpn常见组网 :
        根据VPN用户的需求不同,可采用以下常见组网方案
        1、Intranet:一个vpn中的所有用户形成闭合用户群,同一vpn站点之间可以互访,不同vpn站点不能互访
        2、Extranet:适用于一个vpn用户希望提供部分本vpn的站点资源 给其他vpn的用户访问的场景
        3、Hub&Spoke:如果希望在vpn中设置中心访问控制设备,其他用户的互访都通过中心访问控制设备进行,可采用Hub&Spoke组网方案(Hub和Spoke类似于FrameRelay概念,分部要访问其他分部,必须要经过Hub)

        主要包含以下技术:  
        a. MP-BGP:负责在PE和PE之间传递站点内的路由信息;
        b. LDP:负责PE与PE之间隧道建立 ;   
        c. VRF:Virtual Routing Forwarding负责PE的VPN用户管理,vpn-instance相同的概念,区分路由表的
        d. 静态路由、IGP、BGP:负责PE与CE之间的路由信息交换

        VRF:Virtual Routing and Forwarding,虚拟路由及转发,又称为vpn-instance,是mpls vpn中的关键技术,每个vpn实例使用独立的路由转发表,实现vpn之间的逻辑隔离来解决(路由冲突问题);一台设备,如PE,由于可能同时连接了多个用户,这些用户(的路由彼此间需要隔离,那么这时候就用到了VRF。设备除了维护全局IP路由表之外,还要为每个VRF维护一张独立的IP路由表,称为VRF路由表,它们之间相互隔离。
        对于每个VRF表,都有RD和RT两大属性:
        RD:Route Distinguisher路由区分符,用来区分本地VRF,该属性仅本地有效。8个字节的RD+4个字节的IPV4地址组成96位VPNv4路由,使不唯一的IPv4地址转化为唯一的VPN-v4地址,该VPNv4路由在ISP域内传递(区分),进而实现地址复用而不冲突
        RT:Route Target,是BGP的扩展团体属性,它分为Import RT和Export RT,分别用于路由的导入、导出策略
        通过配置Import和Export RT来控制和收发路由
        当从VRF表中导出路由时,要用Export RT 对VRF路由进行标记
        当往VRF表中导入路由时,只有所带RT标记与该VRF表中任意一个Import RT相符的路由才会被导入到VRF表中

        VPN-IPv4地址:又被称为vpnv4地址:共12字节,由8字节的RD和4字节的ipv4地址前缀构成

        MP-BGP采用地址簇来区分不同的网络层协议,既可支持传统的IPV4,又可支持其它地址族(如vpn-v4地址族、IPv6地址族等)
        MP-BGP新增了两种路径属性:
        MP_Reach-NLRI:Multiprotocol Reachable NLRI,多协议可达nlri,用于发布可达 路由及下一跳信息
        MP_UNREACH_NLRI: Mpltiprotocol Unreachable NLRI,多协议不可达NLRI,用于撤销不可达路由

        入口PE到出口PE的路由传递:
        MP-BGP将VPNv4传递到对端PE之后,远端PE需要将VPNv4路由导入正确的VPN实例
        MPLS VPN使用BGP扩展团体属性:VPN Target,也称RT来控制 VPN路由信息的发布与接收
        本地PE在发布VPNv4路由前附上RT属性,对端PE在接到VPN如果路由后根据RT将路由导入对应的VPN实例

        MP-BGP:为了正确处理VPN路由,MPLS vpn使用RFC2858中规定的MP-BGP,即BGP-4的多协议扩展;负责在PE和PE之间传递站点内的路由信息

        MPLS vpn路由发布概述:
        若要实现同一个vpn的不同站点之间的通信,首先要完成不同站点之间的路由交互。在基本mpls vpn组网 中,vpn发布涉及CE和PE,P路由器只维护骨干网的路由,不需要了解 任何vpn路由信息。vpn路由信息的发布过程包括3部分:
        1、本地CE-->入口PE
        2、入口PE -->出口PE
        3、出口PE-- >远端 CE

        控制层面的需要解决三个问题:

        1、解决共享PE客户路由冲突 -- >用VRF解决
        2、解决RR和远端PE无法区分相同的路由(来自于不同的VRF)-->用VPNv4路由来区分,数据到达PE进入相应的VRF ;       (IPv4(32)+RD(64)= VPNv4)
        用BGP传递VPNv4路由,BGP增加MP-Reach-NLRI(网络层可达性信息,可选非过渡属性);MP_Unreach_NLRI
        3、解决对端PE如何区分不同的RD?让相应的vpnv4路由进入不同的VRF? --> 用RT区别

        常用命令:

dis curr con vpn    
dis bgp vpnv4 vpn-instance vpna routing-table    //查看bgp vpnv4 vpn实例的路由表
dis ip routing-table vpn-instance vpna        //查看vpna实例的路由表
dis fib vpn-instance vpna            //查看vpna的转发表
dis current-configuration configuration bgp    //查看当前bgp配置
dis fib vpn-instance vpna 172.1.1.1        //查vpna的转发表,看到隧道标签非0,说明需要进隧道
dis mpls lsp include 5.5.5.5 32 verbose        //看到两层隧道标签,压一个标签1,是bgp的vpnv4分的,然后还有一个ldp隧道标签,再压入标签2
apply-label per-instance    //应用在vpn实例下,表示一个vpn实例用一个标签,用于节省标签
reset mpls ldp    //重启mpls
tracert -v -a 192.168.1.1 172.16.1.1    //带源tracert对端
undo default ipv4-unicast        //禁止建默认的ipv4单播路由

二、拓朴图:

1、配置PE、P、CE设备的IP

CE1:    int G0/0/0
      ip addr 10.1.1.1 24
    int lo0
      ip addr 11.11.11.11
CE2:    int G0/0/0
      ip addr 10.1.1.1 24
    int lo0
      ip addr 22.22.22.22
CE3:    ip addr 172.1.1.1
    int lo0
      ip addr 33.33.33.33
CE4:    ip addr 172.1.1.1
    int lo0
      ip addr 44.44.44.44
PE1:    int lo0
      ip addr 1.1.1.1 32
    int G0/0/0
      ip addr 12.1.1.1 24
    int G0/0/1
      ip addr 10.1.1.2 24
    int G0/0/2
      ip addr 10.1.1.2 24
P:    int lo0
      ip addr 2.2.2.2 32
    int G0/0/0 
      ip addr 12.1.1.2 24
    int G0/0/1
      ip addr 23.1.1.2 24
PE2:    int lo0
      ip addr 5.5.5.5 32
    int G0/0/0
      ip addr 23.1.1.3 24
    int G0/0/1
      ip addr 172.1.1.1 24
    int G0/0/2
      ip addr 172.1.1.1 24

2、配置MPLS域内跑一个IGP协议,如IS-IS

PE1:     isis
      network-entity 49.0123.1111.1111.1111.00
      is-level level-2
     int G0/0/0
      isis enable
      isis circuit-type p2p
    int lo0
      isis enable
P:    isis
      network-entity 49.0123.2222.2222.2222.00
      is-level level-2
PE2:    isis
      isisi-entity 49.0123.3333.3333.3333.00
      is-level level-2
    dis isis peer
    dis isis lsdb
    dis isis routing-table
    测试:带源ping一下对端、远端 

3、MPLS域内起ldp:

    ping -vpn-instance vpna 10.1.1.1
PE1:    mpls lsr-id 1.1.1.1
    mpls
    mpls ldp 
    int G0/0/0
      mpls
      mpls ldp
P:    mpls lsr-id 2.2.2.2
    mpls
    mpls ldp
    int G0/0/0
      mpls
      mpls ldp
    int G0/0/1
      mpls
      mpls ldp
PE2:    mpls lsr-id 5.5.5.5
    int G0/0/0
      mpls
      mpls ldp    dis mpls
    dis mpls ldp session
    dis mpls lsp

4、PE路由器起BGP,用于传递CE端的路由(至此运营商已经完成了内部路径的走通):

PE1:    bgp 100
      router-id 1.1.1.1
      peer 5.5.5.5 as-number 100
      peer 5.5.5.5 connect-interface lo 0  
      ipv4-family vpnv4    //起vpnv4地址族,这里解决控制层面第二个问题:用vpnv4在运营商间传递vpnv4路由
      peer 5.5.5.5 enable
PE2:    bgp 100
      router-id 5.5.5.5
      peer 1.1.1.1 as 100
      peer 1.1.1.1 con lo 0
      ipv4-family vpnv4    //起vpnv4地址族
      peer 1.1.1.1 enable
    dis bgp vpnv4 all peer    

5、两端的PE起绑定两个客户的vpn实例,并绑定不同客户的CE路由器与本端的接口上

(这一步是PE与CE建立了连接,相当是运营商为节省资源,使用了vrf技术):

PE1:    

    ip vpn-instance vpna        //这里解决控制层面第一个问题:用vpn实例区分不同的用户
      route-distinguisher 1:1    //给RD值 ,便于本端区分
      vpn-target 10:10  both      //这里解决控制层面第三个问题:给BGP的扩展团体属性,在vpn实例间导入导出,使对端区分不同的RT值 
    int G0/0/1
      ip binding vpn-instance vpna        //这里绑定前先看下原来配置的IP,否则绑定后IP消失
      ip addr 10.1.1.2 24        //绑定vpn-instance后,重新配上原来的IP
    #
    ip vpn-instance vpnb
      route-distinguisher 2:2    //给RD值 
      vpn-target 20:20  both      //给RT值 
    int G0/0/2
      ip binding vpn-instance vpnb
      ip addr 10.1.1.2 24
    dis ip routing-table vpn-instance vpna | vpnb    //查看各个vpn实例路由表,在公众路由器表下是找不到vpn实例里的路由的
    ping -vpn-instance vpna 10.1.1.1    //因为接口已经绑定了vpn实例,这时我们用它ping CE1的IP,由于是直连,所以能ping通
同样配置PE2,对端的RT值 必须 一致,否则不能引入

6、PE和CE之间起IGP,如ospf(这一步是为了让CE端的路由和PE路由互通):

注意这里的ospf在PE端是要起在vpn实例下的,不是全局的!CE端不使用VRF,可以起全局的ospf

CE1:    ospf 10 router-id 11.11.11.11 
      area 0
      network 10.1.1.1 0.0.0.0
      network 11.11.11.11
PE1:    ospf 10 router-id 1.1.1.1 vpn-instance vpna
      area 0
      network 10.1.1.2 0.0.0.0
    dis ospf brief
    #
    ospf 20 router-id 1.1.1.1 vpn-instance vpnb
      area 0
      network 10.1.1.2 0.0.0.0
 CE3:    ospf 20 route-id 33.33.33.33
      area 0
      network 172.1.1.1 0.0.0.0
      network 33.33.33.33 0.0.0.0
同样,起PE2、CE2和CE4,做客户B的双向引入
    dis ospf peer brief

7、 做CE路由器和PE设备的双向路由引入:(这一步是为了让PE在不同的路由协议之间进行转发)

PE1:BGP引入 到OSPF :
    ospf 10 
       import-route bgp
    ospf 20 
       import-route bgp
    dis bgp vpnv4 all routing-table
PE1:OSPF引入 到BGP:
    bgp 100 
    ipv4-family vpn-instance vpna
      import-route ospf 10
      quit
    ipv4-family vpn-instance vpnb
      import-route ospf 20
    dis curr con ospf
同样在PE2上做双向引入 
    dis bgp vpnv4 vpn-instance vpna routing-table
    dis bgp vpnv4 vpn-instance vpnb routing-table

三、测试:

        1、分别用CE1 ping 对端CE3、CE2 ping CE4的地址,如果环回口未引入,就不要ping了:

        ping -vpn-instance vpna 172.1.1.1

        抓包查看:在mpls隧道中会看到两层标签:
        栈顶:LDP 标签是ibgp分的,用于传输,也称递送标签
        栈底:VPNv4是bgp分的,进vrf用的,也称乘客标签

        2、再测试一下:改变CE3的IP地址为192.168.1.1,PE改192.168.1.2,OSPF里再发布,等full以后,再从CE1 ping CE3的新ip,发现仍然通的,至此已经完成测试

  • 11
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值