VPN、VRF

似梦清欢
• 阅读 238

背景: 在进行远距离传输时,需要跨越多个实体网络:

  1. 在实体网络上直接传输数据,会造成数丢失、篡改、破坏等问题。
  2. 搭建专用物理链路,造价昂贵,且不易搭建维护。

VPN:虚拟专用网络

在实体网络的基础上,构建虚拟网络专线(不会改变原有网络拓扑),使用相关技术,进行用户验证、数据保护。

VPN的划分:

  1. 建设VPN的单位
  • 运营商建立。常见租用运营商MPLS VPN专线。
  • 企业自建立。基于Internet建立企业VPN网络,常见的如IPSec VPN、L2TP VPN、SSL VPN等。
  1. 组网方式
  • 用户到站点(远程访问VPN)
  • 站点到站点(局域网到局域网VPN)

VPN的分类:

  1. 二层VPN:L2TP VPN、PPTP VPN
  2. 三层VPN:IPsec VPN、GRE VPN、MPLS VPN(2.5层,一般归为三层)
  3. 应用层VPN:SSL VPN

::: tip VPN本质上就是隧道,隧道的本质就是数据封装。 ::: VPN、VRF


VPN的认证、加密:

  1. 用户认证:对于用户接入合法性判断。
  2. 数据加密:防止数据被截取,泄露数据信息。
  3. 数据验证:防止数据被篡改、伪造。 每种VPN存在不同的认证、加密方式: VPN、VRF

可以将不同VPN结合使用(VPN嵌套)。


GRE:通用路由封装

GRE是三层VPN封装技术,是一个万能隧道,可以将内部任何数据都执行封装(如IPX、IPv4、IPv6等),使封装后的报文能够在另一种网络中(如IPv4)传输,解决跨越异种网络的报文传输问题。 VPN、VRF

VPN、VRF 配置PC1和PC2通信

[AR1]interface Tunnel 0/0/1                 创建隧道逻辑接口,最大0/0/511  
[AR1-Tunnel0/0/1]ip ad 100.1.1.1 24
[AR3]interface Tunnel 0/0/0
[AR3-Tunnel0/0/0]ip ad 100.1.1.2 24

[AR1-Tunnel0/0/1]tunnel-protocol gre        指定隧道协议GRE
[AR3-Tunnel0/0/0]tunnel-protocol gre 

[AR1-Tunnel0/0/1]source ?         指定源
  Cellular         Cellular interface
  GigabitEthernet  GigabitEthernet interface
  NULL             NULL interface
  Tunnel           Tunnel interface
  X.X.X.X          IP address

[AR1-Tunnel0/0/1]source 1.1.1.1            指定隧道源地址
[AR1-Tunnel0/0/1]destination 3.3.3.3       指定隧道目标地址
[AR3-Tunnel0/0/0]source 3.3.3.3
[AR3-Tunnel0/0/0]destination 1.1.1.1

AR1和AR3可以通过隧道实现直连通信: VPN、VRF

::: tip VPN、VRF

VPN、VRF ::: 需要通过静态路由访问到对方的私网:

[AR1]ip route-static 192.168.2.0 24 Tunnel 0/0/1     将去往对方目的网段的流量导入到隧道
[AR3]ip route-static 192.168.1.0 24 Tunnel 0/0/0

上述配置后,PC1访问PC2的流量是:PC1-AR1-隧道-AR3-PC2: VPN、VRF ::: tip VPN、VRF :::

GRE支持简单的密钥加密:

[AR1-Tunnel0/0/1]gre key ?
  INTEGER<0-4294967295>  Tunnel key Value

[AR1-Tunnel0/0/1]gre key 123456
[AR3-Tunnel0/0/1]gre key 123456

加密的数据抓包时可以看到key值做加密信息: VPN、VRF


VRF

VRF:虚拟路由转发,通过在一台三层转发设备上创建多张路由表实现数据或业务的隔离。 通过虚拟化在一台实际的物理设备上构建多个虚拟路由器,且虚拟路由器独占接口、路由表、路由协议等等。

每一台三层设备都存在一张Public路由表(共享/公共路由表)。 默认情况下,设备产生的路由信息都会加入Public路由表项。

VRF技术又叫VPN实例技术,设备使用后会创建新的路由表。

VPN、VRF 如上,如果在AR1上配置了两个VPN实例,就可以实现PC1和PC2在同网段上的隔离。

[AR1]ip vpn-instance ?
  STRING<1-31>  VPN instance name
[AR1]ip vpn-instance VPN_A      创建路由表的名字为VPN实例的命名VPN_A
[AR1-vpn-instance-VPN_A]ipv4-family   使能VPN实例的IPv4地址族,并进入VPN实例IPv4地址族视图(默认不使能)
[AR1-vpn-instance-VPN_A-af-ipv4]dis ip rou vpn-instance VPN_A     查看新创建得到的路由表信息

VPN、VRF

被VPN实例隔离的路由表不会相互访问。

[AR1-GigabitEthernet0/0/0]ip binding vpn-instance VPN_A      VPN实例VPN_A绑定在接口G0/0/0上

