отключение lan порта

Post new topic   Reply to topic    DD-WRT Forum Forum Index -> DD-WRT по-русски
Author Message
tonnyripper
DD-WRT Novice


Joined: 19 Apr 2016
Posts: 1

PostPosted: Tue Apr 19, 2016 17:42    Post subject: отключение lan порта Reply with quote
как отключить lan порт? tp-link wr841n
вывод ifconfig

ath0 Link encap:Ethernet HWaddr E8:94:F6:DD:DE:A7
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:63670 errors:0 dropped:0 overruns:0 frame:0
TX packets:60449 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:63400529 (60.4 MiB) TX bytes:57562650 (54.8 MiB)



br0 Link encap:Ethernet HWaddr E8:94:F6:DD:DE:A6
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:76451 errors:0 dropped:22 overruns:0 frame:0
TX packets:94683 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:63442419 (60.5 MiB) TX bytes:102516661 (97.7 MiB)


br0:0 Link encap:Ethernet HWaddr E8:94:F6:DD:DE:A6
inet addr:169.254.255.1 Bcast:169.254.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1


eth0 Link encap:Ethernet HWaddr E8:94:F6:DD:DE:A6
inet addr:5.248.37.231 Bcast:5.248.39.255 Mask:255.255.248.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:91178 errors:0 dropped:119 overruns:0 frame:0
TX packets:73674 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:98940921 (94.3 MiB) TX bytes:64174451 (61.2 MiB)
Interrupt:4


eth1 Link encap:Ethernet HWaddr E8:94:F6:DD:DE:A6
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:12788 errors:0 dropped:0 overruns:0 frame:0
TX packets:34999 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1112776 (1.0 MiB) TX bytes:46729922 (44.5 MiB)
Interrupt:5



lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MULTICAST MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Sponsor
AlDemin
DD-WRT User


Joined: 20 Mar 2014
Posts: 139

PostPosted: Wed Apr 20, 2016 4:44    Post subject: Reply with quote
Например так: пишем в стартовый скрипт

swconfig dev switch0 set enable_vlan 1
swconfig dev switch0 vlan 1 set ports "0 2 3 4"
swconfig dev switch0 set apply

Отключиться 4-йпорт (нумерация портов перепутана 1-4 2-3 3-2 4-1)
Включить обратно выполнить:

swconfig dev switch0 vlan 1 set ports "0 1 2 3 4"
swconfig dev switch0 set apply

Физически линк на порту останется, но работать порт не будет.


Last edited by AlDemin on Wed Apr 20, 2016 17:51; edited 2 times in total
vasek00
DD-WRT Guru


Joined: 06 Nov 2010
Posts: 3305

PostPosted: Wed Apr 20, 2016 6:06    Post subject: Reply with quote
AlDemin wrote:
Например так: пишем в стартовый скрипт

swconfig dev switch0 set enable_vlan 1
swconfig dev switch0 vlan 1 set ports "0t 2 3 4"
swconfig dev switch0 set apply

Отключиться 4-йпорт (нумерация портов перепутана)
Включить обратно выполнить:

swconfig dev switch0 vlan 1 set ports "0t 1 2 3 4"
swconfig dev switch0 set apply

Физически линк на порту останется, но работать порт не будет.

В данном устройстве vlan нет, dd-wrt использует eth1 и eth0 согласно ifconfig в своих настройках, поэтому придется перестроить настройки на работу с vlan1 в место одного из eth1.
Что более правильнее.
AlDemin
DD-WRT User


Joined: 20 Mar 2014
Posts: 139

PostPosted: Wed Apr 20, 2016 17:47    Post subject: Reply with quote
Да, точно, vlan интерфейсов нет, но в свиче то vlan есть, просто копировал и забыл подправить, строки должны быть такими:
swconfig dev switch0 set enable_vlan 1
swconfig dev switch0 vlan 1 set ports "0 2 3 4"
swconfig dev switch0 set apply

swconfig dev switch0 vlan 1 set ports "0 1 2 3 4"
swconfig dev switch0 set apply

1-ю и 3-ю строки так и так нужно вписывать в стартовый скрипт.
vasek00
DD-WRT Guru


