Pular para o conteúdo

VLANs, endereços e rotas

As VLANs ficam guardadas na configuração e são criadas novamente a cada boot pelo dtvsol-vlans.service. Cada VLAN é criada separadamente: uma que falhe não impede as outras.

Janela do terminal
dtvsol iface # every interface: physical, VLAN, QinQ, with addresses
dtvsol vlan list # the VLANs the router manages

O dtvsol vlan add é interativo:

Janela do terminal
dtvsol vlan add

Ele pergunta:

  • Parent: uma porta, um bond ou uma S-VLAN (para uma C-VLAN interna).
  • VLAN id: 1–4094.
  • Protocol (em um pai físico): Q para 802.1Q, ad para 802.1ad (uma S-VLAN QinQ).
  • IPv4 e IPv6: o endereço do roteador nela. Você pode informar a rede; o roteador pega o primeiro endereço (100.70.9.0/24 vira 100.70.9.1/24, XXXX:XXXX::/64 vira XXXX:XXXX::1/64).
  • Label: para que ela serve.
  • Serve it with DHCP now: cria a sub-rede DHCP, o pool e a prefix delegation IPv6.

Os nomes seguem o tipo: vlan100 para 802.1Q em uma porta ou bond, svlan1000 para uma S-VLAN 802.1ad e svlan1000.116 para uma C-VLAN dentro dela.

Para uma rede QinQ, crie primeiro a S-VLAN (protocolo ad) e depois uma C-VLAN nela por segmento de acesso, com a S-VLAN como pai.

Janela do terminal
dtvsol vlan disable vlan100 "maintenance until Monday"
dtvsol vlan enable vlan100
dtvsol vlan del vlan100
  • Disable desliga uma VLAN e mantém todas as configurações. Enable a devolve exatamente como estava.
  • Delete é definitivo. Ele leva junto as redes DHCP, as rotas estáticas, o pool de NAT e os redirecionamentos de portas da VLAN. É recusado enquanto houver clientes registrados na VLAN.

Os admins podem fazer o mesmo em Settings → VLANs no monitor. O monitor se recusa a desativar ou apagar uma VLAN que:

  • leva uma rota padrão (o roteador ficaria inacessível),
  • contém o endereço pelo qual chegaram o seu navegador, uma sessão SSH ou a API,
  • tem outras VLANs sobre ela.

Antes de desativar ou apagar, a página lista o que acontece (os endereços que param, o DHCP que para, as rotas que são apagadas). Apagar pede que você digite o nome da VLAN.

Janela do terminal
dtvsol ip add vlan100 100.70.1.1/24
dtvsol ip del vlan100 100.70.1.1/24

Sem argumentos, o dtvsol ip add pergunta. A exclusão de um endereço é recusada enquanto clientes registrados o usam como gateway. A página Settings → IP addresses do monitor também se recusa a apagar o endereço pelo qual você chegou, ou um cuja rede contém o gateway padrão.

Os endereços de uma VLAN de serviços pertencem aos seus serviços: altere-os com dtvsol service ….

Janela do terminal
dtvsol net list # interfaces with DHCP status
dtvsol net add # interactive: serve an interface with DHCPv4
dtvsol net del # interactive: stop serving it
dtvsol net6 add # the same for DHCPv6
dtvsol net6 pool vlan100
dtvsol net6 lease 86400 43200

Cada alteração na configuração do DHCP é testada com dhcpd -t e desfeita se falhar.

Janela do terminal
dtvsol pd list
dtvsol pd add vlan100 # delegate a prefix to every CPE on the VLAN
dtvsol pd resize vlan100 1024 # how many subscribers the VLAN's slice holds
dtvsol pd assign AA:BB:CC:DD:EE:FF
dtvsol pd sync --dry-run

Os prefixos delegados são recortados do pd_pool em /opt/dtvsol/etc/config.php. O roteador adiciona uma rota no kernel para cada prefixo delegado ativo, acompanhando o arquivo de lease do DHCPv6.

Janela do terminal
dtvsol dns # what each VLAN hands out
dtvsol dns set v4=XXX.XXX.XXX.53,XXX.XXX.XXX.54 v6=XXXX:XXXX::53
dtvsol dns set vlan100 v4=XXX.XXX.XXX.60 # one VLAN's override
dtvsol dns del vlan100
Janela do terminal
dtvsol route list
dtvsol route add XXX.XXX.XXX.0/24 via 10.20.0.2 "customer block"
dtvsol route add XXXX:XXXX:200::/48 via XXXX:XXXX:ffff::2
dtvsol route del XXX.XXX.XXX.0/24 via 10.20.0.2

As rotas sobrevivem a reinicializações.

Para source-NAT simples (não CGNAT):

Janela do terminal
dtvsol nat list
dtvsol nat add bond0 XXX.XXX.XXX.20 XXX.XXX.XXX.23 exempt 10.0.0.0/8 "office NAT"
dtvsol nat del bond0

Para os assinantes, o CGNAT geralmente é a melhor escolha. Veja CGNAT.

Este site foi escrito com a ajuda de IA e revisado pela nossa equipe.