Configuração de rede /etc/config/network

O padrão de rede roteador doméstico típico OpenWrt se parece com isto:

LuCI → Rede Comentário Exemplo
Firewall Regras para tráfego entre zonas Regras de encaminhamento, regras de tráfego, regras personalizadas
Firewall / Interfaces Configuração de zona de rede WAN (Zona) LAN (Zona)
Interfaces → Interfaces Configuração de IP WAN WAN6 LAN
Interfaces → Devices Configuração de dispositivos e bridge eth0 br-lan (configuração bridge)
Switch / Wireless VLANs e SSIDs sem fio VLAN 2 (eth0.2) VLAN 1 (eth0.1) OpenWrt OpenWrt
Switch / Wireless Etiquetas de conectores internos e etiquetas de rádio WAN (Interface) LAN 1 LAN 2 LAN 3 LAN 4 radio0 radio1
- Etiquetas comuns de fornecedores na parte traseira de um dispositivo “Internet” “1” “2” “3” “4” “n/ac” “b/g/n”

Os recursos ou o esquema de numeração do seu dispositivo podem variar ligeiramente. Uma configuração mínima de rede para um roteador geralmente consiste em pelo menos duas interfaces (lan e wan) e seus respectivos dispositivos (br-lan e eth0), bem como uma seção switch, se aplicável.

Observe que os rótulos WAN e LAN podem ter significados diferentes dependendo do contexto.

A configuração central da rede é gerenciada pelo subsistema UCI network e armazenada no arquivo /etc/config/network. Este subsistema UCI é responsável por definir switch VLANs, configurações de interface e rotas de rede. Após a personalização da configuração de rede, você precisa recarregar ou reiniciar o serviço network para aplicar as alterações.

O serviço network gerencia redes com e sem fio com netifid e wifi, respectivamente.

Interfaces individuais podem ser ativadas com ifup name ou desativadas com ifdown name, onde name corresponde ao nome da interface lógica da seção config interface correspondente.

Lembre-se de que “ifup” normalmente é suficiente para recarregar uma interface, pois inclui “ifdown”.

Observe que as interfaces sem fio são gerenciadas externamente e “ifup” pode interromper a conexão com as pontes existentes. Nesse caso, é necessário executar “wifi up” após “ifup” para restabelecer a conexão da ponte.

# Soft network reload
service network reload
 
# Hard network restart
service network restart
 
# Reconnect interface
ifdown wan6
ifup wan6
 
# Wireless reload
wifi down
wifi up
 
# List interfaces
ubus list network.interface.*
 
# Status information
ifstatus wan6

Aqui está um exemplo de subsistema UCI de rede com configurações padrão para um TL-WR1043ND:

config interface 'loopback'
	option device 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'
 
config globals 'globals'
	option ula_prefix 'fd27:70fa:5c1d::/48'
 
config device 'lan_br'
	option name 'br-lan'
	option type 'bridge'
	list ports 'eth0.1'
 
config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option netmask '255.255.255.0'
	option ip6assign '60'
	option ipaddr '192.168.1.1'
 
config interface 'wan'
	option device 'eth0.2'
	option proto 'dhcp'
 
config interface 'wan6'
	option device 'eth0.2'
	option proto 'dhcpv6'
 
config switch
	option name 'switch0'
	option reset '1'
	option enable_vlan '1'
 
config switch_vlan
	option device 'switch0'
	option vlan '1'
	option ports '1 2 3 4 5t'
 
config switch_vlan
	option device 'switch0'
	option vlan '2'
	option ports '0 5t'

A seção “globais” contém opções independentes de interface que afetam a configuração geral da rede.

config globals 'globals'
	option ula_prefix 'fd27:70fa:5c1d::/48'
