我有一台启用了 ip_forwarding 的 Ubuntu 机器。iptables 也转发。我有3个网卡。
eth0 - 互联网
eth1 - 客户端 1
eth2 - 客户端 2
我希望 eth1 和 eth2 位于同一子网中,相互通信并访问互联网。
当我为它们使用不同的子网时,我才能让它工作。
实现此目的的标准方法是什么?
您希望 eth1 和 eth2 位于同一子网上,因此它们应该位于同一以太网链接上:您应该将 linux 机器配置为eth1 和 eth2 之间的桥梁。
这将创建一个新的网络接口(命名br0如下):内核将作为桥接您的eth1和的交换机eth2(在第 2 层)。IP 配置将在br0而不是eth1和eth2(基于 MAC 地址)上完成。它不会在 client1eth1和 client2之间路由eth2。
eth1 eth2
[ IP ]<---------->[IP ]
[ Eth ]<->[Eth ]<->[Eth ]
Client1 bridge Client2
Run Code Online (Sandbox Code Playgroud)
基于 IP 地址的客户端 ( br0) 和 Internet之间涉及路由eth0:
br0 eth0
[ IP ]<->[IP ]<->[IP ]
[ Eth ]<->[Eth]<->[Eth ]
Client1 router to internet
Run Code Online (Sandbox Code Playgroud)
从命令行:
brctl addbr br0
brctl addif br0 eth1 eth2
ip link up br0
ip addr add br0 $ip/$netmask
Run Code Online (Sandbox Code Playgroud)
或在/etc/network/interfaces:
iface br0 inet static
bridge_ports eth1 eth2
address ...
netmaks ...
broadcast ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2465 次 |
| 最近记录: |