Interpretação da configuração padrão até agora:
O switch Realtek já marca frames com VLAN 1
, as outras portas LAN são marcadas pelo switch Broadcom e aparecem marcadas na porta 8, que está conectada ao SoC. A porta WAN aparece sem tag na porta 8 (se é isso que o "u" significa, a robocfg
source é inútil aqui, e não consegui encontrar uma folha de dados).
Adivinha: O driver SoC ethernet associa quadros sem tag com eth0
e quadros marcados com VLAN 1
com eth1
e descarta quadros com todas as outras tags VLAN. O que significa que você pode configurar o switch Broadcom o quanto quiser, você não poderá isolar nenhuma porta usando tags de VLAN.
Esse comportamento é testável removendo eth0
e eth1
de todas as pontes, brincando com os IDs de VLAN para ... 8t
e ... 8u
um bit e enviando pacotes sem e com IDs diferentes de ambos os lados.
Portanto, a tarefa é descobrir o que o driver SoC ethernet realmente faz, e se ele é configurável de alguma forma. Se você pudesse dizer, por exemplo, para rotear VLAN id 10 para eth2
e VLAN id 20 para eth3
, tudo estaria definido.
Se não é o driver SoC ethernet, mas, digamos, eth1
já é um escravo VLAN de eth0
e o kernel faz o redirecionamento, então melhor.
Procure em dmesg
após o boot por qualquer dica para eth0
e eth1
, descubra onde /sys/class/net/eth[01]/device
aponta e qual módulo do kernel é responsável, etc. Isso requer um pouco de investigação e análise de várias coisas .
Editar
1) Os O comutador Realtek RTL8365MB possui seu próprio módulo de kernel rtl8365mb
. Fonte (variante possivelmente diferente) está disponível. Folha de dados de um chip muito semelhante está disponível. Com toda essa informação, deve ser possível escrever algo semelhante a robocfg
/ swconfig
e controlar o switch. Aparentemente, alguns pensaram sobre isso , mas eu não pude google nenhum sucesso.
2) De acordo com a fonte robocfg
, a implementação da tabela VLAN da Broadcom e do chip Realtek parece ser semelhante o suficiente para concluir a partir de 8.12.6 na folha de dados que t
significa "adicionar tag para saída" e u
significa "remover tag incondicionalmente para saída".
3) Seu chipset SoC parece ser um BCM47XX com três etherports no chip, dois dos quais parecem ser usados em outro lugar, e em eth0
:
fwd0: Broadcom BCM47XX 10/100/1000 Mbps Ethernet Controller 7.14.131.56 (r641653)
fwd1: Broadcom BCM47XX 10/100/1000 Mbps Ethernet Controller 7.14.131.56 (r641653)
eth0: Broadcom BCM47XX 10/100/1000 Mbps Ethernet Controller 7.14.131.56 (r641653)
O módulo de controle é et
, o fonte (possivelmente uma variante diferente) está disponível.
Não está totalmente claro para mim se eth1
e eth2
também pertencem a esse driver e se acabaram de se registrar mais tarde ou se pertencem a bcmdhd
(WLAN) e / ou se eles são renomeados por udev em algum momento:
Dongle Host Driver, version 1.363.45.58013 (r651509)
Compiled in drivers/net/wireless/bcmdhd on Jun 21 2017 at 10:36:36
Register interface [eth1] MAC: 34:97:f6:20:1b:a8
...
Dongle Host Driver, version 1.363.45.58013 (r651509)
Compiled in drivers/net/wireless/bcmdhd on Jun 21 2017 at 10:36:36
Register interface [eth2] MAC: 34:97:f6:20:1b:ac
O próximo passo é classificar todas as interfaces de rede. Edite a pergunta com a saída de ip -d link
e também ls -l /sys/class/net/*/lower*
e ls -l /sys/class/net*
. Se isso não fornecer informações suficientes, udevadm info -a -p /sys/class/net/eth0
e udevadm info -a -p /sys/class/net/eth1
também seriam interessantes, supondo que o roteador use udev
.
Outra coisa para procurar é onde estão as informações de configuração, então modinfo rtl8365mb
, modinfo et
pode produzir algo interessante, assim como find /etc | xargs grep eth
ou coisas semelhantes.
Como você pode ver, eu estou pescando informações; isso é lento e não é fácil de fazer remotamente sem o sistema na minha frente. Sinta-se à vontade para fazer estas ou etapas adicionais de qualquer maneira que ordene as coisas. O objetivo é encontrar o local que diz " eth1
está de alguma forma associado a eth0
com a tag VLAN 1".