Nome Tipo Obrigatório Padrão Descrição
ula_prefix IPv6-prefix or auto não (nenhum) Prefixo IPv6 ULA para este dispositivo: auto - gera automaticamente um novo prefixo ULA
packet_steering number não 0 Usa cada CPU para lidar com o tráfego de pacotes. 0 - desabilitado, 1 - habilitado, 2 - habilitado para todas as CPUs
tcp_l3mdev boolean não 0 Alterna a flag net.ipv4.tcp_l3mdev_accept (para VRF)
udp_l3mdev boolean não 0 Alterna a flag net.ipv4.udp_l3mdev_accept (para VRF)

A seção “dispositivo” é opcional quando L2 e L3 são o mesmo dispositivo, ou seja, MAC e IP na mesma interface física.

config device 'lan_br'
	option name 'br-lan'
	option type 'bridge'
	list ports 'eth0.1'

Outro exemplo: habilitar controle de fluxo para interface eth2:

config device                          
        option name 'eth2'                        
        option rxpause '1'             
        option txpause '1'
Nome Tipo Obrigatório Padrão Descrição
name string sim (nenhum) Nome do dispositivo L3.
Precisa corresponder à opção device da respectiva seção interface
macaddr string não (nenhum) Endereço MAC substituindo o padrão para este dispositivo, por exemplo, 62:11:22:aa:bb:cc
type string não (nenhum) Se definido como bridge, cria uma bridge do name fornecido usando dispositivos L2 listados em ports e interfaces sem fio atribuídas usando a opção network na configuração sem fio
ifname string não(*) (nenhum) O dispositivo L2 base necessário ao usar o tipo de dispositivo macvlan. Instale o pacote kmod-macvlan, se necessário.
ports list não (nenhum) Lista de nomes de dispositivos L2.
rxpause string não (nenhum) Controla o controle de fluxo de recepção (RX). Defini-lo como 1 habilita quadros de pausa RX, o que permite que a interface sinalize o remetente para pausar a transmissão quando sobrecarregada por dados de entrada.
txpause string não (nenhum) Controla o fluxo de transmissão (TX). Definir o valor como 1 habilita quadros de pausa de TX, permitindo que a interface interrompa temporariamente o envio de dados quando o receptor indicar sobrecarga.
autoneg string não (nenhum) Definir como 1 habilita a negociação automática, que determina se a interface negociará automaticamente os melhores parâmetros de link (como velocidade, modo duplex) com o dispositivo conectado.
table string não 10 Quando type estiver definido como vrf, defina o nome ou número da tabela de roteamento aqui.

TODO: mover tudo relacionado a pontes e à camada 2 para cá.

Seções do tipo interface declaram redes lógicas que servem como contêineres para configurações de endereço IP, aliases, rotas, nomes de interface física e regras de firewall — elas desempenham um papel central no conceito de configuração do OpenWrt.

Uma declaração mínima de interface consiste nas seguintes linhas:

config 'interface' 'wan'
	option 'proto' 'dhcp'
	option 'device' 'eth0.2'
  • wan é um nome de interface lógica exclusivo
  • dhcp especifica o protocolo de interface, DHCP neste exemplo
  • eth0.2 é a interface física associada a esta seção

O kernel Linux limita o comprimento do nome da interface física a no máximo 14 caracteres utilizáveis, incluindo o prefixo adicionado automaticamente para alguns protocolos (por exemplo, 6in4, pppoa-, pppoe-, gre4t-) ou com pontes (br-).

Dependendo do tipo de protocolo, o nome da interface lógica pode ser limitado a apenas 8 caracteres. Por exemplo, abcde6789 é um nome de interface válido para uma interface normal usando DHCP, mas não para uma interface PPPoE, onde o nome final seria pppoe-abcde6789, que tem mais de 14 caracteres.

Se estiver usando a notação .VLAN, 5 caracteres adicionais podem ser necessários, limitando o nome da interface “pai” a 3 caracteres para protocolos como GRE.

abcd.NNNNgre4t-abc.NNNN para 14 caracteres.

Usar um nome muito longo levará a erros silenciosos, com a criação ou modificação da interface falhando. Um exemplo desse erro silencioso ao usar br- e notações .VLAN de comprimento diferente pode ser visto no fórum em https://forum.openwrt.org/t/network-interface-warning-has-a-issue/182420/14