Joined: 06 Nov 2010
Posts: 3305

PostPosted: Thu Apr 21, 2016 8:55    Post subject: Reply with quote
AlDemin wrote:
Да, точно, vlan интерфейсов нет, но в свиче то vlan есть, просто копировал и забыл подправить, строки должны быть такими:
swconfig dev switch0 set enable_vlan 1
swconfig dev switch0 vlan 1 set ports "0 2 3 4"
swconfig dev switch0 set apply

swconfig dev switch0 vlan 1 set ports "0 1 2 3 4"
swconfig dev switch0 set apply

1-ю и 3-ю строки так и так нужно вписывать в стартовый скрипт.

И дальше что. В данном случае eth1 это все LAN порты, и при настройках по умолчанию enable_vlan 0 и br0 равен ath0+eth1 при разрешении использовать VLAN enable_vlan 1 у вас адресация в системе остается eth1 на котором будет IP (так как он в bridge0).
Созданный вами vlan1 весит в воздухе. В данной настроенной системе а точнее в сетевых пакетах не будет поля тег
Quote:
802.1Q помещает внутрь фрейма тег, который передает информацию о принадлежности трафика к VLAN'у.
...
В стандарте 802.1Q существует понятие Native VLAN. По умолчанию это VLAN 1. Трафик, передающийся в этом VLAN, не тегируется.
http://xgu.ru/wiki/802.1Q

т.е. трафик тегированный (с идентификатором VLAN ID = 2 и выше) и не тегированный при чем если настроен VLAN ID = 1 то от сетевого кадра отрезается поле тег.

Quote:
https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%82%D0%B5%D0%B2%D0%BE%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BC%D1%83%D1%82%D0%B0%D1%82%D0%BE%D1%80
...
Коммутатор хранит в памяти (т.н. ассоциативной памяти) таблицу коммутации, в которой указывается соответствие MAC-адреса узла порту коммутатора. При включении коммутатора эта таблица пуста и он работает в режиме обучения. В этом режиме поступающие на какой-либо порт данные передаются на все остальные порты коммутатора. При этом коммутатор анализирует фреймы (кадры) и, определив MAC-адрес хоста-отправителя, заносит его в таблицу на некоторое время. Впоследствии, если на один из портов коммутатора поступит кадр, предназначенный для хоста, MAC-адрес которого уже есть в таблице, то этот кадр будет передан только через порт, указанный в таблице. Если MAC-адрес хоста-получателя не ассоциирован с каким-либо портом коммутатора, то кадр будет отправлен на все порты, за исключением того порта, с которого он был получен. Со временем коммутатор строит таблицу для всех активных MAC-адресов, в результате трафик локализуется.
...

При включении любого устройства в сеть (возьмем стат IP на клиенте) он с начала по известному IP шлюза (наш switch на роутере) определит его MAC выполнив просто ARP запрос на данный IP шлюза и получит его MAC, таким образом switch роутера будет заполнять таблицу описанную выше.

Вопрос теперь по варианту который вы предложили:
- что будет с пакетом попавшим по IP на switch eth1 в данном случае от клиента включенного на LAN порт switch роутера, который якобы по команде vlan 1 set ports "0 2 3 4" выключен ?
AlDemin
DD-WRT User


Joined: 20 Mar 2014
Posts: 139

PostPosted: Thu Apr 21, 2016 12:31    Post subject: Reply with quote
Quote:
Созданный вами vlan1 весит в воздухе.

Он не висит в воздухе, он присутствует внутри свича и на всех портах к нему приписанных, входящим в порты пакетам присваивается VID=1 а от исходящих отсекается.
По идее если порт не принадлежит этому vlan, то ни один пакет с других портов на него попасть не должен, а пакеты пришедшие на него - vid не получат и тоже никуда попасть не должны.

Как на практике работает свич в AR9341 с "не приписанными" к vlan-ам портами, оставит ли он их в "дефолтном" 1-м vlan-е или будет игнорировать,надо проверить, 100 к 1 что как нормаьные свичи - проигнорирует.

