多协议:可以基于多种不同的3层协议来生成2.5层的标签信息;
包交换—包为网络层的PDU,故包交换是基于IP地址进行数据转发;就是路由器的路由行为;
原始的包交换:数据包进入路由器后,路由器需要查询本地的路由表(RIB-路由信息数据库),再基于下一跳或者目标ip查询本地的ARP表,才能进行数据的转发;
快速的包交换:一次路由多次交换;每个数据流中的第一个包将被基于原始包交换规则转发;过程中生成缓存列表,记录整个通讯过程,该数据流量剩余数据包仅查询缓存记录即可;
特快的包交换:无需路由,直接交换; CEF-cisco特快交换,为cisco私有技术;非cisco厂商设备均存在和cef转发机制相同的技术;
路由表、ARP –转换为 FIB(转发信息数据库)表 流量转发过程中仅查询FIB表即可;
FIB的特点:在将路由器表转换过程中,存储递归查询结果;同时将新封装的二层地址进行绑定;
1、IP规划及配置
A1/B1局域网内部环回均为192.168.1.0/24;
A1/B1连接公网部分链路均为192.168.2.0/24;
A2/B2环回分别为192.168.4.1和192.168.4.2;
A2/B2连接公网部分链路均为192.168.3.0/24;
公网部分为简化ip,环回均为x.x.x.x;
R2–R3间IP为:23.1.1.0 /24;
R3–R4间IP为:34.1.1.0 /24;
R7连接公网的NAT口IP为172.16.1.0 /24;
[R1]interface GigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0]ip address 192.168.2.1 24
[R1]interface LoopBack0
[R1-LoopBack0]ip address 192.168.1.1 24
2、公网部分启用IGP路由协议(OSPF)
公网部分先用OSPF保证全网可达,然后用MPLS防止启用BGP后的路由黑洞;
R2:
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:
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:
ospf 1 router-id 4.4.4.4
area 0.0.0.0
network 4.4.4.4 0.0.0.0
network 34.1.1.2 0.0.0.0
network 172.16.1.1 0.0.0.0
定义mpls的router-id,要为本地设备的真实ip地址,且邻居可达,因为该地址将用于建立TCP会话,建议使用环回地址,再开启并激活mpls协议;并且之后需要在所有标签经过的接口上开启协议
R2:
mpls lsr-id 2.2.2.2
mpls
mpls ldp
#
interface GigabitEthernet0/0/1
mpls
mpls ldp
R3的出入接口,以及R4的入接口均需要开启协议;
3、建立BGP邻居;
bgp 1
router-id 2.2.2.2
peer 4.4.4.4 as-number 1
peer 4.4.4.4 connect-interface LoopBack0
peer 4.4.4.4 next-hop-local
同时还需要再在IPV4的家族模式中,与对端建立一个VPNV4的关系,用于传递VPNV4路由
ipv4-family v4
peer 4.4.4.4 enable
display bgp v4 all peer 查看mp-bgp邻居关系
同样的,R4也需要做同样的操作,保证建立R2和R4能正常建立BGP邻居关系和MP-bgp邻居关系;
4、配置MPLS VPN
ip -instance a //创建名为a的vrf空间
ipv4-family //进入IPV4的配置模式下
route-distinguisher 1:1 //RD值
-target 1:1 //RT值 必须对端的PE端一致
]interface GigabitEthernet 0/0/0 // 进入链接CE端的接口
ip binding -instance a // 关联到vrf空间
ip address 192.168.2.2 24 // 配置私有ip地址
注:在关联到vrf空间前不能配置接口ip,否则该地址的直连路由将进入公有路由表;
display ip routing-table -instance a // 查看空间内的私有路由表;
ping --instance a 192.168.2.1 // 正常测试将在公有路由表中查询记录;该命令为基于VRF空间a进行路由查询;
ip -instance b //创建名为a的vrf空间
ipv4-family //进入IPV4的配置模式下
route-distinguisher 2:2 //RD值
-target 2:2 //RT值 必须对端的PE端一致
]interface GigabitEthernet 0/0/2 // 进入链接CE端的接口
ip binding -instance b // 关联到vrf空间
ip address 192.168.2.2 24 // 配置私有ip地址
同样的在R4上做同样的操作;
5、CE端与PE端交互路由
此时R2/4 vrf空间中只有其直连路由,没有环回地址;A1和A2我们选择静态发布;CE端直接编写静态路由即可;PE端编写到VRF空间内的静态路由;
R1
ip route-static 192.168.3.0 255.255.255.0 192.168.2.2
ip route-static 192.168.4.0 255.255.255.0 192.168.2.2
R2
ip route-static -instance a 192.168.1.0 255.255.255.0 192.168.2.1
R5
ip route-static 192.168.1.0 255.255.255.0 192.168.3.2
ip route-static 192.168.2.0 255.255.255.0 192.168.3.2
R4
ip route-static -instance a 192.168.4.0 255.255.255.0 192.168.3.1
再将本地vrf空间内的静态和直连路由重发布到BGP协议传递到对端的PE,即可使得A1/2连通;
bgp 2
ipv4 -instance a
import-route direct
import-route static
display bgp v4 -instance a routing-table 查看mp-bpg的BGP表
B1 我们换一种方法,使用RIP协议;
R6:
rip 1
undo summary
version 2
network 192.168.1.0
network 192.168.2.0
R2:
rip 1 -instance b
undo summary
version 2
network 192.168.2.0
之后使用双向重发布,实现路由共享
bgp 1
ipv4-family -instance b
import-route rip 1
#
Rip 1 -instance b
import-route bgp
B2 我们再换一种方法,这儿用OSPF
R7:
ospf 2 router-id 7.7.7.7
area 0.0.0.0
network 192.168.3.1 0.0.0.0
network 192.168.4.2 0.0.0.0
R4:
ospf 2 -instance b
import-route bgp
area 0.0.0.0
network 192.168.3.2 0.0.0.0
同样的,使用双向重发布,实现路由共享
bgp 1
ipv4-family -instance a
import-route ospf 2
#
ospf 2 -instance a
import-route bgp
可以发现有3.0 和4.0 网段,检测一下:
再检测一下B;
显然可以访问4.2,但是不能访问4.1,4.1也确实不在局域网内;
回过头来,我们再看R7可以访问R2/3/4环回的问题,之前分配给其的IP地址为172.16.1.0网段;我们只需要在R7上做一个NAT,使得局域网在访问公网时能做到地址转换;
acl number 2000
rule 5 permit source 192.168.0.0 0.0.255.255
interface GigabitEthernet0/0/0
nat outbound 2000
以及一个指向公网的缺省即可;
ip route-static 0.0.0.0 0.0.0.0 172.16.1.1