O protocolo de interface pode ser um dos seguintes:

Protocolo Descrição Programa
static Configuração estática com endereço e máscara de rede fixos ip/ifconfig
dhcp Endereço e máscara de rede atribuídos por DHCP udhcpc (Busybox)
dhcpv6 Endereço e máscara de rede atribuídos por DHCPv6 odhcpc6c
ppp Protocolo PPP - conexões de modem discado pppd
pppoe PPP sobre Ethernet - conexão de banda larga DSL pppd + plugin rp-pppoe.so
pppoa PPP sobre ATM - conexão DSL usando um modem integrado pppd + plugin ...
3g Conexão CDMA, UMTS ou GPRS usando um modem 3G estilo AT comgt
qmi Modems USB usando protocolo QMI uqmi
ncm Modems USB usando protocolo NCM comgt-ncm + ?
wwan Modems USB com autodetecção de protocolo wwan
hnet Rede doméstica autogerenciada (HNCP) hnet-full
pptp Conexão via VPN PPtP ?
6in4 Túnel IPv6 em IPv4 para uso com Tunnel Brokers como HE.net ?
aiccu Túnel “tudo em tudo” aiccu
6to4 IPv6 sem estado sobre transporte IPv4 ?
6rd Implantação rápida de IPv6 6rd
dslite Dual-Stack Lite ds-lite
l2tp PPP sobre L2TP Pseudo túnel com fio xl2tpd
relay Retransmitir pseudo-bridge relayd
gre, gretap GRE over IPv4 gre + kmod-gre
grev6, grev6tap GRE sobre IPv6 gre + kmod-gre6
vti VTI sobre IPv4 vti + kmod-ip_vti
vtiv6 VTI sobre IPv6 vti + kmod-ip6_vti
vxlan Protocolo VXLAN para camada 2 virtualização, consulte aqui para obter mais informações e um exemplo de configuração. vxlan + kmod-vxlan + ip-full
none Protocolo não especificado, portanto, todas as outras configurações de interface serão ignoradas (como desabilitar a configuração). -

Dependendo do protocolo de interface utilizado, várias outras opções podem ser necessárias para uma declaração completa da interface. As opções correspondentes para cada protocolo estão listadas abaixo. As opções marcadas como “sim” na coluna “Obrigatório” devem ser definidas na seção de interface se o protocolo correspondente for utilizado. As opções marcadas como “não” podem ser definidas, mas também podem ser omitidas.

:!: Se uma seção de interface não tiver um protocolo definido (nem mesmo “nenhum”), as outras configurações serão completamente ignoradas. O resultado é que, se a seção de interface mencionar uma interface de rede física (por exemplo, eth0), ela estará inativa mesmo se um cabo estiver conectado (com proto “nenhum”, a interface estará ativa).

Opções comuns: opções válidas para todos os tipos de protocolo.

Nome Tipo Obrigatório Padrão Descrição
device string sim(*) (nenhum) Nome do dispositivo L3, como eth0.1, eth2, tun0, br-lan, etc.
Precisa corresponder à opção name da respectiva seção device.
:!: Não especifique interfaces sem fio, pois seus nomes e comportamento podem ser dinâmicos e imprevisíveis. Em vez disso, atribua interfaces sem fio a bridges usando a opção network em configuração sem fio.
Esta opção pode estar vazia ou ausente se apenas uma interface sem fio fizer referência a esta rede ou se o protocolo for pptp, pppoa, 6in4, etc.
mtu number não (nenhum) Substituir o MTU padrão nesta interface
auto boolean não 0 for proto none, else 1 Especifica se a interface deve ser ativada na inicialização
ipv6 boolean não 1 Especifica se o IPv6 deve ser habilitado (1) ou desabilitado (0) nesta interface (somente para o Barrier Breaker e versões posteriores)
force_link boolean não 1 for protocol static, else 0 Especifica se o endereço IP, a rota e, opcionalmente, o gateway são atribuídos à interface independentemente de o link estar ativo ('1') ou somente após o link se tornar ativo ('0'); quando definido como '1', os eventos de detecção de portadora não invocam manipuladores hotplug
disabled boolean não 0 Habilitar ou desabilitar a seção de interface
ip4table string não (nenhum) Tabela de roteamento IPv4 para rotas desta interface, consulte: ip rule show; ip route show table <ip4table>
ip6table string não (nenhum) Tabela de roteamento IPv6 para rotas desta interface, consulte: ip -6 rule show; ip -6 route show table <ip6table>

