1 (edytowany przez alossek 2018-04-24 22:10:50)

Temat: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

Cześć,

Pytanie za 100 pkt, czy da się zrobić (na 1043nd v4) VLAN dla tag = 4000 (dla tagów wyższych niż 128) ?

switch0: ag71xx-mdio.0(Atheros AR8337), ports: 7 (cpu @ 0), vlans: 128
     --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 (int): arl_age_time (ARL age time (secs))
        Attribute 8 (string): arl_table (Get ARL table)
        Attribute 9 (none): flush_arl_table (Flush ARL table)
        Attribute 10 (int): igmp_snooping (Enable IGMP Snooping)
        Attribute 11 (int): igmp_v3 (Enable IGMPv3 support)
        Attribute 12 (none): apply (Activate changes in the hardware)
        Attribute 13 (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 (int): enable_eee (Enable EEE PHY sleep mode)
        Attribute 4 (none): flush_arl_table (Flush port's ARL table entries)
        Attribute 5 (int): igmp_snooping (Enable port's IGMP Snooping)
        Attribute 6 (int): pvid (Primary VLAN ID)
        Attribute 7 (unknown): link (Get port link information)

Jak widać 1043nd v4 nie ma enable_vlan4k (jak było w v1), czy da się to zrobić jakoś z użyciem "vid" ?
Kombinowałem tak (dodałem do standardowej konfiguracji):

config interface 'wan_4000'
        option ifname 'eth0.4'
        option proto 'dhcp'
        option metric '20'

config switch_vlan
        option vlan '4'
        option vid '4000'
        option ports '5t 0t'
        option device 'switch0'

Wynik:

root@LEDE:~# swconfig dev ag71xx-mdio.0 vlan 4 show
VLAN 4:
        vid: 4000
        ports: 0t 5t

Ale z DHCP nie dostaje ip.


Da się to zrobić ?
Pozdrawiam i proszę o pomoc.

TP-Link TL-WDR4300 v1, Reboot (17.01-SNAPSHOT, r3876-efb6ca1)

2

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

Attribute 1 (int): vid (VLAN ID (0-4094))

Więc tak. Ustaw sobie vlan 4000, eth0.4000 i zobacz.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

Cezary napisał/a:

Attribute 1 (int): vid (VLAN ID (0-4094))

Więc tak. Ustaw sobie vlan 4000, eth0.4000 i zobacz.

No własnie tak miałem wcześniej

VLAN 4000:
        vid: ???
        ports: ???

To chyba nie zadziała, bo vlanów jest tylko do 127:
switch0: ag71xx-mdio.0(Atheros AR8337), ports: 7 (cpu @ 0), vlans: 128

TP-Link TL-WDR4300 v1, Reboot (17.01-SNAPSHOT, r3876-efb6ca1)

4

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

A i tu jest pies chyba pogrzebany....

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

Cezary napisał/a:

A i tu jest pies chyba pogrzebany....

Czyli to pewne że się nie da ?

TP-Link TL-WDR4300 v1, Reboot (17.01-SNAPSHOT, r3876-efb6ca1)

6

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

http://www.cnblogs.com/nicephil/p/6606716.html

Gość się załatał, choć czy to działa to już ktoś musi sobie przekompilować i sprawdzić na rzeczywistym sprzęcie.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

Cezary napisał/a:

http://www.cnblogs.com/nicephil/p/6606716.html

Gość się załatał, choć czy to działa to już ktoś musi sobie przekompilować i sprawdzić na rzeczywistym sprzęcie.

O kurka, nie mam wyboru i będę musiał to zrobić (bo jak nie to sprzęt poleci na allegro) ...
czeka mnie męka z budowaniem :-(

TP-Link TL-WDR4300 v1, Reboot (17.01-SNAPSHOT, r3876-efb6ca1)

8

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

Jest nawet od dawna zgłoszenie
https://dev.openwrt.org/ticket/22316

TP-Link TL-WDR4300 v1, Reboot (17.01-SNAPSHOT, r3876-efb6ca1)

9 (edytowany przez alossek 2017-09-29 22:14:22)

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

@Cezary,

Miałbym wielką i zarazem beszczelną prośbę, czy mogłbyś przekompilować obraz dla 1043nd v4 z tymi patch'ami
(https://pastebin.com/q4f0z7Fa, https://pastebin.com/MQJqayrt) ?

Patch'e przygotowałem z podesłanego przez Ciebie źrodła (na marginesie pasowały do kodu źródłowego z okolic 2014 roku).
Po moich przeróbkach pasją do rewizji LEDE Twoich ostatnich obrazów (czyli r3514-97ebdf9).
Narobiłem się z tym strasznie i już nie mam siły stawiać środowiska do wybudowania obrazów.
A Ty pewnie masz wszystko gotowe ;-)

Zdaje się że trzeba by jakoś kompilować aby dyrektywa kompilatora miała ustawione "OK_PATCH",
bo z ich użyciem podefiniowane są #if w kodzie.

Byłbym wdzięczny.
Pozdrawiam.

TP-Link TL-WDR4300 v1, Reboot (17.01-SNAPSHOT, r3876-efb6ca1)

10

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

Musisz poczekać aż wrócę do domu.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

Spoko, poczekam.

TP-Link TL-WDR4300 v1, Reboot (17.01-SNAPSHOT, r3876-efb6ca1)

12

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

Kurcze mógłby mi ktoś jak krowie na rowie powiedzieć gdzie wstawić te patche? Spróbowałbym skompilować, ale nijak nie rozumiem zasady patchowania.

13

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

Ściągnij źródła lede a później nałóż te łatki (patch -p1 < ...) W tym przypadku nigdzie się ich nie umieszcza tylko łata od razu źródła.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

14

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

@alossek: to się w ogóle nie kompiluje. Brakuje funkcji niektórych.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

15

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

Cezary napisał/a:

@alossek: to się w ogóle nie kompiluje. Brakuje funkcji niektórych.

Ok, trudno.
Dzięki za próbe.

Pozdrawiam!

TP-Link TL-WDR4300 v1, Reboot (17.01-SNAPSHOT, r3876-efb6ca1)

16

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

Znaczy patch nr 1 zamieniający maxvlans z 128 na 4096 się kompiluje.
Drugi patch poprawiający działanie tagowanych i nietagowanych na tym samym porcie możliwe, że jest już nie potrzebny.
Zaznaczam, ze mogę się mylić.

17

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

Cezary napisał/a:

A i tu jest pies chyba pogrzebany....

@Cezary,

Czytałem Twój poradnik, http://eko.one.pl/?p=openwrt-vlan
Ale czy mógłbym prosić o doprecyzowanie o co chodzi z tymi "vid" ?
Bo dla wałkowanego tu przykładu, AR8337 ma 128 vlanów,
ale ma też "Attribute 1 (int): vid (VLAN ID (0-4094))"
Czy czym zatem różni się takie konfigurowanie switch

a)

config switch_vlan
        option vlan '4'
        option vid '4000'
        option ports '5t 0t'
        option device 'switch0'

od
b)

config switch_vlan
        option vlan '4000'
        option ports '5t 0t'
        option device 'switch0'

Czy nie jest tak (albo powinno tak to działać)  że "enable_vlan4k" pozwala na wykorzystanie na raz 4096 vlanów,
a vid jest id=numerem VLANu określonym przez liczbę bitów w ramce ethernetowej ?

Zatem czy nie powinno się dać w tym układzie wykorzystać 128 różnych vlanów, ale z numerami od 0-4094 ?
Czy "vid" do tego nie służy ? A może w ogólności tak właśnie jest tylko że jakiś błąd jest w LEDE ?

TP-Link TL-WDR4300 v1, Reboot (17.01-SNAPSHOT, r3876-efb6ca1)

18 (edytowany przez Cezary 2017-10-03 08:31:08)

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

Co jest czym masz na wiki: https://wiki.openwrt.org/doc/uci/networ … tch_config

Jak masz czas to sprawdź to sobie: zrób jedną i drugą konfigurację na jakimś niskim numerze np.99, uruchom tcpdumpa i zobacz co w ramkach ethernetowych leci.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

19

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

Cezary napisał/a:

Jak masz czas to sprawdź to sobie: zrób jedną i drugą konfigurację na jakimś niskim numerze np.99, uruchom tcpdumpa i zobacz co w ramkach ethernetowych leci.

Sprawdzę, sprawdzę ...
choć zanim zacznę zabawę zawszę wolę zapoznać się z teorią (poczytać i dopytać) a potem praktykować ;-)
choćby po to żeby nie próbować durnych scenariuszy.

Cezary napisał/a:

Co jest czym masz na wiki: https://wiki.openwrt.org/doc/uci/networ … tch_config

Tak, czytałem to i widzę cyt. "The number of the VLAN is specified on the option vlan line. The VID (VLAN ID) associated with a VLAN is by default the same as the number of the VLAN. This is overridden by using an option vid line so, for example, that VLAN 1 could use VID 100."

Co rozumiem właśnie tak że numer VLAN może być nadpisany poprzez opcję vid.
O "enable_vlan4k" nic tam nie ma, a Ty napisałeś

Cezary napisał/a:

Dla niektórych routerów trzeba specjalne włączyć obsługę VLANów "o wysokich numerach" dodając opcję option enable_vlan4k 1 w sekcji config switch w pliku /etc/config/network.

Co ja rozumiałbym jako możność wykorzystania na raz 4096 vlanów,
a istnienie opcji "Attribute 1 (int): vid (VLAN ID (0-4094))" sugeruje że numery/id tych VLANów mogą być z przedziału 0-4094,
niezależnie od ich ilości ?

Czy ostatni akapit ma sen ? czy to jakieś bzdury ?

TP-Link TL-WDR4300 v1, Reboot (17.01-SNAPSHOT, r3876-efb6ca1)

20

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

W niektórych układach domyślnie można zrobić tylko vlany do numerach do  16 lub 128, próba utworzenie vlanu o większym numerze powoduje zgłoszenie błędu. Domyślnie one nie włączają i nie obsługują vlanów o większych numerach, choć chip to potrafi. I żeby to włączyć potrzebne jest odpowiednie przestawienie rejestrów (konfiguracji) chipu switcha, a to robi właśnie kod który ukrywa się za opcją "enable_vlan4k".

Każdy chip ma swoje możliwości i swoją konfigurację. Najprościej będzie jak po prostu znajdziesz kartę katalogową dla tego chipu  i zobaczysz jak oni rozumieją te opcje.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

21

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

Cezary napisał/a:

W niektórych układach domyślnie można zrobić tylko vlany do numerach do  16 lub 128, próba utworzenie vlanu o większym numerze powoduje zgłoszenie błędu. Domyślnie one nie włączają i nie obsługują vlanów o większych numerach, choć chip to potrafi. I żeby to włączyć potrzebne jest odpowiednie przestawienie rejestrów (konfiguracji) chipu switcha, a to robi właśnie kod który ukrywa się za opcją "enable_vlan4k".

Każdy chip ma swoje możliwości i swoją konfigurację. Najprościej będzie jak po prostu znajdziesz kartę katalogową dla tego chipu  i zobaczysz jak oni rozumieją te opcje.

Czyli opcja vid:

  • pozwala TYLKO na rozgraniczenie nazwy interfejsu (np. eth0.4) od numeru VLAN (np. vid=117)

  • jednocześnie ograniczona jest z góry ilością obsługiwanych VLAN, vid=(0, ilość_VLAN)

Jednym słowem opcja z vid może sobie być z przedziału (0-4094), ale ma prawo zadziałać tylko do górnej granicy wyznaczonej przez liczbę vlanów.

Czyli w moim przypadku ustawienie vid zadziała tylko dla zakresu (0-128).
Gdyby dla tego układu doszła opcja "enable_vlan4k", wówczas zadziała dla całego zakresu (0-4094).

Czy dobrze to rozumiem ?

TP-Link TL-WDR4300 v1, Reboot (17.01-SNAPSHOT, r3876-efb6ca1)

22

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

Dlatego też napisałem - zrób sobie takie konfigi, uruchom tcpdumpa/wiresharka i zobacz co leci w ramkach ethernetowych.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

23

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

No i chyba jednak Ci się nie chciało sprawdzić skoro piszesz nowe wątki. Do rzeczy.
Tp-Link tl-wr1043nd v1. Swconfig twierdzi że potrafi 4096 vlanów:

switch0: rtl8366rb(RTL8366RB), ports: 6 (cpu @ 5), vlans: 4096

Ustawienia:

config interface 'lan2'
    option type 'bridge'
    option ifname 'eth0.2055'
    option proto 'static'
    option netmask '255.255.255.0'
    option ipaddr '192.168.2.2'

config switch
    option name 'switch0'
    option reset '1'
    option enable_vlan '1'
    option enable_vlan4k '1'

config switch_vlan
    option device 'switch0'
    option vlan '1'
    option ports '1 2 3 5t'

config switch_vlan
    option device 'switch0'
    option vlan '2'
    option ports '0 5t'

config switch_vlan
    option device 'switch0'
    option vlan '2055'
    option ports '4t 5t'

swconfig:

VLAN 1:
    info: VLAN 1: Ports: '1235t', members=002e, untag=000e, fid=0
    fid: 0
    ports: 1 2 3 5t 
VLAN 2:
    info: VLAN 2: Ports: '05t', members=0021, untag=0001, fid=0
    fid: 0
    ports: 0 5t 
VLAN 2055:
    info: VLAN 2055: Ports: '4t5t', members=0030, untag=0000, fid=0
    fid: 0
    ports: 4t 5t 

Czyli klasyka gatunku: port 4 tagowany, vlan 2055 (wysoki), zrobiony lan2 na interfejsie eth0.2055. swconfig potwierdza istnienie vlanu tagowanego.

I kabelkiem port fizyczny 4, ten tagowany, vlanowy połączyłem do portu 4 routera tp-link wdr3600 (w którym swconfig mówi że ma 128 vlanów:

switch0: ag71xx-mdio.0(Atheros AR8327), ports: 7 (cpu @ 0), vlans: 128

). Ale tu zrobiłem taką konfigurację:

config interface 'lan2'
    option type 'bridge'
    option ifname 'eth0.2055'
    option proto 'static'
    option ipaddr '192.168.2.1'
    option netmask '255.255.255.0'

config switch
    option name 'switch0'
    option reset '1'
    option enable_vlan '1'

config switch_vlan
    option device 'switch0'
    option vlan '1'
    option ports '2 3 4 0t'

config switch_vlan
    option device 'switch0'
    option vlan '2'
    option ports '1 0t'

config switch_vlan
    option device 'switch0'
    option vlan '9'
    option vid 2055
    option ports '5t 0t'

swconfig pokazuje

VLAN 1:
    vid: 1
    ports: 0t 2 3 4 
VLAN 2:
    vid: 2
    ports: 0t 1 
VLAN 9:
    vid: 2055
    ports: 0t 5t 

Zauważ że:
- zrobiłem vlan 9
- zrobiłem w nim vid = 2055 (co potwierdza swconfig)
- na porcie 5 tagowany (w rozumieniu switcha wdr3600 to jest port fizyczny 4)
- ale sieć zrobiłem na eth0.2055

I co? Pingują się wzajemnie, można ssh się zalogować itd. Czyli działa. vlan 1 to standardowy lan openwrt, vlan 2 to wan, moje to vlany 2055 które zrobiłem na jednym z portów na switchu.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

24

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

Cezary napisał/a:

No i chyba jednak Ci się nie chciało sprawdzić skoro piszesz nowe wątki.

Nie do końca się nie chciało, a musiałem szybko oddać 1043nd v4 bo mi dziś mijało 15 dni na zwrot ;-)

Cezary napisał/a:

I co? Pingują się wzajemnie, można ssh się zalogować itd. Czyli działa. vlan 1 to standardowy lan openwrt, vlan 2 to wan, moje to vlany 2055 które zrobiłem na jednym z portów na switchu.

Czy dobrze rozumiem że była szansa zrobić to na 1043 nd v4 ?
I z tego co widzę w moim przypadku wystarczyło w "lan" zrobić

option ifname 'eth0.4000'

bo resztę miałem analogicznie.

TP-Link TL-WDR4300 v1, Reboot (17.01-SNAPSHOT, r3876-efb6ca1)

25

Odp: Problem z VLANami dla tag > 127 (brak enable_vlan4k) 1043nd v4

Chyba była szansa na to.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.