1.配置公网的IP地址
配置公网ospf 、r4 沉默接口 、r7-r4 缺省
R2:
#interface GigabitEthernet0/0/2
ip address 23.1.1.1 255.255.255.0
#interface LoopBack0
ip address 2.2.2.2 255.255.255.0
#ospf 1 router-id 2.2.2.2
area 0.0.0.0
network 2.2.2.2 0.0.0.0
network 23.1.1.1 0.0.0.0
R3:
#interface GigabitEthernet0/0/0
ip address 23.1.1.2 255.255.255.0
#interface GigabitEthernet0/0/1
ip address 34.1.1.1 255.255.255.0
#interface LoopBack0
ip address 3.3.3.3 255.255.255.0
#ospf 1 router-id 3.3.3.3
area 0.0.0.0
network 3.3.3.3 0.0.0.0
network 23.1.1.2 0.0.0.0
network 34.1.1.1 0.0.0.0
R4:
#interface GigabitEthernet0/0/0
ip address 34.1.1.2 255.255.255.0
#interface GigabitEthernet4/0/0
ip address 47.1.1.1 255.255.255.0
#interface LoopBack0
ip address 4.4.4.4 255.255.255.0
#ospf 1 router-id 4.4.4.4
silent-interface GigabitEthernet4/0/0 ---沉默接口,因为4不需要和7之间建立邻居,也不要发hello包给路由器7。
area 0.0.0.0
network 4.4.4.4 0.0.0.0
network 34.1.1.2 0.0.0.0
network 47.1.1.1 0.0.0.0 ---宣告47网段
此时公网已经通了,例如R2上pingR4的环回 ---测试公网
R7:
#interface GigabitEthernet0/0/1
ip address 47.1.1.2 255.255.255.0
#interface LoopBack0
ip address 192.168.4.2 255.255.255.0
#ip route-static 0.0.0.0 0.0.0.0 47.1.1.1 ---R7作为客户需要用一条缺省访问公网
此时R7可以ping通R2、R3、R4的环回
R2上pingR4环回地址----测试公网
R7上pingR2、R3、R4的环回地址----测试R7能否访问公网环回
2.配置MPLS-LDP
R2:
[R2]mpls lsr-id 2.2.2.2
[R2]mpls
[R2-mpls]mpls ldp
[R2-mpls-ldp]int g0/0/2
[R2-GigabitEthernet0/0/2]mpls
[R2-GigabitEthernet0/0/2]mpls ldp
R3:
R2]mpls lsr-id 3.3.3.3
[R2]mpls
[R2-mpls]mpls ldp
[R2-mpls-ldp]int g0/0/0
[R2-GigabitEthernet0/0/0]mpls
[R2-GigabitEthernet0/0/0]mpls ldp
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]mpls
[R2-GigabitEthernet0/0/1]mpls ldp
R4:
[R4]mpls ls
[R4]mpls lsr-id 4.4.4.4
[R4]mpls
Info: Mpls starting, please wait... OK!
[R4-mpls]mpls ldp
[R4-mpls-ldp]int g0/0/0
[R4-GigabitEthernet0/0/0]mpls
[R4-GigabitEthernet0/0/0]mpls ldp
通过在R3上检查mpls的邻居,发现3与2、4正常建邻,证明mpls环境已经做好了
3.配置MPLS-VPN
R2
由拓扑可知需要创建两个空间
[R2]ip vpn-instance a
[R2-vpn-instance-a]ipv4-family
[R2-vpn-instance-a-af-ipv4]route-distinguisher 1:1 ---定义RD
[R2-vpn-instance-a-af-ipv4]vpn-target 1:1 ---定义RT
把VRF空间a绑定到1-2的接口上
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip binding vpn-instance a
[R2-GigabitEthernet0/0/0]ip add 192.168.2.2 24
[R2]ip vpn-instance b
[R2-vpn-instance-b]ipv4-family
[R2-vpn-instance-b-af-ipv4]route-distinguisher 2:2
[R2-vpn-instance-b-af-ipv4]vpn-target 2:2
把VRF空间b绑定到6-2的接口上
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]ip binding vpn-instance b
[R2-GigabitEthernet0/0/1]ip add 192.168.2.2 24
之前在正常的拓扑中可能会报错,因为地址冲突了,但是我们通过[R2]dis ip interface brief 查看接口发现两个IP地址共存着,因为他们在不同的路由表中,不矛盾,普通的路由表中不存在这条路由,他们的路由分别在自己的vrf空间的路由表中
[R2]dis ip interface brief ---查看接口配置
<R2>dis ip routing-table ---查看路由表
<R2>dis ip routing-table vpn-instance a ---查看vrf空间a的路由表
R4:
由拓扑可知需要创建两个空间
[R4]ip vpn-instance a1
[R4-vpn-instance-a1]ipv4-family
[R4-vpn-instance-a1-af-ipv4]route-distinguisher 1:1
[R4-vpn-instance-a1-af-ipv4]vpn-target 1:1
把VRF空间a1绑定到4-5的接口上
[R4]int g0/0/1
[R4-GigabitEthernet0/0/1]ip binding vpn-instance a1
[R4-GigabitEthernet0/0/1]ip address 192.168.3.1 24
[R4]ip vpn-instance b1
[R4-vpn-instance-b1]ipv4-family
[R4-vpn-instance-b1-af-ipv4]route-distinguisher 2:2
[R4-vpn-instance-b1-af-ipv4]vpn-target 2:2
把VRF空间b1绑定到4-7的接口上
[R4-vpn-instance-b1]int g0/0/2
[R4-GigabitEthernet0/0/2]ip binding vpn-instance b1
[R4-GigabitEthernet0/0/2]ip add 192.168.3.1 24
查看R2上的接口情况 ----发现了两个接口的IP地址相同,但没有冲突
查看路由表 ---发现路由表不存在192.168.2.2的路由条目
查看vrf空间a、b的路由表----发现了192.168.2.2.的路由
4.配置MP-BGP
PE与PE间建立MP-BPG邻居关系
R2:
[R2]bgp 1
[R2-bgp]router-id 2.2.2.2
先和对端建立正常BGP邻居关系,可用于传递正常的公网路由
[R2-bgp]peer 4.4.4.4 as-number 1
[R2-bgp]peer 4.4.4.4 connect-interface LoopBack 0
同时还需要再在IPV4的家族模式中,与对端建立一个VPNV4的关系,用于传递VPNV4路由
[R2-bgp]ipv4-family vpnv4
[R2-bgp-af-vpnv4]peer 4.4.4.4 enable
R4:
[R4]bgp 1
[R4-bgp]router-id 4.4.4.4
先和对端建立正常BGP邻居关系,可用于传递正常的公网路由
[R4-bgp]peer 2.2.2.2 as-number 1
[R4-bgp]peer 2.2.2.2 connect-interface LoopBack 0
同时还需要再在IPV4的家族模式中,与对端建立一个VPNV4的关系,用于传递VPNV4路由
[R4-bgp]ipv4-family vpnv4
[R4-bgp-af-vpnv4]peer 2.2.2.2 enable
此时整个公网的配置已经完成了,接下来需要进行客户配置
5.配置客户环回和ip地址
R1:
[R1]int LoopBack 0
[R1-LoopBack0]ip add 192.168.1.1 24
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.2.1 24
配置完成后 ping R2左边的接口 ,此时R1可以ping通
R6:
[R6]int LoopBack 0
[R6-LoopBack0]ip add 192.168.1.1 24
[R6]int g0/0/0
[R6-GigabitEthernet0/0/0]ip add 192.168.2.1 24
R5:
[R5]int LoopBack 0
[R5-LoopBack0]ip add 192.168.4.1 24
[R5]int g0/0/0
[R5-GigabitEthernet0/0/0]ip add 192.168.3.2 24
R7:
[R7]int LoopBack 0
[R7-LoopBack0]ip add 192.168.4.2 24
[R7]int g0/0/0
[R7-GigabitEthernet0/0/0]ip add 192.168.3.2 24
6.配置动态
因为配置动态简单些,所以先配置动态
R6:
[R6]rip 1
[R6-rip-1]version 2
[R6-rip-1]network 192.168.1.0
[R6-rip-1]network 192.168.2.0
R2:
[R2]rip 1 vpn-instance b
[R2-rip-1]network 192.168.2.0
此时在R2上的vpn空间b路由表可以看到已经通过rip学习到 192.168.1.0路由
R7:
[R7]ospf 1 router-id 7.7.7.7
[R7-ospf-1]area 0
[R7-ospf-1-area-0.0.0.0]network 192.168.3.2 0.0.0.0
[R7-ospf-1-area-0.0.0.0]network 192.168.4.2 0.0.0.0
R4:
[R4]ospf 2 vpn-instance b1 ---需要在vrp空间b1上启动ospf进程2
[R4-ospf-2]area 0
[R4-ospf-2-area-0.0.0.0]network 192.168.3.1 0.0.0.0
此时在R4上的vpn空间b1路由表可以看到已经通过ospf学习到 192.168.4.2路由
此时在R2上的vrf的b空间路由表可以看到已经通过rip学习到 192.168.1.0路由
此时在R4上的vpn空间b1路由表可以看到已经通过ospf学习到 192.168.4.2路由
7.双向重发布
此时2-6的RIP,4-7的OSPF ,2-4的BGP都已经通了,需要在R2和R4上双向重发布
R2:
[R2]rip 1 vpn-instance b
[R2-rip-1]import-route bgp ----把BGP重发布进rip
[R2]bgp 1
[R2-bgp]ipv4-family vpn-instance b
[R2-bgp-b]import-route rip 1 ---把rip重发布进BGP
R4:
[R4]bgp 1
[R4-bgp]ipv4-family vpn-instance b1
[R4-bgp-b1]import-route ospf 2 ---把ospf 2重发布进BGP
[R4]ospf 2 vpn-instance b1
[R4-ospf-2]import-route bgp ----把BGP重发布进ospf 2
此时双向重发布完成,可以看到在R6路由表上学到了3.0和4.2路由, 在R7路由表上学到了1.1和2.0路由
此时在R6上可以ping通R7的环回
例如 R7ping R3环回3.3.3.3它是通过查路由表缺省g0/0/1 到达的 ---不带标签
R7ping R1环回192.168.1.1 它是通过g0/0/0接口MPLS-VPN 带了两层标签,外层标签把路由器3欺骗了,内层标签是让R2知道去往R6
8.配置静态
静态需要每个路由表齐全就可以
R1:
[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
R2:
R2上去往1.0网段需要静态,去往3.0 ,4.0网段需要R4给它
[R2]ip route-static vpn-instance a 192.168.1.0 24 192.168.2.1 ---去往1.0网段静态
R5:
[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
R4:
在R4上查看vpn空间a1的路由表缺少到4.0网段路由,因此需要写静态去往4.0
[R4]ip route-static vpn-instance a1 192.168.4.0 24 192.168.3.2
9.重发布静态、直连
R2:
R2需要把自己的1.0,2.0网段发布给R4
[R2]bgp 1
[R2-bgp]ipv4-family vpn-instance a
[R2-bgp-a]import-route direct
[R2-bgp-a]import-route static
可以在vpn空间是a的BGP表中看到这两条1.0 ,2.0路由给4了
R4:
R4需要把自己的1.0,2.0网段发布给R2
[R4]bgp 1
[R4-bgp]ipv4-family vpn-instance a1
[R4-bgp-a1]import-route direct
[R4-bgp-a1]import-route static
在vpn空间是a的BGP路由表中看到这两条1.0 ,2.0路由给4了
ping192.168.4.2不通是因为隔离着,ping4.1可以通说明我们mpls-vpn 静态配置成功