如何配置l2tp over gre隧道

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何配置l2tp over gre隧道相关的知识,希望对你有一定的参考价值。

参考技术A L2TP支持MP(MultilinkProtocol),把多个物理通道捆绑为单一逻辑信道pptp使用M$的拨号网络作为客户端,使用gre做tunnel封装,mppe进行加密。l2tp也使用M$的拨号网络做为客户端,在lac进行一次证,在lns进行二次认证,tunnel是处于lac与lns之间。加密方式可以选择mppe和ipsec。ipsec使用ESP/AH做为tunnel封装,一般需要专用的客户端。如cisco的vpnclient或其它厂商的client.PPTP和L2TP都使用PPP协议对数据进行封装,然后添加附加包头用于数据在互联网络上的传输。尽管两个协议非常相似,但是仍存在以下几方面的不同:1.PPTP要求互联网络为IP网络。L2TP只要求隧道媒介提供面向数据包的点对点的连接。L2TP可以在IP(使用UDP),桢中继永久虚拟电路(PVCs),X.25虚拟电路(VCs)或ATMVCs网络上使用。2.PPTP只能在两端点间建立单一隧道。L2TP支持在两端点间使用多隧道。使用L2TP,用户可以针对不同的服务质量创建不同的隧道。3.L2TP可以提供包头压缩。当压缩包头时,系统开销(overhead)占用4个字节,而PPTP协议下要占用6个字节。4.L2TP可以提供隧道验证,而PPTP则不支持隧道验证。但是当L2TP或PPTP与IPSEC共同使用时,可以由IPSEC提供隧道验证,不需要在第2层协议上验证隧道。 参考技术B

恩。现在需要转换IP来操作

去下个IP软件。。九~州IP。。就可以了

直接在官网下的哟。

L2TP拨号

linux的搭建gre隧道

一、准备

  • VMware Workstation
  • 2台CentOS虚拟机

1、GRE介绍

GRE隧道是一种IP-over-IP的隧道,是通用路由封装协议,可以对某些网路层协议的数据报进行封装,使这些被封装的数据报能够在IPv4/IPv6 网络中传输。
Tunnel 是一个虚拟的点对点的连接,提供了一条通路使封装的数据报文能够在这个通路上传输,并且在一个Tunnel 的两端分别对数据报进行封装及解封装。 
一个X协议的报文要想穿越IP网络在Tunnel中传输,必须要经过加封装与解封装两个过程。

2、地址规划

 

  主机1 主机2
原主机ip(外网地址) 192.168.2.10 192.168.2.20
gre端ip(内网地址) 192.168.10.10 192.168.20.20

 

注:

  • 此处为了能让主机1和主机2能后相互通信,我们就配置成同一个网段;
  • gre端ip地址任意定,不需要同一网段地址。

 

二、配置网卡信息

用“桥接模式”来模拟真实环境的外网,及需要两台主机能够互(ping)通。

1、Linux主机1网卡配置:

[root@localhost network-scripts]# cat ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=8e6777b6-11ef-46c3-a094-8f9d65db1ea8
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.2.10
GATEWAY=192.168.2.1
NETMASK=255.255.255.0
DNS1=8.8.8.8
DNS2=114.114.114.114

2、Linux主机2网卡配置:

[root@localhost network-scripts]# cat ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=8e6777b6-11ef-46c3-a094-8f9d65db1ea8
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.2.20 
GATEWAY=192.168.2.1
NETMASK=255.255.255.0
DNS1=8.8.8.8
DNS2=114.114.114.114

 

三、配置隧道信息

1、Linux主机1隧道配置:

在/etc/sysconfig/network-scripts/目录下创建名为ifcfg-tun0文件并编辑,内容如下

DEVICE=tun0
BOOTPROTO=static
ONBOOT=yes
DEVICETYPE=tunnel
TYPE=GRE
PEER_INNER_IPADDR=192.168.20.20
PEER_OUTER_IPADDR=192.168.2.20
MY_INNER_IPADDR=192.168.10.10
MY_OUTER_IPADDR=192.168.2.10
  • DEVICE=tun0  # 服务名称,后面需要这个名称进行开启和关闭
  • BOOTPROTO=static
  • ONBOOT=yes
  • DEVICETYPE=tunnel
  • TYPE=GRE
  • PEER_INNER_IPADDR  # 对端隧道ip地址(内网)
  • PEER_OUTER_IPADDR  # 对端主机ip地址(外网)
  • MY_INNER_IPADDR  # 本端隧道ip地址(内网)
  • MY_OUTER_IPADDR  # 本端主机ip地址(外网)

2、Linux主机2隧道配置:

在/etc/sysconfig/network-scripts/目录下创建名为ifcfg-tun0文件并编辑,内容如下

DEVICE=tun0
BOOTPROTO=static
ONBOOT=yes
DEVICETYPE=tunnel
TYPE=GRE
PEER_INNER_IPADDR=192.168.20.20
PEER_OUTER_IPADDR=192.168.2.20
MY_INNER_IPADDR=192.168.10.10
MY_OUTER_IPADDR=192.168.2.10

 

四、重启网卡和tunnel服务

1、开启gre服务

[root@localhost ~]# modprobe ip_gre  // 加载gre模块
[root@localhost ~]# lsmod | grep gre  // 显示gre模块是否加载成功 
ip_gre                 22931  0 
gre                    13144  1 ip_gre
ip_tunnel              25163  1 ip_gre

2、重启网卡

[root@localhost network-scripts]# service network restart
Restarting network (via systemctl):                        [  OK  ]

3、关闭在启动tunnel

[root@localhost network-scripts]# ifdown ifcfg-tun0
[root@localhost network-scripts]# ifup ifcfg-tun0

4、查看配置情况

[root@localhost network-scripts]# ifconfig

技术图片

5、关闭放火墙

[root@localhost ~]# systemctl stop firewalld

6、然后直接测试ping对端隧道ip地址(内网),看能否通信

技术图片

能够ping通说明配置成功

以上是关于如何配置l2tp over gre隧道的主要内容,如果未能解决你的问题,请参考以下文章

GRE OVER IPSEC的数据包的IP地址是如何封装的

F1060 GRE OVER IPSEC典型组网配置案例

GRE over IPSEC

配置GRE 隧道

GRE隧道配置

OpenvSwitch的GRE隧道