isp mpls专线的实现技术和配置命令行
背景两家公司通过同一个isp接入,完成mpls vpn专线使各个公司能够访问内部网络。
忘了一点,如果mpls协议的底层协议是ospf。需要将lo 设置成32位地址,这边我将R6 R7设置位32为R1 R5 24没有问题。
本文还是个人笔记,如有错误请各位大神指正。摘抄已注明出处,如果有问题,单聊我,我会进行处理。
拓扑如上:
ip:RX-RY: RX: XY.1.1.X L0:X.X.X.X RY:XY.1.1.Y L0:Y.Y.Y.Y
首先配置R2-R3-R4 isp网络。这边使用ospf协议保证isp网络互通,使用bgp协议(VRf)进行传递私网路由,使用mpls标签进行快速转发。
- R2:
- os 1
- net 23.1.1.2 0.0.0.0 a 0
- net 2.2.2.2 0.0.0.0 a 0
- R3:
- os 1
- net 23.1.1.3 0.0.0.0 a 0
- net 3.3.3.3 0.0.0.0 a 0
- net 34.1.1.3 0.0.0.0 a 0
- R4:
- os 1
- net 34.1.1.4 0.0.0.0 a 0
- net 4.4.4.4 0.0.0.0 a 0
完成上述配置,R2,R3,R4已经能够建立ospf邻居,ok这边因为主要是讲mpls,所以就不加ospf区域验证之类的了。
然后开启mpls
R2-R4
ip cef
int 所有公网接口 mpls ip 注:不包括和公司路由对接的接口如R2只在S1/2开启mpls ip
mpls label range 200 299 / 300 399 / 400 499 便于排错 开启标签范围
完成上述配置,可以通过sh mpls for 查看lable
- R3#sh mpls forwarding-table
- Local Outgoing Prefix Bytes tag Outgoing Next Hop
- tag tag or VC or Tunnel Id switched interface
- 300 Pop tag 4.4.4.4/32 7647 Se1/1 point2point
- 301 Pop tag 2.2.2.2/32 6009 Se1/0 point2point
然后是R2 R4 开启mp-bgp 用于传递vrf路由(关于vrf技术,你可以认为把一台路由器当成多台路由器进行使用,主要区别各个虚拟路由器使用单独的路由表)
- R2 :
- router b 2
- bgp router-id 2.2.2.2
- no bgp default ipv4-unicast
- neighbor 4.4.4.4 remote-as 4
- neighbor 4.4.4.4 ebgp-multihop 255
- neighbor 4.4.4.4 update-source Loopback0
- address-family vpnv4
- neighbor 4.4.4.4 activate
- neighbor 4.4.4.4 send-community extended //默认开启,因为需要传递私网路由。所以要加属性
- exit-address-family
R4:
跟R2差不多就是改一下地址
查看结果用sh ip bgp vpnv4 all su
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
2.2.2.2 4 2 95 85 19 0 0 01:14:46 3
下面就是重点了:
- R2:
- ip vrf b
- rd 2:2 //
- route-target export 2:2
- route-target import 2:2
- !
- ip vrf gongsia
- rd 1:1
- route-target export 1:1
- route-target import 1:1
- RD (Route Distinguisher)
用于标识PE上不同VPN实例,其主要作用是实现VPN实例之间地址复用,与IP地址一起构成12 Bytes的VPNv4地址。
RD与路由一起被携带在BGP Update报文中发送给对端。
RD不具有选路能力,不影响路由的发送与接受。
RD用来区分本地VRF,本地有效。
RT (Route Target)
RT是VPNv4路由携带的一个重要属性,它决定VPN路由的收发和过滤,PE依靠RT属性区分不同VPN之间路由。
当从VRF表中导出VPN路由时,要用Export RT对VPN路由进行标记。
当往VRF表中导入VPN路由时,只有所带RT标记与VRF表中任意一个Import RT相符的路由才会被导入到VRF表中。
----来自http://blog.sina.com.cn/s/blog_6a6b6f1a0100yzv5.html
分别把和公司A,公司b的接口加入的相关的vrf 下:
R2
interface Serial1/1
ip vrf forwarding b
//熟悉了之后先把接口加到vrf下再配置地址,否则你会发现介入vrf后没地址了
interface Serial1/0
ip vrf forwarding gongsia
R4做相同配置
下面是如何保证公司路由和isp的vrf进行路由的交换以及和公司分部的路由交换配置:
R6-R2 R7-R4
这边我们采用的是ospf协议进行互通
这边首先要指导,R2 和R4 已经使用了os 1 。
这边我们使用ospf 10 进行互联,基本配置就不贴了。重点是R2和R4的ospf 进程要写:
- R2:
- router ospf 10 vrf gongsia //ospf进程需要写入vrf中,eigrp需要指定进程号
- log-adjacency-changes
- redistribute bgp 2 subnets //这边是用于将私网路由重分布到bgp 中进行传递路由
- network 26.1.1.2 0.0.0.0 area 0
- ip route vrf b 1.1.1.0 255.255.255.0 Serial1/1 公司b我们通过静态路由写,也要写入vrf中
- route b 2
- address-family ipv4 vrf gongsia
- redistribute ospf 10 vrf gongsia //分别在不同bgp vrf下重分布相应的和ce端路由协议
- no synchronization
- exit-address-family
- !
- address-family ipv4 vrf b
- redistribute static
- no synchronization
- exit-address-family
- R4:
- R4#sh run | s ospf
- router ospf 10 vrf gongsia
- router-id 47.1.1.4
- log-adjacency-changes
- redistribute bgp 4 subnets
- network 47.1.1.4 0.0.0.0 area 0
- router ospf 1
- log-adjacency-changes
- network 4.4.4.4 0.0.0.0 area 0
- network 34.1.1.4 0.0.0.0 area 0
- redistribute ospf 10 vrf gongsia
- R4#sh run | s bgp
- redistribute bgp 4 subnets
- router bgp 4
- bgp router-id 4.4.4.4
- no bgp default ipv4-unicast
- bgp log-neighbor-changes
- neighbor 2.2.2.2 remote-as 2
- neighbor 2.2.2.2 ebgp-multihop 255
- neighbor 2.2.2.2 update-source Loopback0
- !
- address-family vpnv4
- neighbor 2.2.2.2 activate
- neighbor 2.2.2.2 send-community extended
- exit-address-family
- !
- address-family ipv4 vrf gongsia
- redistribute ospf 10 vrf gongsia
- no synchronization
- exit-address-family
- !
- address-family ipv4 vrf b
- redistribute static
- no synchronization
- exit-address-family
R3只要开启mpls功能即可,不要其他配置。
查看mpls 邻居,以及lable标签
- R4#sh mpls ldp bindings
- tib entry: 2.2.2.2/32, rev 8
- local binding: tag: 401
- remote binding: tsr: 3.3.3.3:0, tag: 301
- tib entry: 3.3.3.3/32, rev 6
- local binding: tag: 400
- remote binding: tsr: 3.3.3.3:0, tag: imp-null
- tib entry: 4.4.4.4/32, rev 4
- local binding: tag: imp-null
- remote binding: tsr: 3.3.3.3:0, tag: 300
- tib entry: 23.1.1.0/24, rev 10
- local binding: tag: 402
- remote binding: tsr: 3.3.3.3:0, tag: imp-null
- tib entry: 34.1.1.0/24, rev 3
- local binding: tag: imp-null
- remote binding: tsr: 3.3.3.3:0, tag: imp-null
- R4#sh mpls ldp
- R4#sh mpls ldp ne
- R4#sh mpls ldp neighbor
- Peer LDP Ident: 3.3.3.3:0; Local LDP Ident 4.4.4.4:0
- TCP connection: 3.3.3.3.646 - 4.4.4.4.60420
- State: Oper; Msgs sent/rcvd: 109/110; Downstream
- Up time: 01:30:04 http://www.xiaoxiongboke.com/
- LDP discovery sources:
- Serial1/0, Src IP addr: 34.1.1.3
- Addresses bound to peer LDP Ident:
- 23.1.1.3 3.3.3.3 34.1.1.3
- R5#ping 1.1.1.1 so 5.5.5.5 //最后ping的时候需要加源
- Type escape sequence to abort.
- Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
- Packet sent with a source address of 5.5.5.5
- !!!!!
- Success rate is 100 percent (5/5), round-trip min/avg/max = 140/160/184 ms