Portgrid Docs v0.1.36

Topologia de rede e BNG#

Cenário de referência#

Clientes PPPoE ─► BNG Juniper (100.64.0.0/10) ─ filtro PBR-CGNAT ─► VLAN 710 ─► Portgrid ─► VLAN 230 ─► trânsito/IX
  • O BNG entrega o tráfego dos assinantes (rede 100.64.0.0/10) ao CGNAT por policy-based routing.
  • A VLAN 710 liga BNG → CGNAT; a 230 é a saída/retorno. Os números são exemplos: a política aceita qualquer par de VLANs.
  • Para qualquer par de VLANs no mesmo enlace físico enp1s0, deixe CGNAT_NIC_INTERFACES="enp1s0" e informe as subinterfaces na política.
  • Em PPPoE informe o endereço local usado como gateway.

Filtro PBR no Juniper (modelo)#

Ordem dos termos de PBR-CGNAT:

  1. BYPASS-PARCEIROS (destinos que não devem passar pelo CGNAT);
  2. TO-CGNAT com next-ip do Portgrid;
  3. ACEITA-RESTO.

Tráfego lateral entre clientes

Com PBR, tráfego de um cliente para outro dentro de 100.64.0.0/10 também vai ao CGNAT e sai NATed. Um CPE infectado pode atacar vizinhos assim. Mitigação: um termo antes do TO-CGNAT que descarta (ou isola) origem e destino ambos em 100.64.0.0/10, e/ou isolamento de clientes (client isolation) na L2. Alternativa no Portgrid: lista de bloqueio do IP infectado e limites max_new_flows_per_second/max_sessions_per_subscriber.

Inundação (flood) no switch#

Se o switch esquece o MAC do Portgrid (aging) o tráfego PBR é inundado em toda a VLAN. O cgnatd mantém um L2 keepalive para renovar o MAC periodicamente. Se mesmo assim ocorrer, confira a tabela MAC do switch e o aging time.

MTU e MSS#

PPPoE usa MTU 1492. Para evitar fragmentação: MSS clamp no BNG, e o dataplane traduz o primeiro fragmento e fragmentos seguintes por cache; ICMP "fragmentation needed" de fora é traduzido (PMTUD funciona).

Roteamento no servidor#

  • O prefixo público do pool aparece como /32 na loopback (anunciado ao upstream por BGP no roteador de borda, não pelo Portgrid).
  • Rotas estáticas: set routing static-route <prefixo> next-hop <ip>.
  • net.ipv4.ip_forward=1 é necessário.
  • Sem NIC com XDP nativo, o desempenho cai drasticamente.
Portgrid v0.1.36 · gerado em 04/10/2026 17:50 · © Portgrid · Documentação do produto.