VPN :(Virtual Private Network),即“虚拟专用网络”。
它是一种通过公用网络(通常是互联网)建立安全加密连接的技术,可以在不安全的公共网络上建立起加密通道,将网络数据加密传输,从而实现数据传输的加密、安全和隐私保护
而GRE(Generic Routing Encapsulation),即通用路由封装协议。
提供了将一种协议的报文封装在另一种协议报文中的机制,是一种三层隧道封装技术,使报文可以通过GRE隧道透明的传输,解决异种网络的传输问题。
要注意哦,它是可以在公网上面传输,但它是没有对数据进行加密的。
这个就是GRE VPN的报文,本质上面就是在原有的基础上,加上公网IP,使之能在公网上传输我两个私网的数据。
R1、R2、R3实现公网互通。在私网上运行OSPF路由协议,现需要PC1和PC2通过公网实现私网互通,同时需要保证私网数据传输的可靠性。
其中PC1和PC2上分别指定R1和R3为自己的网关。
要实现PC1和PC2通过公网互通。需要在R1和R3之间使用GRE隧道直连,其中Tunnel接口和与私网相连接口上使用OSPF路由,PC1和PC2就可以互相通信了。为了能够检测隧道链路状态,还可以在GRE隧道两端的Tunnel接口上使能Keepalive功能。
配置GRE通过OSPF实现IPv4协议互通的思路如下:
在设备之间运行IGP协议实现设备互通,这里使用OSPF路由协议且进程110。
与PC相连的设备之间建立GRE隧道,并使能Keepalive功能,并配置与PC相连的网段运行IGP协议,这里使用OSPF协议,使PC1和PC2之间的流量通过GRE隧道传输,实现PC1和PC2互通
① 创建虚拟Tunnel接口
② 指定协议类型为GRE
③ 设置Tunnel接口的网络地址和掩码
④ 指定Tunnel的源端IP地址
⑤ 指定Tunnel的目的端IP地址
⑥ 开启Keepalive检测功能
<Huawei>sys
[Huawei]sysname R1
[R1]undo info-center enable ## 可选,关闭系统消息弹窗
[R1]int g0/0/1
[R1-GigabitEthernet0/0/1]ip address 192.168.10.254 24
[R1-GigabitEthernet0/0/1]qu
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip address 202.101.12.1 24
[R1-GigabitEthernet0/0/0]qu
##配置默认路由指向ISP运营商,实现公网可达
[R1]ip route-static 0.0.0.0 0.0.0.0 202.101.12.2
[R1]int Tunnel 0/0/1 ## 创建隧道接口
[R1-Tunnel0/0/1]tunnel-protocol gre ## 定义隧道协议类型为GRE
[R1-Tunnel0/0/1]ip address 13.13.13.1 24 ## 配置隧道IP地址
[R1-Tunnel0/0/1]source 202.101.12.1 ## 隧道源地址(封装报文头的)
[R1-Tunnel0/0/1]destination 202.101.23.3 ## 隧道目的地址(封装报文头的)
[R1-Tunnel0/0/1]keepalive ## Keepalive 检测机制
[R1-Tunnel0/0/1]qu
[R1]ospf 110 router-id 1.1.1.1 ## 进入OSPF进程110,RID 为1.1.1.1
[R1-ospf-110]area 0 ## 骨干区域 0
[R1-ospf-110-area-0.0.0.0]network 192.168.10.0 255.255.255.0 ## 宣告内容
[R1-ospf-110-area-0.0.0.0]network 13.13.13.0 255.255.255.0
<Huawei>sys
[Huawei]sysname ISP_R2
[ISP_R2]int g0/0/1
[ISP_R2-GigabitEthernet0/0/1]ip address 202.101.23.2 24
[ISP_R2-GigabitEthernet0/0/1]qu
[ISP_R2]int g0/0/0
[ISP_R2-GigabitEthernet0/0/0]ip address 202.101.12.2 24
[ISP_R2-GigabitEthernet0/0/0]qu
<Huawei>sys
[Huawei]sysname R3
[R3]undo info-center enable ## 可选,关闭系统消息弹窗
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip address 202.101.23.3 24
[R3-GigabitEthernet0/0/0]qu
[R3]int g0/0/1
[R3-GigabitEthernet0/0/1]ip address 192.168.20.254 24
[R3-GigabitEthernet0/0/1]qu
##配置默认路由指向ISP运营商,实现公网可达
[R3]ip route-static 0.0.0.0 0.0.0.0 202.101.23.2
[R3]int Tunnel 0/0/1
[R3-Tunnel0/0/1]tunnel-protocol gre
[R3-Tunnel0/0/1]ip address 13.13.13.3 24
[R3-Tunnel0/0/1]source 202.101.23.3
[R3-Tunnel0/0/1]destination 202.101.12.1
[R3-Tunnel0/0/1]keepalive
[R3-Tunnel0/0/1]qu
[R3]ospf 110
[R3-ospf-110]area 0
[R3-ospf-110-area-0.0.0.0]network 13.13.13.0 255.255.255.0
[R3-ospf-110-area-0.0.0.0]network 192.168.20.0 255.255.255.0
[R3-ospf-110-area-0.0.0.0]qu
记住这个报文格式,到后面看我抓包的内容就能够很好地理解啦~
当GRE的网段地址(13.13.13.0)能够相互通信的时候,就表明GRE的隧道是建立成功了
如下图所示
但这个时候,我总部和分部的PC是不能通信的
因为路由表上面是没有这条明细路由,而我又想让它走GRE隧道通过公网到达分部,实行私网通信。
这个时候,可以用OSPF等动态路由协议或者静态路由都可以,将本部的私网接口(e0/1)和隧道接口(tunnel 13)都通告进去,然后对面的也是一样,这样子就能够得到一条明细路由通往对方私网
去往分部的流量走GRE隧道(其实就是在报文头加上GRE封装,封装里面是公网IP作为头部),就能实现通信
R1
sys
sysname R1
undo info-center enable
int g0/0/1
ip address 192.168.10.254 24
qu
int g0/0/0
ip address 202.101.12.1 24
qu
ip route-static 0.0.0.0 0.0.0.0 202.101.12.2
int Tunnel 0/0/1
tunnel-protocol gre
ip address 13.13.13.1 24
source 202.101.12.1
destination 202.101.23.3
keepalive
qu
ospf 110 router-id 1.1.1.1
area 0
network 192.168.10.0 255.255.255.0
network 13.13.13.0 255.255.255.0
ISP_R2
sys
sysn ISP_R2
int g0/0/0
ip address 202.101.12.2 24
qu
int g0/0/1
ip address 202.101.23.2 24
qu
R3
sys
sysname R3
undo info-center enable
int g0/0/0
ip address 202.101.23.3 24
qu
int g0/0/1
ip address 192.168.20.254 24
qu
ip route-static 0.0.0.0 0.0.0.0 202.101.23.2
int Tunnel 0/0/1
tunnel-protocol gre
ip address 13.13.13.3 24
source 202.101.23.3
destination 202.101.12.1
keepalive
qu
ospf 110
area 0
network 13.13.13.0 255.255.255.0
network 192.168.20.0 255.255.255.0
qu