:!: Todas as configurações de ponte são opcionais.

Nome Tipo Padrão Faixa Descrição
bridge_empty boolean 0 0, 1 Permite a criação de pontes vazias
vlan_filtering boolean 0 0, 1 Habilita o modo de ponte com reconhecimento de VLAN
igmp_snooping boolean 0 0, 1 Habilita o snooping IGMP na ponte, uma otimização que envia tráfego multicast apenas para portas com clientes ou roteadores multicast
multicast_querier boolean (igmp_snooping setting) 0, 1 IGMP Habilita a ponte como um querier multicast, o que mantém os mapeamentos de grupo multicast para porta atualizados. Apenas um querier é eleito por sub-rede.
query_interval number 12500 - IGMP Intervalo em 1/100 segundos entre as consultas gerais do querier (portanto, o padrão é 125 segundos).
query_response_interval number 1000 (less than query_interval) IGMP Tempo máximo em 1/100 segundos para o envio de respostas a consultas (aumente para tornar o IGMP menos intermitente).
last_member_interval number 100 - IGMP Tempo máximo em 1/100 segundos para respostas a consultas após mensagens de “sair do grupo” (a latência de saída).
hash_max number 512 - IGMP Tamanho da tabela de hash multicast do kernel (maior para evitar colisões que desabilitam o snooping).
robustness number 2 - IGMP Define a Contagem de Consultas de Inicialização e a Contagem dos Últimos Membros. Também combinado com query_interval e query_response_interval para calcular o Intervalo de Associação ao Grupo e o tempo limite de “outro querier” (ambos os outros valores devem ser definidos).
stp boolean 0 0, 1 Habilita o Protocolo Spanning Tree (STP) que previne loops de rede (e tempestades de pacotes resultantes)
forward_delay number 2:!: 2 - 30 STP Atraso em segundos entre as transições de estado da porta de Escuta → Aprendizado → Encaminhamento (ou seja, as portas de ponte serão bloqueadas por 2x este valor quando ativadas)
:!: NOTA O padrão 2 está abaixo do padrão mínimo 802.1D de 4, e o STP será ignorado pelos switches em conformidade. Defina como pelo menos 4 para funcionar com switches não OpenWrt!
hello_time number 2 1 - 10 STP Segundos entre pacotes STP
priority number 32767 0 - 65535 STP Prioridade da Ponte. A ponte de menor prioridade torna-se a Raiz da Árvore de Extensão; a maioria dos switches assume como padrão 32768
ageing_time number 300 10 - 1000000 STP Expira em segundos para entradas MAC dinâmicas no Banco de Dados de Filtragem
max_age number 20 6 - 40 STP Após a ausência da Ponte Raiz atual por tantos segundos, tenta se tornar a Ponte Raiz (afeta a velocidade de identificação de uma ponte inativa)

Isso se aplica apenas ao OpenWrt 21.02 e versões posteriores e somente para destinos que migraram para um driver DSA.

FIXME, consulte: Rede DSA

A partir do OpenWrt 21.02, o swconfig está sendo descontinuado e substituído pelo DSA.

Este guia se aplica a todas as versões do OpenWrt anteriores à 21.02. Também se aplica a destinos não DSA no OpenWrt 21.02.