На край "отключенному" порту можно назначить другой vlan
swconfig dev switch0 set enable_vlan 1
swconfig dev switch0 vlan 1 set ports "0 2 3 4"
swconfig dev switch0 vlan 2 set ports "1"
swconfig dev switch0 set apply
И вот тут однозначно 4-й порт роутера (1-й свича) будет в vlan 2 "в воздухе".

UPD:
Так работает отключение 4-го порта:
root@DD-WRT:~# swconfig dev switch0 vlan 1 set ports "0 2 3 4"
root@DD-WRT:~# swconfig dev switch0 set apply
и так работает:
root@DD-WRT:~# swconfig dev switch0 vlan 2 set ports "1"
root@DD-WRT:~# swconfig dev switch0 set apply
а так само собой включает обратно:
root@DD-WRT:~# swconfig dev switch0 vlan 1 set ports "0 1 2 3 4"
root@DD-WRT:~# swconfig dev switch0 set apply

UPD2: Поправка: нумерация портов на корпусе - свича:
1-2
2-3
3-4
4-1
vasek00
DD-WRT Guru


Joined: 06 Nov 2010
Posts: 3305

PostPosted: Fri Apr 22, 2016 6:50    Post subject: Reply with quote
AlDemin wrote:

Он не висит в воздухе, он присутствует внутри свича и на всех портах к нему приписанных, входящим в порты пакетам присваивается VID=1 а от исходящих отсекается.
По идее если порт не принадлежит этому vlan, то ни один пакет с других портов на него попасть не должен, а пакеты пришедшие на него - vid не получат и тоже никуда попасть не должны.

Как на практике работает свич в AR9341 с "не приписанными" к vlan-ам портами, оставит ли он их в "дефолтном" 1-м vlan-е или будет игнорировать,надо проверить, 100 к 1 что как нормаьные свичи - проигнорирует.


"Весит в воздухе" - это не в br и без IP и так же без ifconfig vlan1 up

Вопрос только в том что пакет входящий приходит на порт при конфигурации :
1. с включенным vlan
- br0=eth1+ath0=10.10.10.10
Code:

br0       Link encap:Ethernet  HWaddr хх:хх:хх:хх:хх:22
          inet addr:10.10.10.10...Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
eth0      Link encap:Ethernet  HWaddr хх:хх:хх:хх:хх:33
          inet addr:10.10.11.11...Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
eth1      Link encap:Ethernet  HWaddr хх:хх:хх:хх:хх:11
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

2. с включенным vlan как положено
- br0=vlan1+ath0=10.10.10.10
- vlan2
Code:

br0       Link encap:Ethernet  HWaddr хх:хх:хх:хх:хх:22
          inet addr:10.10.10.10...Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
...
eth1      Link encap:Ethernet  HWaddr хх:хх:хх:хх:хх:11
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
...
vlan1     Link encap:Ethernet  HWaddr хх:хх:хх:хх:хх:11
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
...

При включении опции работы с vlan, приходящий пакет будет сначала проанализирован т.е. поле тег - какой порт и какой vlan и далее встает вопрос куда его направить
Quote:
swconfig dev switch0 vlan 1 set ports "0 2 3 4"

Его даже не будет видно по ifconfig
И что не мало важным как будут MAC адреса в данном случае.

Возможно кто-то и проверит на практике ваш вариант при включении двух клиентов LAN как они будут взаимодействовать между собой и будут ли, и по доступу к роутеру.
AlDemin
DD-WRT User


Joined: 20 Mar 2014
Posts: 139

PostPosted: Fri Apr 22, 2016 12:29    Post subject: Reply with quote
vasek00 wrote:

Возможно кто-то и проверит на практике ваш вариант при включении двух клиентов LAN как они будут взаимодействовать между собой и будут ли, и по доступу к роутеру.

У меня на руках реальная железка и это я вчера все проверил со всех сторон. "Отключенный" порт отключается от всего, остается только "линк".
Само собой до 0-го порта и других "включенных" в vlan-группу, а уж тем более до eth1 и br0 вообще ничего не доходит.
Свич все отсекает, как и должен делать управляемый свич 2-го уровня.
vasek00
DD-WRT Guru


Joined: 06 Nov 2010
Posts: 3305

