先配公网IP及环回
[r2]int g0/0/2
[r2-GigabitEthernet0/0/2]ip add 23.0.0.1 24
[r2-GigabitEthernet0/0/2]int l 0
[r2-LoopBack0]ip add 2.2.2.2 24
[r3]int g0/0/0
[r3-GigabitEthernet0/0/0]ip add 23.0.0.2 24
[r3-GigabitEthernet0/0/0]int g0/0/1
[r3-GigabitEthernet0/0/1]ip add 34.0.0.1 24
[r3-GigabitEthernet0/0/1]int l 0
[r3-LoopBack0]ip add 3.3.3.3 24
[r4]int g0/0/0
[r4-GigabitEthernet0/0/0]ip add 34.0.0.2 24
[r4-GigabitEthernet0/0/0]int g4/0/0
[r4-GigabitEthernet4/0/0]ip add 47.0.0.1 24
[r4-GigabitEthernet4/0/0]int l 0
[r4-LoopBack0]ip add 4.4.4.4 24
[r7]int g0/0/1
[r7-GigabitEthernet0/0/1]ip add 47.0.0.2 24
运行启动OSPF
[r2]ospf 1 router-id 2.2.2.2
[r2-ospf-1]a 0
[r2-ospf-1-area-0.0.0.0]net 2.2.2.2 0.0.0.0
[r2-ospf-1-area-0.0.0.0]net 23.0.0.0 0.0.0.255
[r3]ospf 1 router-id 3.3.3.3
[r3-ospf-1]a 0
[r3-ospf-1-area-0.0.0.0]net 3.3.3.3 0.0.0.0
[r3-ospf-1-area-0.0.0.0]net 23.0.0.0 0.0.0.255
[r3-ospf-1-area-0.0.0.0]net 34.0.0.0 0.0.0.255
[r4]ospf 1 router-id 4.4.4.4
[r4-ospf-1]a 0
[r4-ospf-1-area-0.0.0.0]net 4.4.4.4 0.0.0.0
[r4-ospf-1-area-0.0.0.0]net 34.0.0.0 0.0.0.255
[r4-ospf-1-area-0.0.0.0]net 47.0.0.0 0.0.0.255
配置MPLS
[r2]mpls lsr-id 2.2.2.2 ----必须是可以用的接口
[r2]mpls ----全局激活
Info: Mpls starting, please wait... OK!
[r2-mpls]mpls ldp -----动态mpls
[r2-mpls-ldp]q
[r2]int g0/0/2 -----去接口激活
[r2-GigabitEthernet0/0/2]mpls
[r2-GigabitEthernet0/0/2]mpls ldp
[r3]mpls lsr-id 3.3.3.3
[r3]mpls
Info: Mpls starting, please wait... OK!
[r3-mpls]mpls ldp
[r3-mpls-ldp]q
[r3]int g0/0/0
[r3-GigabitEthernet0/0/0]mpls
[r3-GigabitEthernet0/0/0]mpls ldp
[r3-GigabitEthernet0/0/0]int g0/0/1
[r3-GigabitEthernet0/0/1]mpls
[r3-GigabitEthernet0/0/1]mpls ldp
[r4]mpls lsr-id 4.4.4.4
[r4]mpls
Info: Mpls starting, please wait... OK!
[r4-mpls]mpls ldp
[r4-mpls-ldp]q
[r4]int g0/0/0
[r4-GigabitEthernet0/0/0]mpls
[r4-GigabitEthernet0/0/0]mpls ldp
在R2上创建两个VRF 对应客户A 和客户B
[r2]ip vpn-instance a ----创建VRF a
[r2-vpn-instance-a]route-distinguisher 100:100 ----前面是RD值,后面是随机值
[r2-vpn-instance-a-af-ipv4]vpn-target 100:1 both ----将rt值设置成一样的(偷懒)
[r2]ip vpn-instance b ---创建VRF b
[r2-vpn-instance-b]route-distinguisher 200:200
[r2-vpn-instance-b-af-ipv4]vpn-target 200:1 both
在R4上创建两个VRF 对应客户A 和客户B
[r4]ip vpn-instance a
[r4-vpn-instance-a]route-distinguisher 100:100
[r4-vpn-instance-a-af-ipv4]vpn-target 100:1 both
[r4]ip vpn-instance b
[r4-vpn-instance-b]route-distinguisher 200:200
[r4-vpn-instance-b-af-ipv4]vpn-target 200:1 both
配置私网
将端口绑定到VRF,配IP (一定绑定后再配IP,否则被移除)
[r2-GigabitEthernet0/0/0]ip binding vpn-instance a
[r2-GigabitEthernet0/0/0]ip add 192.168.2.2 24
[r2-GigabitEthernet0/0/1]ip binding vpn-instance b
[r2-GigabitEthernet0/0/1]ip add 172.16.2.2 24
[r4]int g0/0/1
[r4-GigabitEthernet0/0/1]ip binding vpn-instance a
[r4-GigabitEthernet0/0/1]ip add 192.168.3.1 24
[r4-GigabitEthernet0/0/1]int g0/0/2
[r4-GigabitEthernet0/0/2]ip binding vpn-instance b
[r4-GigabitEthernet0/0/2]ip add 172.16.3.1 24
在R1上配置IP
[r1]int g0/0/0
[r1-GigabitEthernet0/0/0]ip add 192.168.2.1 24
[r1-GigabitEthernet0/0/0]int l 0
[r1-LoopBack0]ip add 192.168.1.1 24
在R6上配置IP
[r6]int g0/0/0
[r6-GigabitEthernet0/0/0]ip add 172.16.2.1 24
[r6-GigabitEthernet0/0/0]int l 0
[r6-LoopBack0]ip add 172.16.1.1 24
在R5上配置IP
[r5]int g0/0/0
[r5-GigabitEthernet0/0/0]ip add 192.168.3.2 24
[r5-GigabitEthernet0/0/0]int l 0
[r5-LoopBack0]ip add 192.168.4.1 24
在R7上配置
[r7]int g0/0/0
[r7-GigabitEthernet0/0/0]ip add 172.16.3.2 24
[r7-GigabitEthernet0/0/0]int l 0
[r7-LoopBack0]ip add 172.16.4.1 24
R1和R5采用静态路由
[r1]ip route-static 192.168.3.0 24 192.168.2.2
[r1]ip route-static 192.168.4.0 24 192.168.2.2
[r5]ip route-static 192.168.1.0 24 192.168.3.1
[r5]ip route-static 192.168.2.0 24 192.168.3.1
注意R2 R4上做了VRF,写静态要指明在哪个里面 ,不写则在全局里面
[r2]ip route-static vpn-instance a 192.168.1.0 24 192.168.2.1
[r4]ip route-static vpn-instance a 192.168.4.0 24 192.168.3.2
建立IBGP对等体关系
[r2]bgp 1
[r2-bgp]router-id 1.1.1.1
[r2-bgp]peer 4.4.4.4 as 1
[r2-bgp]peer 4.4.4.4 connect-interface LoopBack 0
[r4]bgp 1
[r4-bgp]router-id 4.4.4.4
[r4-bgp]peer 2.2.2.2 as 1
[r4-bgp]peer 2.2.2.2 connect-interface LoopBack 0
因为加了RD值,所以传统的BGPV4满足不了VPNV4的工作,所以激活MP-BGP
[r2]bgp 1
[r2-bgp]ipv4-family vpnv4
[r2-bgp-af-vpnv4]peer 4.4.4.4 enable
[r4]bgp 1
[r4-bgp]ipv4-family vpnv4
[r4-bgp-af-vpnv4]peer 2.2.2.2 enable
让R4学习到一些路由
[r2]bgp 1
[r2-bgp]ipv4-family vpn-instance a
[r2-bgp-a]import-route direct
[r2-bgp-a]import-route static
[r4]bgp 1
[r4-bgp]ipv4-family vpn-instance a
[r4-bgp-a]import-route direct
[r4-bgp-a]import-route static
R1和R5之间私网通了
R6 通过RIP 传递私网
[r6]rip 1
[r6-rip-1]v 2
[r6-rip-1]net 172.16.0.0
[r2]rip 1 v
[r2]rip 1 vpn-instance b
[r2-rip-1]v 2
[r2-rip-1]net 172.16.0.0
R7运行OSPF传递私网
[r7]ospf 1 router-id 7.7.7.7
[r7-ospf-1]a 0
[r7-ospf-1-area-0.0.0.0]net 172.16.0.0 0.0.255.255
因为OSPF进程1用过了,用在了全局,所以咱用OSPF 进程2
[r4]ospf 2 vpn-instance b router-id 4.4.4.4
[r4-ospf-2]a 0
[r4-ospf-2-area-0.0.0.0]net 172.16.0.0 0.0.255.255
将RIP的路由导入OSPF,将OSPF中导入RIP
[r2]bgp 1
[r2-bgp]ipv4-family vpn-instance b
[r2-bgp-b]import-route rip 1
[r2-bgp-b]q
[r2-bgp]q
[r2]rip 1
[r2-rip-1]import-route bgp
[r4]bgp 1
[r4-bgp]ipv4-family vpn-instance b
[r4-bgp-b]import-route ospf 2
[r4-bgp-b]q
[r4-bgp]q
[r4]ospf 2
[r4-ospf-1]import-route bgp
让R7访问公网
[r7]ip route-static 0.0.0.0 0 47.0.0.1
为了让R6也可以访问公网 R7下发一条缺省,让R6指向R7
[r7-ospf-1]default-route-advertise
让R4自动下发一条缺省给R2
[r4]bgp 1
[r4-bgp]ipv4-family vpn-instance b
[r4-bgp-b]default-route imported
让R2自动下发缺省
[r2]rip 1
[r2-rip-1]default-route originate
做nat
[r7]acl 2000
[r7-acl-basic-2000]rule permit source 172.16.0.0 0.0.255.255
[r7-acl-basic-2000]q
[r7]int g0/0/1
[r7-GigabitEthernet0/0/1]nat outbound 2000
可以ping通公网