首页 > 解决方案 > 两台主机之间的隧道 Gre 问题(vps 和专用服务器)

问题描述

大家好,我需要解决这个问题(所有服务器都安装了centos 7):我正在尝试通过vps(在意大利-OpenVZ)和专用服务器(在德国)创建一个gre隧道,但它们内部没有通信( ping 和 ssh 命令测试)。接下来我创建了一个 gre tunnel trought vps(在意大利 - OpenVZ)和 vps(在法国 - KVM OpenStack)并进行通信,接下来我创建了一个隧道 vps(在法国 - KVM OpenStack)和一个专用服务器(在德国) 他们的交流。我不明白为什么 vps(在意大利 - OpenVZ)和专用服务器(在德国)不通信,关于如何修复的想法(我也尝试禁用 iptables,firewalld 未启用)?谢谢

换句话说:

在其他尝试中(我的意思是我成功地在这些机器之间创建了 GRE 隧道):

问题(我的意思是我无法在这些机器之间成功创建 GRE 隧道):

我的配置:

  1. 隧道的 VPS 命令:

    echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf

    iptunnel add gre1 mode gre local VPS_IP remote DEDICATED_SERVER_IP ttl 255

    ip addr add 192.168.168.1/30 dev gre1 ip link set gre1 up

  2. 隧道专用服务器命令:

    iptunnel add gre1 mode gre local DEDICATED_SERVER_IP remote VPS_IP ttl 255

    ip 地址添加 192.168.168.2/30 开发 gre1

    ip链接设置gre1


[root@VPS ~]# ping 192.168.168.2
PING 192.168.168.2 (192.168.168.2) 56(84) 个字节的数据。
^C
--- 192.168.168.2 ping 统计 ---
89个包发送,0个接收,100%丢包,时间87999ms
[root@DE ~]# ping 192.168.168.1
PING 192.168.168.1 (192.168.168.1) 56(84) 字节数据。
^C
--- 192.168.168.1 ping 统计 ---
92个包发送,0个接收,100%丢包,时间91001ms
[root@VPS ~]# tcpdump -i venet0 "proto gre" tcpdump:详细输出被抑制,使用 -v 或 -vv 在 venet0 上进行完整协议解码侦听,链接类型 LINUX_SLL(Linux 熟),捕获大小 262144 字节 ^C 0 个数据包被捕获 1 个数据包被过滤器接收 0 个数据包被内核丢弃
[root@DE ~]# tcpdump -i enp2s0 "proto gre" tcpdump:详细输出被抑制,使用 -v 或 -vv 在 enp2s0 上进行完整的协议解码侦听,链接类型 EN10MB(以太网),捕获大小 262144 字节 ^C 0捕获的数据包 过滤器接收的 0 个数据包 内核丢弃的 0 个数据包
[root@VPS ~]# lsmod | grep
ip_gre 4242 -2
ip_tunnel 4242 -2 坐,ip_gre
gre 4242 -2 ip_gre
[root@DE ~]# lsmod | grep
ip_gre 22707 0
ip_tunnel 25163 1 ip_gre
gre 13144 1 ip_gre

具有完整命令输出的控制台映像

标签: linuxsocketsnetworkingcentostunnel

解决方案


如果隧道工作需要ip_forwarding,你需要做/sbin/sysctl -p 什么ip tunnel show以及ip route show两端的和输出是什么


推荐阅读