背景两家公司通过同一个isp接入,完成mpls ***专线使各个公司能够访问内部网络。
拓扑如上:
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 ***v4
neighbor 4.4.4.4 activate
neighbor 4.4.4.4 send-community extended //默认开启,因为需要传递私网路由。所以要加属性
exit-address-family
R4:
跟R2差不多就是改一下地址
查看结果用sh ip bgp ***v4 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上不同×××实例,其主要作用是实现×××实例之间地址复用,与IP地址一起构成12 Bytes的×××v4地址。
RD与路由一起被携带在BGP Update报文中发送给对端。
RD不具有选路能力,不影响路由的发送与接受。
RD用来区分本地VRF,本地有效。
RT (Route Target)
RT是×××v4路由携带的一个重要属性,它决定×××路由的收发和过滤,PE依靠RT属性区分不同×××之间路由。
当从VRF表中导出×××路由时,要用Export RT对×××路由进行标记。
当往VRF表中导入×××路由时,只有所带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 ***v4
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
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
忘了一点,如果mpls协议的底层协议是ospf。需要将lo 设置成32位地址,这边我将R6 R7设置位32为
R1 R5 24没有问题。
本文还是个人笔记,如有错误请各位大神指正。摘抄已注明出处,如果有问题,单聊我,我会进行处理。