Gre 隧道 Cisco Linux 流量转发

Gre 隧道 Cisco Linux 流量转发

我设置了一个 GRE 隧道、一个思科路由器和一个 Linux 机器,Linux 机器中的隧道接口名为 pic。好吧,我必须通过 Linux 机器转发来自思科的流量。我在 Linux 机器中设置的规则如下:


echo "1" > /proc/sys/net/ipv4/ip_forward
iptables  -A INPUT -p 47 -j ACCEPT
iptables  -A FORWARD -i ppp0 -j ACCEPT
iptables  -A FORWARD -i pic  -o ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables  -A FORWARD -i ppp0 -o pic -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables  -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

我看到流量来自隧道并转发到互联网,但没有发送数据包的回复。

我可能会错过类似路由规则的东西。

答案1

假设防火墙中没有任何规则,并且 INPUT、OUTPUT 和 FORWARD 链的默认策略是 ACCEPT,那么您只需要启用 ip 转发和 MASQUERADE 的行就可以工作。

如果防火墙中已经有规则,请将它们发布在这里,iptables --list -v -n以便iptables -t nat --list -v -n我们了解整个设置。

简而言之,你应该:

  1. 启用 IP 转发(与第一行一样)
  2. 启用 SNAT 或 MASQUERADING(如最后一行所示)
  3. 在 INPUT 链中允许 gre 协议
  4. 允许在 FORWARD 链中从 pic 到 ppp0 建立新连接
  5. 允许在 FORWARD 链中从 ppp0 到 pic 建立 RELATED、ESTABLISHED 连接

相关内容