::: warning 接口绑定完成后,接口上原有的配置信息都会消失,需要重新配置。 ::: VPN、VRF 接口的网段信息出现在VPN实例VPN_A中: VPN、VRF VPN实例VPN_B绑定在接口G0/0/1上,网段出现在对应实例的路由表中: VPN、VRF VPN隔离使得同一台设备的不同接口可以配置相同的网络: VPN、VRF

::: tip 一般企业通过VRF做隔离时,一个出口用来做VPN连接,另一个出口用于外网通信。 :::


实例间通信:

1.网段不能相互冲突,因为VPN实例隶属于三层VPN(即可以实现三层互通)。 2.通过VPN实例间的相互引入,学习各VPN实例的路由。


VPN、VRF 如上PC1和PC2通信时,PC1需要在VPN实例A中创建一条静态路由,且下一跳指向VPN实例B的路由表:

PC1-PC2时,VPN_A路由表中没有对方路由,需要在VPN_A中指向对方网段,转发到VPN_B中,下一跳是对方路由:
[AR1]ip route-static vpn-instance VPN_A 192.168.2.0 255.255.255.0 vpn-instance VPN_B 192.168.2.1    
PC2-PC1时,VPN_B路由表中没有对方路由,需要在VPN_B中指向对方网段,转发到VPN_A中,下一跳是对方路由:  
[AR1]ip route-static vpn-instance VPN_B 192.168.1.0 255.255.255.0 vpn-instance VPN_A 192.168.1.1

VPN、VRF


VPN实例是一个本地概念,只有本设备生效,不会影响其他设备。

OSPF的进程ID是本地概念,链路上的两台设备进程ID不同不会影响邻居建立。 OSPF不同进程之间的LSDB是相互隔离的。

VPN、VRF

[AR2]ospf 3 router-id 10.2.2.2
[AR2-GigabitEthernet0/0/0]ospf network-type p2p
[AR2-GigabitEthernet0/0/0]ospf enable 3 area 0

[AR3]ospf 1 router-id 10.3.3.3
[AR3-GigabitEthernet0/0/0]ospf network-type p2p
[AR3-GigabitEthernet0/0/0]ospf enable 1 area 0


[AR2]ospf 4 router-id 10.2.2.2
[AR2-GigabitEthernet0/0/1]ospf network-type p2p 
[AR2-GigabitEthernet0/0/1]ospf enable 4 area 0

[AR4]ospf 2 router-id 10.4.4.4
[AR4-GigabitEthernet0/0/0]ospf network-type p2p    
[AR4-GigabitEthernet0/0/0]ospf enable 2 area 0

VPN、VRF OSPF在路由表中没有隔离: VPN、VRF AR3无法和AR4通信,原因就是AR2上OSPF 数据库做了隔离。 AR3数据库: VPN、VRF

数据库引入:
[AR2-ospf-3]import-route ospf 4

AR3数据库: VPN、VRF ::: tip 如果AR2需要把AR3和AR4的路由传递给其他交换机,需要有两个VPN实例对应AR2上的两个OSPF进程,才能将AR2两个进程的数据库都传出去。 :::


OSPF不同进程和VPN实例绑定

[AR2-ospf-3]undo import-route ospf 4

::: warning 需要先把之前创建的OSPF进程和相关配置删除,然后再绑定VPN实例时重建,否则会报错进程已被使用。 :::

[AR2]ospf 3 vpn-instance VPN_A router-id 10.2.2.2
[AR2-GigabitEthernet0/0/0]ip binding vpn-instance VPN_A
[AR2]ospf 4 vpn-instance VPN_B router-id 10.2.2.2
[AR2-GigabitEthernet0/0/1]ip binding vpn-instance VPN_B

接口绑定实例后配置消失,需要重新配置。 VPN、VRF OSPF数据库中无变化: VPN、VRF 公共路由表中没有了AR3和AR4的路由条目: VPN、VRF 通过VPN实例的路由表将AR3和AR4的路由实现隔离: VPN、VRF VPN、VRF 此时再在AR2上执行两个进程的import引入也不会有产生路由变化。 ::: tip 同协议不同实例间,相互引入很难实现效果,通常使用静态等方式实现通信。 路由引入常用于不同协议之间。

::: 如AR3也做VPN实例,使用如下命令将静态路由引入到VPN实例中:

[AR3]ip route-static vpn-instance VPN_A 192.168.1.1 32 NULL 0

然后再引入到AR3的OSPF中:

[AR3]import-route static

OSPF中import后没有VPN实例的参数,只能引入对应VPN实例中的路由。 AR2可以通过OSPF学到对应的数据库LSA信息,但不会加入到IP路由表中(不会计算路由)。 ::: warning AR2和AR3都属于VPN实例中,只要是VPN实例中发出的外部路由,都会被认为是环路,OSPF中的DNbit置位,该LSA不参与路由计算(环回口属于内部路由)。 防止外部路由引入VPN实例内后再传到外部引发环路。 ::: 解决方法:

[AR2-ospf-3]vpn-instance-capability simp       不检查vpn路由环路
点赞
收藏
评论区
推荐文章

暂无数据

似梦清欢
似梦清欢
Lv1
学海无涯
文章
17
粉丝
17
获赞
1