Преодоление wlan0 до eth0

В Arch Linux я хотел бы, чтобы eth0 (подключенный к мостовому маршрутизатору) делился соединением, полученным с wlan0, я читал учебники, но я не командный навык, как другие пользователи, и не совсем понимаю.

22 голоса | спросил dbdii407 18 J0000006Europe/Moscow 2010, 07:44:49

5 ответов


21

UPDATE

Невозможно установить мост между беспроводным (клиентский режим) и проводными интерфейсами в соответствии с этой веткой на linux-ath5k-devel .

Настройка NAT

Вместо этого следует настроить NAT:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

Назначение IP

Затем вам нужно назначить IP-адреса себе:

ifconfig eth0 10.0.0.1 netmask 255.255.255.0 up

Установить демон dhcp

Установите сервер dhcp и добавьте следующий текст в его конфигурационный файл (в /etc/dhcpd.conf или что-то подобное)

subnet 10.0.0.0 netmask 255.255.255.0 {
    range 10.0.0.100 10.0.0.120;
    option routers 10.0.0.1;
    option domain-name-servers the-ip-address-you-have-in-etc-resolv.conf;
}

Запустить dhcpd

Затем запустите его /etc/init.d/dhcpd start

И все!

Только прочитайте ниже, если вас интересует настройка нерабочего моста


brctl addbr mybridge
brctl addif mybridge eth0
brctl addif mybridge wlan0

Сначала вы создаете интерфейс моста, я выбираю произвольное имя mybridge , а затем добавляю ему intefaces.

Вы должны запросить новый IP-адрес (это необходимо, только если вы хотите получить действительный IP-адрес для самого мостового устройства):

dhclient -d mybridge
ответил cstamas 18 J0000006Europe/Moscow 2010, 13:44:24
20

Для интерфейса bridge wifi вы можете использовать инструмент iw для enable 4addr также:

# iw dev <wifiInterface> set 4addr on

то есть:

# brctl addif <bridgename> <wifiInterface>
can't add <wifiInterface> to bridge <bridgename>: Operation not supported

# iw dev <wifiInterface> set 4addr on
# brctl addif <bridgename> <wifiInterface>

Теперь это должно сработать. Вы можете показать мосты, используя:

# brctl show
ответил xpixelz 13 32013vEurope/Moscow11bEurope/MoscowWed, 13 Nov 2013 14:48:02 +0400 2013, 14:48:02
2

Зависит от того, насколько AP является для вас:

1) Может потребоваться только просмотр пакетов, исходящих от вас, с вашим известным адресом уровня ссылки (и, следовательно, не с мостиковыми пакетами) 2) На самом деле это может быть даже умнее, и знать, какой IP-адрес должен принадлежать тому, к какому адресу ссылочного уровня (потому что он знает DHCP и проверяет его).

Если 1 + 2 оба истины, вам действительно нужно что-то вроде IP NAT, DHCP, ..

Но если это только 1), вы можете подделать адрес канального уровня и перевернуть его на правый в другом направлении, как описано здесь:

https://wiki.debian.org/BridgeNetworkConnections#Bridging_with_a_wireless_NIC

ответил Arnout 15 PMpWed, 15 Apr 2015 15:53:29 +030053Wednesday 2015, 15:53:29
1

4addr, как описано в других ответах, безусловно, лучший способ, который поддерживается адаптером /драйвером, но не все из них. NAT может работать для некоторых вещей, но получение надлежащей связи в обоих направлениях на LAN станет проблематичным (например, подключение принтера или доступ к другим устройствам IoT на другой стороне NAT). Все, что полагается на широковещательную /многоадресную рассылку (например, автоматическое обнаружение, bonjour), не будет выполнено через NAT.

Альтернативой является использование прокси-сервера ARP (parprouted), как описано в https://wiki.debian.org/BridgeNetworkConnectionsProxyArp . Я установил это на Малиновый Pi для принтера, и он работает как шарм (я добавил 10 секундного сна в post-up, чтобы сначала получить IP-адрес, возможно, это связано с медленностью моего старого RPi ...)

ответил Thomas Guyot-Sionnest 20 J000000Thursday17 2017, 15:16:56
0

Для интерфейса bridge wifi вы можете использовать инструмент iw для enable 4addr также:

# iw dev <wifiInterface> set 4addr on

то есть:

# brctl addif <bridgename> <wifiInterface>
# can't add <wifiInterface> to bridge <bridgename>: Operation not supported

# iw dev <wifiInterface> set 4addr on
# brctl addif <bridgename> <wifiInterface>

Теперь это должно сработать. Вы можете проверить:

# brctl show

Это может не сработать, если iw сам сообщает об ошибке, например: «command failed: Operation not supported (-95)» (см. на Raspbian). По-видимому, не все драйверы реализуют эту функцию.

ответил Thomas Guyot-Sionnest 20 J000000Thursday17 2017, 15:16:56

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132