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

gre over ipsec工作原理

    原理:先用GRE创建隧道,再用IPSec保护创建的隧道
    优点:可以运行动态路由协议
    注意:使用GRE隧道,建议修改MTU小于1480

第一步:实现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

===========================

ipv6-to-ipv4 gre 隧道实现

#假设您拥有如下ipv6地址空间
    3ffe:406:5:1:5:a:2:1/96
    #本地IPv4地址:172.16.17.18
    #远端IPv4地址:172.22.23.24(6bone路由器的IPv4地址)

    ip tunnel add sixbone mode sit remote 172.22.23.24 local 172.16.17.18 ttl 255
    ip link set sixbone up
    ip addr add 3ffe:406:5:1:5:a:2:1/96 dev sixbone
    ip route add 3ffe::/15 dev sixbone 

第二步:实现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/76.html

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

如果文章对你有帮助,欢迎点击上方按钮打赏作者

最后编辑于:2023/3/25作者: 辣条①号

现在在做什么? 接下来打算做什么? 你的目标什么? 期限还有多少? 进度如何? 不负遇见,不谈亏欠!

暂无评论

发表回复

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

arrow grin ! ? cool roll eek evil razz mrgreen smile oops lol mad twisted wink idea cry shock neutral sad ???

文章目录