Как подключить маршрутизатор к проводной локальной сети через Wi-Fi?

у меня есть кабельный модем, подключенный к маршрутизатору WiFi. У меня роутер настроен на DHCP-сервер. Из-за расположения моего дома я не могу физически подключить свою домашнюю проводную локальную сеть к маршрутизатору. Я надеялся, что буду использовать Raspberry Pi с WiFi dongle и ethernet, чтобы выступать в качестве моста между проводной сетью, беспроводной сетью и маршрутизатором.

цели:

  1. беспроводные и проводные устройства могут подключаться друг к другу.
  2. беспроводные и проводные устройства могут видеть интернет.
  3. все устройства получают IP-адреса по DHCP с роутера.
  4. правильная конфигурация появляется автоматически после перезагрузки.

мой основной вопрос заключается в том, как настроить оборудование для достижения этих целей?

у меня есть bridge-utils, установленный и работающий на Raspberry Pi. Если я включаю мост в/etc/network / interfaces, то Raspberry Pi тщетно ищет DHCP-сервер и не получает IP адрес. Если я отключаю мост, то Raspberry Pi получает ответ DHCP от маршрутизатора без проблем, получает IP-адрес и может связаться с Интернетом.

также на проводной локальной сети является Synology DiskStation, который может служить DHCP, так что я рад включить, что если это поможет. Но тогда у меня будет два DHCP-сервера, поэтому мне может потребоваться две подсети и некоторая маршрутизация между ними. Я хотел бы, чтобы все было проще, если это возможно.

вот мой/etc/network / interfaces файл:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
        wpa-ssid "MySSID"
        wps-psk "MyPassword"

auto br0
iface br0 inet manual
        pre-up iwconfig wlan0 essid "MySSID"
        bridge_hw 12:34:56:78:90:ab
        bridge_ports wlan0 eth0
        bridge_stp off
        bridge_maxwait 5
        bridge_fd 0

линия bridge_hw включает в себя MAC-адрес моего WiFi dongle на Raspberry Pi. Я также попробовал строфу br0, как это (найдено здесь), но и не получилось:

auto br0
iface br0 inet dhcp
  pre-up ip link set eth0 down
  pre-up ip link set wlan0 down
  pre-up brctl addbr br0
  pre-up brctl addif br0 eth0 wlan0
  pre-up ip addr flush dev eth0
  pre-up ip addr flush dev wlan0

Я включил net.ipv4.ip_forward в /etc / sysctl.conf, но это не помогло. Я смотрел в syslog, но ничего там не указывало на очевидную проблему.

Я много читал о преодоление, DHCP,parprouted, dhcrelay,/и т. д./сети/интерфейсов и iwconfig, но это для меня не понятно, как настроить свою систему так, как wlan0 в первую очередь на Raspberry Pi, то получает по DHCP от роутера, потом мост, потом через eth0 приходит на Raspberry Pi, то получает его по DHCP через мост, а потом других проводных устройств может тоже и беспроводные устройства могут видеть проводных устройств. Я рад переключиться на статические IP-адреса на Raspberry Pi, если это будет помогать.

5
задан Community
22.01.2023 21:14 Количество просмотров материала 2855
Распечатать страницу

1 ответ

вы не можете легко мост интерфейс Wi-Fi, см здесь для хорошего объяснения. Есть способы обойти это (например, в VirtualBox это из коробки), и я покажу вам один из способов сделать это.

если вы не можете мост wlan0 an eth0, вы можете передавать IP-трафик между ними с помощью ip_forward, но это оставляет два важных вида трафика, DHCP (который использует необработанные сокеты) и ARP (который является протоколом уровня 2, следовательно это не покрыто ИС-вперед). Мы обходим первую проблему, настраивая собственный DHCP сервер, отвечая на запросы по интерфейсу eth0 только; чтобы это работало, мы должны убедиться, что диапазоны IP-адресов, выданные вашим маршрутизатором и dnmasq на RPi do не перекрытие. Мы обходим проблему ARP, включив proxy-arp.

проще всего пренебречь обоими parprouted и dhcrelay, которые вводят ненужные усложнения. Мы будем использовать вместо этого proxy-arp.

  1. выберите подсеть в вашей локальной сети, которую ваш маршрутизатор делает не используйте для назначения IP-адресов, скажем,192.168.1.160/27, и назначить ему первый адрес, 192.168.1.161 на eth0 интерфейс:

    ip addr add 192.168.1.161/32 dev eth0
    
  2. скажите ядру, что эта подсеть находится в eth0 интерфейс:

    ip route add 192.168.1.160/27 dev eth0
    
  3. включить прокси-arp и ip_forwarding:

    echo 1 > /proc/sys/net/ipv4/conf/eth0/proxy_arp
    echo 1 > /proc/sys/net/ipv4/conf/wlan0/proxy_arp
    echo 1 > /proc/sys/net/ipv4/ip_forward 
    
  4. скачать и установите dnsmasq для выполнения DHCP на интерфейсе eth0:

    apt-get install dnsmasq
    

    и затем создать файл /etc/dnsmasq.conf, следующего содержания:

    domain-needed
    bogus-priv
    dhcp-authoritative
    interface=eth0
    local=/YourDomainName.lan/
    server=8.8.8.8
    server=8.8.4.4
    expand-hosts
    domain=YourDomainName.lan
    dhcp-range=192.168.1.162,192.168.1.190,12h
    
  5. перезагрузка dnsmasq, вы молодец.

это должно быть тривиально, чтобы начать все выше при загрузке, если нет, дайте мне знать.

0
отвечен MariusMatutiae 2023-01-24 05:02

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх