在两个网卡之间路由流量

在两个网卡之间路由流量

运行 Fedora 10 时我有以下场景。

NIC A - 在 10.11.0.1 上运行。DHCP 已分配。  
NIC B — 尚未指定 IP。

连接到 NIC B 的机器需要在 NIC B 和 NIC A 之间传输流量,即查看 NIC A 可以看到的所有内容。由于另一台机器上已经安装了防火墙,因此流量可以在这些网络之间自由流动。

我意识到这是一个路由问题,但不知道从哪里开始。

  • 我是否为 NIC B 分配一个静态 IP?
  • 我是否使用 iptables 创建规则来执行此操作?
  • 我是否创建静态路由?如何创建?

我该如何正确设置它?

答案1

你也可以这样做桥接而不是路由。这会将您的计算机变成一个或多或少智能的交换机。为此,您将需要软件包bridge-utils并通过禁用 DHCP(并重新启动)或运行 来取消配置 NIC A 的 IP 地址ip addr del 10.11.0.1 dev eth0

要配置网桥,您需要执行以下操作:

brctl add br0
brctl addif br0 eth0 # NIC A
brctl addif br0 eth1 # NIC B

您的网桥现已启动并运行。要过滤数据包,您可以使用 iptables 或ebtables

LE: 自乔提到IP 地址,我记得我忘了一些东西。如果您希望服务器有一个 IP 地址,您可以将其分配给接口br0,服务器将像连接到 NIC A 或 B 的任何其他计算机一样运行。

LE2:桥接配置可以保存在 下/etc/sysconfig。要了解如何读取/usr/share/doc/initscripts-*/sysconfig.txt。例如,我的配置文件如下所示:

# /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
STP=off
DELAY=1
ONBOOT=yes
BOOTPROTO=dhcp

# /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0

我只有一张网卡,并且我将网桥用于我的虚拟机。

答案2

首先,您需要在 Fedora 框中启用 IP 转发,编辑 /etc/sysctl.conf:

net.ipv4.ip_forward = 1

接下来,您需要告诉连接到 NIC B 的机器,如果它们想要连接到网络 10.11.0.x,则需要通过您的服务器。这可以通过将您的服务器(NIC B 的 IP)设置为其他机器的默认网关来实现。或者您可以在机器中添加静态路由:

route ADD 10.11.0.0 MASK 255.255.255.0 A.B.C.D (in windows)

其中 ABCD 是您的服务器 (NIC B) 的 IP 地址。我假设 255.255.255.0 是另一个网络的网络掩码。

答案3

网桥通常没有地址,但并不表示它们不能寻址。如果桥接并寻址,NIC 可用作双重用途,桥接正常流量并允许远程客户端从任一 NIC 连接进行访问。(由于它们是桥接的,因此您只需一个 NIC 即可为双方提供地址,以便在需要时连接到网桥服务器。但这会增加内部流量。不推荐。)

相关内容