网桥 vs iptables vs 路由?

Gra*_*rap 7 networking network-bridge

iptables vs bridge-utils vs route

我在 Linux 服务器中有两个网卡,但不知道如何让它们通信。经过大量搜索后,我仍然不知道哪种方法应该有效,也不知道使用每种方法的含义。

这是我的系统。

  cat5 cable   +----------------------------------+ cable
<------------- |  my server                       |<------> WiFi router
router         | eth1               eth2          |         192.168.0.1
& internet     | 10.11.12.13        192.168.7.7   |      gw:192.168.7.7 ?
               | gateway: 10.1.1.1                |  192.168.0.x for WiFi clients
Run Code Online (Sandbox Code Playgroud)

wifi 客户端应该能够访问 Internet 和 10.xxx 子网,但 wifi 客户端不能在 10.xxx 子网上,它们必须具有 192.168.xx 范围内的 IP 地址。

那么如何连接两个网络呢?我使用 iptables 吗?我是否使用linux“路由”命令?我是否使用 bridge-utils 制作网桥?

另外,WiFi 网关应该是 192.168.0.1 还是 192.168.7.7 ?

我已将服务器到路由器的电缆插入 WAN 端口。

PS 我在 StackExchange (i) Networking 和 (ii) Linux 上问过这个问题,但没有得到答案,(iii) 也尝试过 Reddit。

Cha*_*asW 4

桥接用于向网络添加/组合网段。当桥接两个网络接口时,您所做的就是允许网络广播到达所有节点。桥接不适用于您正在尝试做的事情。

为了使路由器正常工作,以下是基本参考:

检查路由的 ip 转发状态:
sysctl net.ipv4.ip_forward

设置(启用)路由的 ip 转发状态:
echo 1 > /proc/sys/net/ipv4/ip_forward

取消设置(禁用)路由的 ip 转发状态:
echo 0 > /proc/sys/net/ipv4/ip_forward

确认已启用 ip 转发后,您可以在公共接口(具有物理 Internet 连接的网络接口)上使用 iptables 作为 NAT 接口。

我不会在这里尝试对 NAT 进行全面的解释,但这是一个基本示例:
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
/sbin /iptables -A FORWARD -i eth1 -o eth2 -m state --state 相关,已建立 -j 接受
/sbin/iptables -A FORWARD -i eth2 -o eth1 -j 接受

你可以像这样看到 nat:
sudo iptables -L -t nat


小智 0

认为你应该使用 iptables 连接这两个接口。根据这个http://www.linuxforums.org/forum/newbie/186273-iptables-forwarding-vs-ip-route-post877996.html#post877996

路由器的网关应为 192.168.1.7,以允许目标子网外的 ip 数据包发送到 eth2。iptables 应该从那里处理它并将其转发到 eth1。

这是对类似问题的回答,详细介绍了 iptables 转发规则。 https://serverfault.com/questions/431593/iptables-forwarding- Between-two-interface