设置 Linux 交换机

设置 Linux 交换机

我有一个 C++ 程序,用于嗅探通过我的 Linux 机器的每个数据包。但是,我现在需要让我的 Linux 机器监听我网络中的每个流量。我可以购买托管交换机并设置端口跨接,但我不会为交换机支付 200 多英镑,而且它还给了我学习的机会。

我的网络

                                            +---------Computer A
                                            |
Internet-----Router------Switch-------------+---------Linux Box
                                            |
                                            +---------Computer B

拟议网络

                                            +---------Computer A
                                            |
Internet-----Router------Linux Box--------Switch
                    eth0^         ^eth1     |
                                            +---------Computer B

我该如何在 Linux 中设置它?我是否只需在同一网络上的不同 IP 地址上配置以太网?或者我完全走错了路

我的系统

  • Fedora 13。

谢谢

答案1

我假设您当前的网络位于私有子网上,并且您的路由器执行 NAT 以进行外部通信(即,对于外界来说,您的所有机器看起来都具有相同的 IP 地址)。您有两个选择:

  1. 将机器设置为桥接器
  2. 将机器设置为 NAT 路由器

要将其设置为路由器:

  • 将 eth0 设置为当前路由器的客户端
  • 将 eth1 放在不同的子网上
  • 将服务器配置为通过 DHCP 将此子网上的地址分发给其他计算机
  • 添加适当的 iptables 规则,以便盒子对来自 eth1 侧的传出连接执行 NAT
  • 如果你目前在路由器上有任何手动端口转发设置,则需要将其设置为指向新盒子,并将新盒子设置为将这些连接进一步转发到网络中

具体如何永久地执行上述操作(即,使其在重启后继续运行)取决于您的 Linux 发行版和您需要遵守的任何其他本地网络设置。http://www.linuxjournal.com/article/8172显示了使用 RedHat/Fedora/CentOS 风格系统的桥接设置示例,Debian/Ubuntu 或 Slackware 或其他系统可能需要进行一些细微的改动。

答案2

brctl addbr br0
ifconfig eth0 up
brctl addif br0 eth0
ifconfig eth1 up
brctl addif br0 eht1
ifconfig br0 <your.ip.address>

请注意,两个以太网接口都没有 IP 地址;单个地址分配给网桥(br0)。

答案3

我认为就是你要找的。:D

不要忘记混杂模式。

ifconfig eth0 promisc
ifconfig eth1 promisc

答案4

您可以购买一个hub来替换开关。它很便宜,困难的只是找到一个,现在每个人都喜欢使用开关。在互联网上,您应该能够以较低的成本找到一个。

按照设计,将所有流量广播hub到每个端口。

在这种情况下,当前的网络拓扑就足够了(并将 Linux eth0 设置为promiscuous mode- 否则 NIC 将丢弃所有未针对 Linux 机器的数据包。如果您使用wireshark来监听网络,软件可以自动将网卡设置为混杂模式)。

如果你确实想使用“计划网络”,你可以

  • 如果你想让Linux发挥积极的网络作用,你最好的选择是实现NAT伪装;因为我假设您没有 C 类网络,或者无论如何,没有足够的 IP 来将您的盒子变成路由器。在这种情况下,WAN 端应该是您的公共(Internet)地址,而 LAN 端是私有网络(如 10.1.1.1/24)。
  • 或者,按照评论中的建议,让你的盒子成为一个

我肯定会去的hub

相关内容