CentOS,双路由,nat

CentOS,双路由,nat

Linux 服务器 eth0 设置了默认路由(网关)。连接到 eth2 的客户端应该能够通过 nat 访问互联网(eth1)。

接口:

eth0:LAN(默认路由)/IP:10.0.0.5,网关:10.0.0.1

eth1:广域网/IP:10.1.0.10,网关:10.1.0.1

eth2:LAN(通过 WAN 进行 nat)/ IP:192.168.0.1

图像:

在此处输入图片描述

我怎么做?

答案1

解决这个问题需要两个(相关)的东西 -

  1. 2 个路由表
  2. 基于策略的路由将流量引导出适当的接口。

您没有建议您使用什么发行版,因此很难提供您的发行版执行此操作的“标准”方式的具体信息,但您当然可以使用来自 /etc/rc.local 的脚本来修补它,或者使用以下信息作为起点。

步骤1:设置2张路由表。

  1. 使用类似“echo 200 customtable >> /etc/iproute2/rt_tables”的命令创建一个具有唯一 ID 的自定义表

  2. 为该表添加规则 - 遗憾的是您不能使用“route”命令,而需要使用“ip route”命令。典型的规则是“ip route add default via XXXX dev ethX table customtable”。当然,您需要填充该表的所有相关路由。

  3. 添加规则以通过该表路由流量。这可以通过在 iptables 中标记数据包来实现,以获得一些非常灵活的解决方案,或者类似“ip rule add from 10.0.0.0/8 lookup customtable”之类的操作。

通过谷歌快速搜索发现此链接这可能对您要做的事情是一个很好的指导。

当然,您仍然可以使用 NAT 和 iptables 来重新寻址流量。

答案2

据我所知,您只需配置 /etc/sysconfig/network-scripts/ifcfg-eth* 各自的 IP 地址。将网关地址添加到 /etc/sysconfig/network-scripts/ifcfg-eth1。将您的盒子变成路由器(使用 /etc/sysctl.conf 将 /proc/sys/net/ipv4/conf/eth1/forwarding 和 /proc/sys/net/ipv4/conf/eth2/forwarding 设置为 1)添加您的 iptables nat 规则(用适当的值替换):iptables -t nat -s $SERVER-IP-NETWORK -o eth2 -j MASQUERADE

你应该完成了...如果我理解了你的网络模式b(这有点...不寻常,我不得不说)

相关内容