将有线接口桥接到无线接口的问题

3
我正在做的是反向操作,与大多数人在桥接以太网和无线接口时所做的相反。我有一台没有无线网卡的电脑,并且我想通过旁边那台有无线网卡和以太网卡的电脑提供对互联网的访问。无线网卡通过作为私有网络 192.168.0.* 上的 dhcp 服务器的无线路由器访问互联网。路由器的 dhcp 服务器配置为永远不分配下面任何静态 ip 地址中的任何一个。

我已经在 /etc/network/interfaces 中配置了桥接,当我启动 br0 时没有出现任何问题。问题是,在启动桥接之后,两台计算机都无法访问互联网。以下是我的配置详细信息:

/etc/network/interfaces:

allow-hotplug eth0
iface eth0 inet static
  address       192.168.0.15
  netmask       255.255.255.0
  broadcast     192.168.0.255

auto wlan0
iface wlan0 inet dhcp
pre-up iwconfig wlan0 channel 4 key <my-key> essid <my-essid> mode Managed

iface br0 inet static
  gateway 192.168.0.1
  address 192.168.0.10
  netmask 255.255.0.0
  broadcast 192.168.0.255
  network 192.168.0.0
  bridge_ports wlan0 eth0
  pre-up iwconfig wlan0 channel 4 key <my-key> essid <my-essid> mode Managed

无线连接单独使用时工作正常,路由如下:
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     *               255.255.255.0   U     0      0        0 wlan0
link-local      *               255.255.0.0     U     1000   0        0 wlan0
default         localhost       0.0.0.0         UG    0      0        0 wlan0

当我启动br0时,路由表相同,除了每个条目的Iface都是br0,返回“默认”条目需要很长时间。
另一个区别是,在启动br0后,使用ifconfig列出接口时,wlan0不再显示IP地址。
尝试ping路由器(192.168.0.1)或公共互联网地址时返回的错误是:“从br0的IP:192.168.0.10无法到达目标主机”。
有什么想法吗?
谢谢, Jivan

我添加了一个Debian标签,因为/etc/network/interfaces是Debian配置文件(即使您使用Ubuntu,Debian标签也可能有助于正确的人看到问题)。 - caf
大多数无线网卡不支持桥接,除非在某些WDS模式下。但这不是一个编程问题;希望这很快会被转移到Superuser上。 - derobert
2个回答

1

摆脱所有与eth0wlan0相关的配置,只保留一个br0条目:

iface br0 inet dhcp
  bridge_ports wlan0 eth0
  pre-up iwconfig wlan0 channel 4 key <my-key> essid <my-essid> mode Managed

br0启动应该对wlan0和eth0进行正确的操作(它们没有自己的IP地址 - 相反,br0现在是桥接网络的主机接口。)

当我尝试使用此配置启动br0时,它没有收到任何DHCP提供。我检查了路由器的DHCP设置,它们看起来很好。自动创建的接口别名'br0:avahi'在169.254.*.*范围内具有地址。我假设这只是一个默认值,如果DHCP成功,则会更新。 - Jivan Amara
1
听起来你的br0接口正在选择使用eth0的MAC地址,而你的无线网卡驱动程序不支持必要的魔法来实现桥接。你将不得不使用另一种解决方案,比如proxyarp。 - caf

0

首先,您必须删除用于您的桥接的每个网络端口的网络配置,因为bridge-utils使用脚本来自行配置它们。

您的配置应该看起来更像是:

auto wlan0
pre-up iwconfig wlan0 channel 4 key <my-key> essid <my-essid> mode Managed

auto br0
iface br0 inet static
 gateway 192.168.0.1
 address 192.168.0.10
 netmask 255.255.0.0
 broadcast 192.168.0.255
 bridge_ports wlan0 eth0
 pre-up iwconfig wlan0 channel 4 key <my-key> essid <my-essid> mode Managed
iface br0 inet static
 address 192.168.0.15
 netmask 255.255.255.0
 broadcast 192.168.0.255

如果单独设置“广播”,则无需输入“网络”

一张网络卡可以分配多个 IP 地址


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接