Linux 中 WiFi 到以太网的网络桥接

Linux 中 WiFi 到以太网的网络桥接

可以在 Linux 中桥接 WiFi 到以太网链路而不是以太网到以太网吗?

我有一台 CentOS 6.3 机器。我正在使用 KVM,我想执行桥接以可视化更多机器。这台机器仅通过无线连接,没有以太网连接。

因此,我通过 WiFi 接口建立了一个桥接,如下所示:

# cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE="br0"
NM_CONTROLLED="yes"
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=none
IPADDR=192.168.1.50
PREFIX=24
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System br0"

然后我编辑我的无线连接如下:

# cat /etc/sysconfig/network-scripts/ifcfg-mywireless
ESSID="mywireless"
MODE=Managed
KEY_MGMT=WPA-PSK
WPA_ALLOW_WPA2=yes
CIPHER_PAIRWISE=CCMP
CIPHER_GROUP=CCMP
TYPE=Wireless
#BOOTPROTO=none
#IPADDR=192.168.1.50
#PREFIX=24
#GATEWAY=192.168.1.1
#DNS1=8.8.8.8
#DNS2=8.8.4.4
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="Auto mywireless"
UUID=874*****
ONBOOT=yes
LAST_CONNECT=1355923469
BRIDGE=br0

之后,我重新启动网络:

# /etc/init.d/network restart
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface Auto_mywireless:  Error: Unknown connection: 874*****
                                                           [FAILED]
Bringing up interface br0:                                 [  OK  ]

但正如您所看到的,它显示错误。

我的 ifconfig 输出现在显示:

# ifconfig
br0       Link encap:Ethernet  HWaddr 6E:20:AD:CE:D8:AB
          inet addr:192.168.1.50  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::6c20:adff:fece:d8ab/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:67 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:6393 (6.2 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:432 errors:0 dropped:0 overruns:0 frame:0
          TX packets:432 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:62433 (60.9 KiB)  TX bytes:62433 (60.9 KiB)

ra0       Link encap:Ethernet  HWaddr 00:22:F7:2B:87:E5
          inet addr:192.168.1.42  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::222:f7ff:fe2b:87e5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:46 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:487894880 (465.2 MiB)  TX bytes:148136473 (141.2 MiB)

virbr0    Link encap:Ethernet  HWaddr 52:54:00:5B:30:9A
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:70 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:5838 (5.7 KiB)

但这无法连接互联网,我失去了对 192.168.1.50 的访问权限。那么,是否可以设置此 WiFi 到以太网网桥?

答案1

这不是您想要的完整答案(事实上,您对“可以 100% 重现的完整工作解决方法”的期望似乎有点不切实际),但在仔细考虑了这个问题之后,我认为以下内容可能有助于解决您的问题 -

  1. 这是可以做到的。我可以这么说,因为我在现场使用的设备可以在 Linux 下桥接 WIFI - 事实上,我怀疑大多数 DD-WRT 和 OpenWRT wifi 路由器都在幕后进行这种操作。

  2. 您是否知道 ra0 是否确实被添加到桥中?IE“brctl 显示”什么?

  3. 您的路由表是什么样的?我注意到您使用了“PREFIX=24”,如果将其替换为“NETMASK=255.255.255.0”,会发生什么情况?(我以前从未见过使用 PREFIX,谷歌搜索后发现它并不总是正常工作)(请参阅https://serverfault.com/questions/304949/prefix-versus-netmask

相关内容