9

Немного неприятной проблемы, с которой я столкнулся - я просто не знаю, что случилось.

У меня есть маршрутизатор Netgear WNR2000v3 с установленным стандартом DD-WRT v24-sp2 (19.03.12). Все отлично работает, кроме одного вопроса.

У меня есть файловый сервер, который подключен к одному из портов Ethernet на задней панели маршрутизатора. Файловый сервер может нормально видеть все сетевые устройства (может нормально пинговать). Файловый сервер - и на всех устройствах - может получить доступ к Интернету через интерфейс eth0 (настроен на WAN). DD-WRT получает WAN IP через DHCP - все хорошо.

Вот интересная часть. Когда мой ноутбук подключен через Wi-Fi (устройство ath0 на маршрутизаторе), ноутбук может видеть файловый сервер - я могу пинговать его нормально. Однако когда я подключаю ноутбук к другому Ethernet-порту на задней панели маршрутизатора, он больше не может подключиться к файловому серверу! Всякий раз, когда я пингуюсь, я получаю сообщения "Нет маршрута к хосту" и "Хост не работает" взаимозаменяемо, даже если на самом деле все работает нормально.

Я подумал, что это может быть проблема с интерфейсом br0, созданным по умолчанию - но, насколько я вижу, порты Ethernet (eth1) и wifi (ath0) соединены мостом, как и следовало ожидать. Вы можете увидеть страницу настроек, показывающую это здесь:

Я уверен, что подсети одинаковы. Я также должен отметить, что когда я подключаюсь к маршрутизатору по протоколу SSH (что я могу сделать как по Wi-Fi, так и по проводной сети Ethernet), маршрутизатор всегда может нормально пропинговать файловый сервер. Я просто не могу понять, что не так, и надеюсь, что кто-то может пролить свет на эту странную проблему.

3 ответа3

11

Я нашел решение, вам нужно выполнить следующие две команды, чтобы клиенты, подключенные к коммутатору, могли общаться друг с другом:

swconfig dev eth1 set enable_vlan 1
swconfig dev eth1 set apply 

Команды любезно предоставлены tomshardware

Я до сих пор не понимаю:

  1. Что делают эти команды
  2. Почему они не были включены по умолчанию
3

Я немного погуглил, и это похоже на ошибку в прошивке DD-WRT. На форуме DD-WRT ходят слухи, что более новая версия прошивки решит проблему. Исправление SiegeX прекрасно работает, еще одна вещь, которую я хотел бы сделать, это добавить его в качестве команды запуска в окне команд, чтобы в следующий раз, когда ваш маршрутизатор перезагружался, он сам "исправлял".

0

Обратите внимание, что в соответствии с ошибкой в прошивке DD-WRT, которую связал @Simon The Cat, вам может потребоваться выполнить некоторые дополнительные команды, как я делал на моем TL-WR841Nv9, когда я обновился до DD-WRT build 38240.

Вы можете / должны проверить, какой интерфейс использовать, запустив "swconfig list" в сеансе SSH.

root@TL-WR841Nv9:~# swconfig list
Found: switch0 - eth0
root@TL-WR841Nv9:~#

Вы также можете подтвердить, какие порты вам нужно включить для vlan 0, с помощью "swconfig dev eth0 show" ... В случае ниже у меня есть порты 0,1,2,3 и 4:

root@TL-WR841Nv9:~# swconfig dev eth0 show
Global attributes:
        enable_vlan: 0
        mirror_monitor_port: 15
Port 0:
        enable_mirror_rx: 0
        enable_mirror_tx: 0
        pvid: 0
        link: port:0 link:up speed:1000baseT full-duplex txflow rxflow
Port 1:
        enable_mirror_rx: 0
        enable_mirror_tx: 0
        pvid: 0
        link: port:1 link:down
Port 2:
        enable_mirror_rx: 0
        enable_mirror_tx: 0
        pvid: 0
        link: port:2 link:down
Port 3:
        enable_mirror_rx: 0
        enable_mirror_tx: 0
        pvid: 0
        link: port:3 link:up speed:100baseT full-duplex auto
Port 4:
        enable_mirror_rx: 0
        enable_mirror_tx: 0
        pvid: 0
        link: port:4 link:up speed:100baseT full-duplex auto
VLAN 0:
        vid: 0
        ports: 0 1 2 3 4
root@TL-WR841Nv9:~#

Последние команды, которые я ввел в Администрирование -> Команды -> Командная консоль [блок] -> "Сохранить запуск", были следующими. Замените ваше имя интерфейса ниже, которое для TP-Link TL-WR841Nv9:

swconfig dev eth0 set reset 1;
swconfig dev eth0 set enable_vlan 1
swconfig dev eth0 vlan 0 set ports '0 1 2 3 4'
swconfig dev eth0 set apply 1

Впоследствии - не знаю почему, приведенный ниже вывод из "swconfig dev eth0 show" выглядит идентично выводу той же команды после того, как я запустил только эти две команды при запуске "swconfig dev eth0 set enable_vlan 1; swconfig dev eth0 set apply 1;" но по какой-то причине моему маршрутизатору потребовались две другие линии, чтобы заставить порты коммутатора правильно взаимодействовать между устройствами, как описано в отчете об ошибках:

root@TL-WR841Nv9:~# swconfig dev eth0 show
Global attributes:
        enable_vlan: 1
        mirror_monitor_port: 15
Port 0:
        enable_mirror_rx: 0
        enable_mirror_tx: 0
        pvid: 0
        link: port:0 link:up speed:1000baseT full-duplex txflow rxflow
Port 1:
        enable_mirror_rx: 0
        enable_mirror_tx: 0
        pvid: 0
        link: port:1 link:down
Port 2:
        enable_mirror_rx: 0
        enable_mirror_tx: 0
        pvid: 0
        link: port:2 link:down
Port 3:
        enable_mirror_rx: 0
        enable_mirror_tx: 0
        pvid: 0
        link: port:3 link:up speed:100baseT full-duplex auto
Port 4:
        enable_mirror_rx: 0
        enable_mirror_tx: 0
        pvid: 0
        link: port:4 link:up speed:100baseT full-duplex auto
VLAN 0:
        vid: 0
        ports: 0 1 2 3 4
root@TL-WR841Nv9:~#

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .