如何在Linux中隧道配置 Linux ip tunnel隧道建立

首先确认内核支持并加载GRE模块,然后在两台主机上创建GRE隧道接口并配置IP地址,接着启用接口并验证连通性,最后根据需要配置静态路由实现子网互通,确保两端参数匹配且防火墙允许协议47。

如何在Linux中隧道配置 Linux ip tunnel隧道建立

Linux中的IP隧道(IP Tunneling)可用于在不同网络之间封装和传输数据包,常用于跨网络连接、IPv6过渡或构建虚拟专用网络。最常用的隧道类型是GRE、IPIP、SIT和VXLAN。以下以GRE隧道为例,说明如何在两台Linux主机之间建立和配置IP隧道。

1. 确认内核支持并加载模块

大多数现代Linux发行版默认支持IP隧道。可检查是否加载了相关内核模块:

modprobe ip_gre # 加载GRE模块
lsmod | grep gre # 确认模块已加载

如果使用IPIP或SIT(用于IPv6),则加载对应模块:

modprobe ipip
modprobe sit

2. 创建GRE隧道接口

在两端主机上分别创建GRE隧道。假设:

  • 主机A公网IP:192.168.1.10
  • 主机B公网IP:192.168.1.20
  • 隧道内网IP:A端 10.0.0.1/30,B端 10.0.0.2/30

在主机A上执行:

ip tunnel add gre1 mode gre local 192.168.1.10 remote 192.168.1.20 ttl 255
ip addr add 10.0.0.1/30 dev gre1
ip link set gre1 up

在主机B上执行:

ip tunnel add gre1 mode gre local 192.168.1.20 remote 192.168.1.10 ttl 255
ip addr add 10.0.0.2/30 dev gre1
ip link set gre1 up

3. 验证隧道连通性

启用后,可在任一端ping对端隧道IP:

ping 10.0.0.2 # 从主机A测试

查看隧道状态:

ip tunnel show gre1
ip addr show gre1

确认输出中状态为“UP”,且封装模式正确。

4. 配置路由(可选)

若想通过隧道访问远程子网,需添加静态路由。例如,主机B后端有子网172.16.2.0/24:

# 在主机A添加路由
ip route add 172.16.2.0/24 via 10.0.0.2

确保主机B也配置了返回路由:

ip route add 172.16.1.0/24 via 10.0.0.1 # 假设A后端是此网段

隧道建立后,数据包将通过GRE封装在公网上传输,实现逻辑直连。关闭隧道可使用:

ip link set gre1 down
ip tunnel del gre1

基本上就这些。根据需求选择IPIP(精简,仅IPv4)、SIT(IPv6 over IPv4)或VXLAN(大规模虚拟化)等类型,操作方式类似。关键是两端参数匹配,且防火墙允许协议47(GRE)或对应端口。

linux 子网 封装 接口 linux 虚拟化

上一篇
下一篇