Para muitos usuários, a configuração padrão do switch é suficiente. Caso o usuário precise configurar o switch de forma diferente, LuCI, UCI ou a edição direta de /etc/config/network podem ser usados ​​para obter configurações diferentes. Antes de qualquer reconfiguração do switch, é importante entender a configuração padrão. Por exemplo, alguns dispositivos têm uma única interface conectada ao switch e outros têm duas ou mais.

Veja também:

O identificador do(s) switch(es) pode ser obtido usando:

# swconfig list
Found: switch0 - ag71xx-mdio.0

Com o identificador conhecido, a configuração pode ser visualizada:

# swconfig dev switch0 show
Global attributes:
	enable_vlan: 1
	enable_mirror_rx: 0
	enable_mirror_tx: 0
	mirror_monitor_port: 0
	mirror_source_port: 0
	arl_age_time: 300
	arl_table: address resolution table
[...]

Existem três tipos de estrofes de configuração relacionadas ao switch: switch, switch_vlan e switch_port.

Nem todas as opções estão disponíveis em todos os hardwares. Algumas limitações podem ser encontradas com swconfig dev <dev> help. Após fazer as alterações, verifique a saída de swconfig para determinar se a configuração foi aceita pelo hardware do switch.

FIXME: A lista de opções pode estar incompleta. Os detalhes de cada opção precisam de descoberta e documentação adicionais, incluindo a verificação do código subjacente. A fonte das restrições nos intervalos de valores ainda não foi identificada. Os valores válidos devem ser confirmados no código.

Option Name Type Required Default Impact Notes
name string yes (none) defines which switch to configure
reset boolean 1
enable_vlan boolean 1 Default may differ by hardware
enable_mirror_rx boolean no 0 Mirror received packets from the mirror_source_port to the mirror_monitor_port
enable_mirror_tx boolean no 0 Mirror transmitted packets from the mirror_source_port to the mirror_monitor_port
mirror_monitor_port integer no 0 Switch port to which packets are mirrored
mirror_source_port integer no 0 Switch port from which packets are mirrored
arl_age_time integer no 300 Adjust the address-resolution (MAC) table's aging time (seconds) Default may differ by hardware
igmp_snooping boolean no 0 Enable IGMP snooping Unconfirmed if can be set. Unknown how it interacts with interface- or port-level IGMP snooping.
igmp_v3 boolean no 0 Unconfirmed if can be set. Unknown how it interacts with interface- or port-level IGMP snooping.
Option Name Type Required Default Impact Notes
description string no (none) A human-readable description of the VLAN configuration
device string yes (none) defines which switch to configure
vlan integer yes (none) The vlan “table index” to configure May be limited to 127 or another number. See the output of swconfig dev <dev> help for limit. Sets defaults for VLAN tag and PVID.
vid integer no vlan The VLAN tag number to use See the output of swconfig dev <dev> help for limit. VLANs 0 and 4095 are often considered “special use”.
ports string yes (none) A string of space-separated port indicies that should be associated with the VLAN. Adding the suffix t to a port indicates that egress packets should be tagged, for example '0 1 3t 5t' The suffixes * and u are referred to in docs:guide-user:network:switch with reference to certain Broadcom switches in the context of older releases.
Option Name Type Required Default Impact Notes
device string yes (none) defines which switch to configure
port integer yes (none) The port index to configure
pvid integer no Port PVID; the VLAN tag†† to assign to untagged ingress packets †Typically defaults one of the VLAN tags associated with the port. Logic not clear when there are multiple VLANs on the port. '0' can occur. Certain values have been rejected; logic not clear on limitations. ††May refer to the VLAN “index” rather than the VLAN tag itself (unconfirmed).
enable_eee boolean no 0 Enable “energy saving” features
igmp_snooping boolean no 0 Enable IGMP snooping Unconfirmed if can be set. Unknown how it interacts with interface- or switch-level IGMP snooping.
igmp_v3 boolean no 0 Unconfirmed if can be set. Unknown how it interacts with interface- or switch-level IGMP snooping.
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2025/07/02 05:20
  • by marcomangini