VPN之(二) gre隧道 gre over ipsec 在centos7上的实现方式

gre over ipsec工作原理
原理:先用GRE创建隧道,再用IPSec保护创建的隧道
优点:可以运行动态路由协议

第一步:实现GRE隧道

#检查两台机器是否都加载了gre内核模块(若未加载,可执行modprobe ip_gre)
lsmod |grep gre

#在HK服务器上添加如下文件
[root@200-67 ~]# cat /etc/sysconfig/network-scripts/ifcfg-gre1 
DEVICE=gre1
ONBOOT=yes
TYPE=GRE
BOOTPROTO=static
#PEER_OUTER_IPADDR指定SZ服务器的公网IP
PEER_OUTER_IPADDR=192.168.100.67
#PEER_INNER_IPADDR指定SZ服务器的greIP
PEER_INNER_IPADDR=10.0.0.2
#下面表示自己的IP,若是指定后无法建立GRE,可以不指定MY_OUTER_IPADDR
MY_OUTER_IPADDR=192.168.200.67
MY_INNER_IPADDR=10.0.0.1

#在SZ服务器上添加如下文件
[root@100-67 ~]# cat /etc/sysconfig/network-scripts/ifcfg-gre1 
DEVICE=gre1
ONBOOT=yes
TYPE=GRE
BOOTPROTO=none
PEER_OUTER_IPADDR=192.168.200.67
PEER_INNER_IPADDR=10.0.0.1
MY_OUTER_IPADDR=192.168.100.67
MY_INNER_IPADDR=10.0.0.2

#重启网络服务
	systemctl restart network

#在HK服务器上测试gre联通性
	ping 10.0.0.2
	
#在SZ服务器上抓包,是否是GRE协议(查看对端的IP地址有哪些包)
	tcpdump -n -i ens192 host 192.168.200.67

===========================
另一种简单的gre实现方式
#创建并启用gre
	ip tunnel add gre100 mode gre remote 121.207.22.123 local 111.2.33.28 ttl 255
	ip link set gre100 up
	ip addr add 10.10.10.2 peer 10.10.10.1 dev gre100

#删除gre
	ip link set gre100 down
	ip tunnel del gre100

第二步:实现GRE over IPSec(在两台设备上都要安装)

	#安装ipsec的实现包,可以是strongswan或者openswan亦或者libreswan
	yum install libreswan

	#初始化ipsec
	ipsec initnss
	
	#生成ckaid,(要指定后面的一些列参数,不指定无法加密GRE)
	ipsec newhostkey --configdir /etc/ipsec.d --random /dev/urandom --output /etc/ipsec.d/01.secrets --verbose;
	
	#根据上一步各自生成的ckaid生成各自的leftrsasigkey(记录下该值,后面有用)
	ipsec showhostkey --left --ckaid d8fba9e7acd82a08463a116b0b2f2d677a8f1579
	
	#创建ipsec的配置文件/etc/ipsec.d/ipsec.conf(该文件默认不存在)
	#注意,该gre1是您创建的网卡接口,该文件,在两台机器上也应该互换左右顺序
	#注意leftrsasigkey和rightrsasigkey以及left和right的内容也要调换!
	cat /etc/ipsec.d/ipsec.conf

conn gre1
    authby=rsasig
    auto=start
    type=transport
    left=192.168.200.67
    leftprotoport=gre
leftrsasigkey=0sAwEAAc1/vyyQhR33PiTCRFT0W7y6pzZ6C0uIlhILbl1CdgfWMP+Vv3YTBnOIxiPCceu2qdbFFVohbULr4lOaWri9P9JX0UFnzC2i6KY/2MbEdwR9WcuIWb4XwECC6BCikJFXLb1Zg6gEa9520Gv6zlhzBfVPFW1kTRHkEKsXNDucECOFqemeiy86EuozxEFEs5lzJPx86MczJPhlvu3qk+Awfi8uUugsFo9Lnjx/GKjJos+oGJY0SN3T78v7iPWNKgJg7IyXDTYA2JK7fcx2XVZQ8lDfQNtdAk6hXf4IwufjszYyqykYd1LJLfcwuLPAr7SPw5IqKra75KJAXudqJeRKre2LQ/6mwz2XPox9BTPQm4i4xMN1vPg3SnsKyv6v0WBBTUhAqCya6vAV6pwI5uO66FmoEjXjNwdX3jUjIpasgYJgcDe14ROumtF/MXD4Iie6wlgxJIs/jug/+KoeS6OHrH9A/0KxlSRk8qZ31+Klj8k8yZJJN3AyjLSX+jHr7bz6E4jLnSk2ZuS4eflT/PsH+FhAJJHVQZsLAWemzc3iwNuRK7GJcQpwmMScI3yOLFLeeXjX3AKOcw==
    right=192.168.100.67
    #leftid=1.2.3.4  如果1.2.3.4个的服务器是NAT网络,即公网地址不在网卡上,需要指定"leftid",另一端也是同理
    rightprotoport=gre
rightrsasigkey=0sAwEAAbIy3s6tUWmA5KXfgg/lnRkHqEuJ7yzA71kIUiGwbjkykW15eNFyiCvkxNPHdEvNp4YOFjOZRpXa5iubg/2gVJt/Jg6dvdcYvUhaWvlXP/Styewkr0jP9A6sagFt4XdT+otq18RokF3OYsBtNbWHteIYLY/z1dXJkCQwOkBl/HJcJbLDcCZ0uDHjB+ZrCTcLg5Dyc/lanIah2JrOUSNmUg+3caV2axrENE1eCt/mWnNkTDYMc9yaag0RCqrquUvuoMRfbvQLYlQ6qT56E0Wrty8amq0bBATlRUy7z2jG4KIB/VqSdiTueOmhU9m1Zkkna702zx+uyqLVEv7EzogSi0k/NbSpFXFIdXF6zI6wEdcOtuPZLaw4fK7A9W0DQxyUU+UTe5e1wMmMWksAXySidxcjzdHgxHWPN6sWcxvH7N6OTTnPooMdI7o6SCMiQw7lYSq1r09uAS4MSgRFt6svN60ts6ryjEokM8QiQ+/TNYM7cOtahtid9pHmzWHcqPcBu+dieRDcD8HlkJU=

	#重启ipsec服务
	systemctl restart ipsec
	
	#验证是否能通,查看ipsec运行状态,并在HK服务器上ping SZ服务器的gre1接口地址
	systemctl status ipsec
	ping 10.0.0.2
	
	#在SZ服务器上抓包HK服务器192.168.200.67过来的数据包,验证其是否加密(已加密)
[root@100-67 ~]# tcpdump -n -i ens192 host 192.168.200.67
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens192, link-type EN10MB (Ethernet), capture size 262144 bytes
01:08:47.060823 IP 192.168.200.67 > 192.168.100.67: ESP(spi=0x665776f8,seq=0x1), length 132
01:08:47.060958 IP 192.168.100.67 > 192.168.200.67: ESP(spi=0x48d46ecd,seq=0x1), length 132
01:08:48.060376 IP 192.168.200.67 > 192.168.100.67: ESP(spi=0x665776f8,seq=0x2), length 132

若是华为设备,可参考如下文章进行实现https://boke.wsfnk.com/archives/527.html

声明:本文为原创,作者为 辣条①号,转载时请保留本声明及附带文章链接:https://boke.wsfnk.com/archives/747.html

最后编辑于:2019/7/8作者: 辣条①号

暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注