如何在Linux上创建GRE隧道如何在Linux上创建GRE隧道如何在Linux上创建GRE隧道如何在Linux上创建GRE隧道
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在Linux上创建GRE隧道

问题:我想使用 GRE 隧道连接到远程网络。如何在 Linux 上的两个端点之间创建 GRE 隧道?

GRE 隧道是 IP-over-IP 隧道,可以封装 IPv4/IPv6 和单播/组播流量。要在 Linux 上创建 GRE 隧道,您需要 ip_gre 内核模块,它是 GRE over IPv4 隧道驱动程序。

因此,首先确保 ip_gre 已加载。


$ sudo modprobe ip_gre
$ lsmod | grep gre

ip_gre                 22432  0
gre                    12989  1 ip_gre

在这里,我们假设您要在具有以下 IP 地址的两个接口之间创建 GRE 隧道。

  • 主机A: 192.168.233.204

  • 主机B: 172.168.10.25

在主机 A 上,运行以下命令。


$ sudo ip tunnel add gre0 mode gre remote 172.168.10.25 local 192.168.233.204 ttl 255
$ sudo ip link set gre0 up
$ sudo ip addr add 10.10.10.1/24 dev gre0

在上面,我们创建了一个名为gre0的GRE类型隧道设备,并将其远程地址设置为172.168.10.25。隧道数据包将源自 192.168.233.204(本地 IP 地址),其 TTL 字段将设置为 255。隧道设备被分配 IP 地址 10.10.10.1 和网络掩码 255.255.255.0。

现在验证 GRE 隧道的路由是否已正确设置:


$ ip route show

default via 135.112.29.1 dev eth0  proto static
10.10.10.0/24 dev gre0  proto kernel  scope link  src 10.10.10.1

在主机 B 上,运行类似的命令,如下所示。


$ sudo ip tunnel add gre0 mode gre remote 192.168.233.204 local 172.168.10.25 ttl 255
$ sudo ip link set gre0 up
$ sudo ip addr add 10.10.10.2/24 dev gre0

此时,应在主机 A 和主机 B 之间建立 GRE 隧道。要验证这一点,请从一个隧道端点 ping 另一个端点。

在主机 A 上,运行:


$ ping 10.10.10.2

PING 10.10.10.2 (10.10.10.2) 56(84) bytes of data.
64 bytes from 10.10.10.2: icmp_req=1 ttl=64 time=0.619 ms
64 bytes from 10.10.10.2: icmp_req=2 ttl=64 time=0.496 ms
64 bytes from 10.10.10.2: icmp_req=3 ttl=64 time=0.587 ms

如果要拆除现有的 GRE 隧道,请从任一端运行以下命令。


$ sudo ip link set gre0 down
$ sudo ip tunnel del gre0
©2015-2025 艾丽卡 support@alaica.com