我正在尝试在运行 Linux(V2.6.39.3)的 GW 上建立 GRE 隧道。网络拓扑如下:
当地的:
- PC_A 已连接到网关
- PC_A 由 GW 主机中的专用 RND(路由网络设备)VLAN 表示
- 在 GW 主机上创建 GRE 隧道对象
- erouter0 iterface 是 GW 到 WAN 的接口
远程(GRE 服务器):
- erouter0 iterface 是 GW 到 WAN 的接口
- 在 GRE 服务器主机上创建 GRE 隧道对象
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 本地 >>>>>>>>>>>>>>>>>>>>>>>>>>>> <= 远程
PC_A <===> VLAN 接口 <===> GRE 隧道接口 <====> erouter0 <== Internet ==> erouter0 <==> GRE 隧道
- PC_A:192.168.2.20
- VLAN 接口:192.168.2.1
- GRE 隧道(本地)-?(不确定 IP 地址是否是强制性的)
- erouter0(本地)-10.139.39.59
- erouter0 (远程) - 10.139.39.148
- GRE 隧道(远程)-?(不确定 IP 地址是否是强制性的)
我使用以下步骤在本地创建 GRE 隧道:
- ip tunnel添加gretun0模式gre远程10.100.39.148本地10.100.39.59 dev erouter0
- ip link set dev gretun0 up
- ip 规则添加 iif l2sd0.2 表 4
- ip route 添加表 4 默认 dev gretun0
**** 正如您所看到的,我没有为 GRE 隧道设置 IP 地址(有必要吗?)
问题:
一旦生成从 PC_A 到 GRE 服务器的 Iperf UDP 流量,流量就不会到达目的地。此外,一旦使用 tcpdump 分析通过相关接口的流量,我只能观察到到达本地 RND VLAN 接口的数据包,但它们永远不会到达 GRE 隧道接口或本地 erouter0 接口。
我试图弄清楚问题是否与我使用的错误配置有关,但直到现在我还没有找到问题的根本原因。
我感谢您的善意建议/帮助。
谢谢,奥伦