PostPosted: Sat Apr 23, 2016 9:14    Post subject: Reply with quote
AlDemin wrote:

У меня на руках реальная железка и это я вчера все проверил со всех сторон. "Отключенный" порт отключается от всего, остается только "линк".
Само собой до 0-го порта и других "включенных" в vlan-группу, а уж тем более до eth1 и br0 вообще ничего не доходит.
Свич все отсекает, как и должен делать управляемый свич 2-го уровня.

А что с остальными LAN клиентами которые в других LAN портах при выполненных вами командах:

swconfig dev switch0 set enable_vlan 1

1.
swconfig dev switch0 vlan 1 set ports "0 2 3 4"
swconfig dev switch0 vlan 2 set ports "1"

2.
swconfig dev switch0 vlan 3 set ports "0 2 3 4"
swconfig dev switch0 vlan 2 set ports "1"


swconfig dev switch0 set apply


Более простой вариант, был бы если не "failed"
Code:

swconfig dev <dev> [port <port>|vlan <vlan>] (help|set <key> <value>|get <key>|load <config>|show)


То тогда команда выключения порта без каких либо vlan имеет вид например :
Code:
root@My:~# swconfig dev eth0 port 1 get link
port:1 link:up speed:1000baseT full-duplex auto
root@My:~# swconfig dev eth0 port 1 set link down
failed
root@My:~#

Но у меня не прокатывает, возможно так как vlan включены (внешний чип switch).

