如何去做stream量转发

有一个服务器(节点A),充当GRE隧道的终点。 还有一个Ubuntu服务器(节点B,它看到互联网)充当了GRE隧道的端点。 一些设备(节点C1,2,3 ..)连接到服务器A,他们看到服务器B,但不是互联网的其余部分,甚至DNS查找也不起作用。

我需要在服务器B上configuration什么来将来自和去往设备C的stream量转发/路由到因特网。 理想情况下,我也想只允许访问某些地址。 这个问题并不涉及拓扑结构,这一点似乎非常简单; 问题是我只是像iptables / squid / route / etc这样的工具,像forwarding / routing / bridgin / etc和缩写OMG / why / are / there / so / many / abbreviations这样的工具。

编辑服务器networkingconfiguration:

  • 服务器A有一个外部IP 94.xxx(我真的不知道任何其他事情)
  • A和B通过GRE隧道连接
  • 服务器B有两个networking设备:
    • eth0,地址为72.yyy(这是Internet接口)
    • tun0,地址为10.0.2.1(这是GRE隧道接口)
  • terminalC#的IP地址范围是10.19.0.0/16

因此,问题是将来自子网10.0.2.1的stream量转发到互联网,反之亦然(如果请求的原始IP没有改变,那将是完美的)。

我讨厌我没有深究这个问题,但实际上,在两天内不可能学习所有这些缩写/协议/原型。

无论如何,build立似乎只是通过在eth0接口上共享Internet连接(MASQUERADE),即将以下规则添加到iptables

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE