OpenVPN 高级路由技术-全面的互通性配置

3,159 阅读4分钟

本文全面介绍OpenVPN的路由配置,不再阐述理论。为了简单且不引入其它问题,以下的配置不考虑NAT。 零.介绍和声明以及拓扑图

  1. 以下的配置不再给出任何配置文件或者配置选项,比如iroute配置等;以下路由配置可以不使用默认网关,使用默认网关只是为了方便。正确的做法是配置指向确切网络的路由,变长掩码非0

  2. 由于OpenVPN支持tun和tap两种模式,在Tun中,路由指的是下一跳节点或者是一个虚拟网卡,在tap中,路由指的是从OpenVPN虚拟交换机出去的虚拟端口,这二者是截然不同的,协议也没有工作在同一个层,因此OpenVPN内部路由使用multi_instance代表这两者,tun模式中,multi_instance代表三层路由目标,tap模式中,multi_instance代表二层路由目标,即端口。 拓扑图如下:

一. TUN模式

A. TUN模式无NAT互访

1. VPN客户端访问NET0/NET1

1.1. 默认网关指向VPN服务器的虚拟地址;

2. VPN客户端后面的网络访问NET0/NET1:

2.1.解决VPN客户端后面网络和VPN客户端本身的可达性;

2.2. 参见1。

3. VPN客户端1访问VPN客户端2:

3.1. 默认网关指向VPN服务器的虚拟IP地址

4. VPN客户端2后面的网络访问VPN客户端1后面的网络

4.1. 通过路由解决VPN客户端后面网络和VPN客户端本身的可达性

4.2. 参见3

5. VPN服务器端访问VPN客户端

5.1. 直接访问。VPN服务器和VPN客户端之间有直连的点对点路由

6. VPN服务器端访问VPN客户端后面子网

6.1. 添加指向该子网的路由指向TUN网卡,确保系统路由可达性

6.2. 配置针对该VPN客户端的iroute内部路由,路由指向欲访问的子网

7. VPN服务器端后面的子网访问VPN客户端后面的子网

7.1. 通过路由解决VPN服务器后面子网到VPN服务器本身的可达性

7.2. 参见6

B. VPN服务器路由表

1. VPN服务器系统路由表:

NET4->tun0

NET3->tun0

NET2->tun0

2. VPN服务器点对点直连路由表:

VPN客户端1->tun0

VPN客户端2->tun0

3. VPN服务器内部路由表

NET2->VPN客户端1的multi_instance

NET3->VPN客户端2的multi_instance

NET4->VPN客户端3的multi_instance

二. TAP模式

A. TAP模式无NAT互访

1. VPN客户端访问NET0/NET1

1.1. 默认网关指向VPN服务器的虚拟地址;

2. VPN客户端后面的网络访问NET0/NET1:

2.1. 解决VPN客户端后面网络和VPN客户端本身的可达性;

2.2. 参见1。

3. VPN客户端1访问VPN客户端2:

3.1. 它们属于一个虚拟以太网,直接访问,通过链路层ARP解决IP可达性

4. VPN客户端2后面的网络访问VPN客户端1后面的网络

4.1. 通过路由解决VPN客户端后面网络和VPN客户端本身的可达性

4.2. VPN客户端2的默认网关指向VPN客户端1的虚拟IP地址

5. VPN服务器访问VPN客户端

5.1. 它们属于同一个以太网,链路层路由直接访问

6. VPN服务器端访问VPN客户端后面子网

6.1. 网关指向VPN客户端虚拟IP地址,类似以太网通过路由器访问外网,此时VPN客户端是路由器

7. VPN服务器端后面的子网访问VPN客户端后面的子网

7.1. 通过路由保证VPN服务器端后面网络到VPN服务器端的可达性

7.2. 参见6

B. 与任何子网没有Bridge时VPN服务器路由表

1. 系统路由表:

NET4->via VPN客户端2的虚拟IP

NET3->via VPN客户端2的虚拟IP

NET2->via VPN客户端1的虚拟IP

2. VPN服务器链路层直连路由表:

VPN客户端1->tap0

VPN客户端2->tap0

3. VPN服务器内部路由表(交换机映射表)

VPN客户端1的MAC地址<->VPN客户端1的multi_instance

VPN客户端2的MAC地址<->VPN客户端2的multi_instance

C. VPN客户端2与NET2 Bridge时VPN服务器路由表

1. 系统路由表

NET4->via VPN客户端2的虚拟IP

NET3->via VPN客户端2的虚拟IP

2. VPN服务器链路层直连路由表:

VPN客户端1->tap0

VPN客户端2->tap0

NET2->tap0

3. VPN服务器内部路由表(交换机映射表)

VPN客户端1的MAC地址<->VPN客户端1的multi_instance

VPN客户端2的MAC地址<->VPN客户端2的multi_instance

NET2中所有同链路层网段MAC地址<->VPN客户端1的multi_instance



reference