Code:
root@My:~# swconfig dev eth0 help

     --switch
        Attribute 1 (int): enable_vlan (Enable VLAN mode)
        Attribute 2 (none): reset_mibs (Reset all MIB counters)
        Attribute 3 (int): enable_mirror_rx (Enable mirroring of RX packets)
        Attribute 4 (int): enable_mirror_tx (Enable mirroring of TX packets)
        Attribute 5 (int): mirror_monitor_port (Mirror monitor port)
        Attribute 6 (int): mirror_source_port (Mirror source port)
        Attribute 7 (string): arl_table (Get ARL table)
        Attribute 8 (none): flush_arl_table (Flush ARL table)
        Attribute 9 (none): apply (Activate changes in the hardware)
        Attribute 10 (none): reset (Reset the switch)
     --vlan
        Attribute 1 (int): vid (VLAN ID (0-4094))
        Attribute 2 (ports): ports (VLAN port mapping)
     --port
        Attribute 1 (none): reset_mib (Reset single port MIB counters)
        Attribute 2 (string): mib (Get port's MIB counters)
        Attribute 3 (none): flush_arl_table (Flush port's ARL table entries)
        Attribute 4 (int): pvid (Primary VLAN ID)
        Attribute 5 (string): link (Get port link information)
root@My:~#

Только GET
Attribute 5 (string): link (Get port link information)
AlDemin
DD-WRT User


Joined: 20 Mar 2014
Posts: 139

PostPosted: Sun Apr 24, 2016 11:11    Post subject: Reply with quote
vasek00 wrote:

А что с остальными LAN клиентами которые в других LAN портах при выполненных вами командах:

swconfig dev switch0 set enable_vlan 1

1.
swconfig dev switch0 vlan 1 set ports "0 2 3 4"
swconfig dev switch0 vlan 2 set ports "1"

2.
swconfig dev switch0 vlan 3 set ports "0 2 3 4"
swconfig dev switch0 vlan 2 set ports "1"


swconfig dev switch0 set apply


Клиенты на портах 2 3 4 в обоих случаях видят друг друга, роутер, WiFi клиентов и интернет, vlan может быть от "0" до "15"
по дефолту установлен "1".

еще пример:
swconfig dev switch0 set enable_vlan 1
swconfig dev switch0 vlan 1 set ports "0"
swconfig dev switch0 vlan 2 set ports "1 2 3 4"

swconfig dev switch0 set apply
приводит к тому, что роутер работает только с WiFi клиентами, а все LAN клиенты видят друг друга, но не роутер и что за ним.

swconfig dev switch0 set enable_vlan 1
swconfig dev switch0 vlan 0 set ports "0"
swconfig dev switch0 vlan 1 set ports "1"
swconfig dev switch0 vlan 2 set ports "2"
swconfig dev switch0 vlan 3 set ports "3"
swconfig dev switch0 vlan 4 set ports "4"

swconfig dev switch0 set apply

Никто из LAN клиентов вообще ничеого не видит.

Quote:

Более простой вариант, был бы если не "failed"
Code:
root@My:~# swconfig dev eth0 port 1 get link
port:1 link:up speed:1000baseT full-duplex auto
root@My:~# swconfig dev eth0 port 1 set link down
failed
root@My:~#

Но у меня не прокатывает, возможно так как vlan включены (внешний чип switch).

Аналогично, отключение порта в свиче не срабатывает.
Не знаю как на счет отключения PHY интерфейса, надо покурить даташит SoC на предмет управления ими.
vasek00
DD-WRT Guru


Joined: 06 Nov 2010
Posts: 3305

PostPosted: Mon Apr 25, 2016 5:54    Post subject: Reply with quote
Из всего сказанного и для ответа на вопрос
Quote:
как отключить lan порт? tp-link wr841n

при реализации вашего варианта и для дальнейшего применения данного порта я бы изменил конфиг:
- создать vlan
- изменить в br0 убрав eth1 и поместив созданный vlan

Code:
brctl delif br0 eth1
swconfig dev switch0 set enable_vlan 1
swconfig dev switch0 vlan 1 set ports "0t 2 3 4"
swconfig dev switch0 vlan 2 set ports "0t 1"
swconfig dev switch0 set apply
vconfig vlan1 up
brctl addif br0 vlan1


где 2 3 4 LAN порты на роутере 1-LAN выделенный LAN порт. 0 - порт связи с CPU. "t" в set ports если нужно то можно использовать новый vlan2 для отдельного клиента.

в http://192.168.1.1/Networking.asp проверить конфигурацию.

Хотелось бы обратить внимание в вашей реализации
Code:
set ports "0 2 3 4"
set ports "1"

так как нет поля "tag" порты просто собраны в vlan и соеденены с портом CPU, а порт 1 не закреплен за портом CPU. Обработки как таковой пакете не происходит, да и в br0 весит eth1.

------
Ar9344
Quote:

VLANs
The Ethernet switch supports many VLAN options including IEEE 802.1Q and port-based VLANs. The Ethernet switch supports 4096 IEEE 802.1Q VLAN groups and 4000 VLAN table entries, and it checks VLAN port membership from the VLAN ID extracted from the tag header of the frame. The port-based VLAN is enabled according to the user-defined PORT VID value. The Ethernet switch supports optional discards of tagged, untagged frames, and priority tagged frames; the AR9344 also supports untagging the VLAN ID for packets going on untagged ports on a per-port basis.
AlDemin
DD-WRT User


Joined: 20 Mar 2014
Posts: 139

PostPosted: Mon Apr 25, 2016 18:23    Post subject: Reply with quote
Мы тут развели тред, а до сих пор не в курсе, чего же хотел ТС.
Quote:
как отключить lan порт? tp-link wr841n

Может ему нужно по крону или еще как отключать-включать LAN клиента от роутера.

Согласен, что полнятием vlan интерфейсов на тегированом 0-м порту свича можно включить любой порт в br0, br1... или в отдельную подсеть (именно так заменяем пожженый wan-порт), можно включить тегирование и на самом порту, и вывести через него до 15 подсетей (в wr841n стоит ar9341 - у него только 16 vlan-групп, судя по приведенной вами выдержке у ar9344 4k-групп - здорово, хотя мало кому нужно) на внешний управляемый свич.

В вашем примере 1-й порт оказывается во 2-й vlan группе, значит нужно поднять vlan2, сконфигурить на нем свою подсеть, или включить так же в br0...

В общем, я уже не понимаю о чем мы спорим.

Оба варианта рабочие, выбор зависит от того что проще для реализации конкретной задачи.
Display posts from previous:    Page 1 of 1
Post new topic   Reply to topic    DD-WRT Forum Forum Index -> DD-WRT по-русски All times are GMT

Navigation

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum