Início / Notas técnicas / IPSG bloqueando tráfego legítimo

IP Source Guard descarta pacotes legítimos: a armadilha do MAC no encaminhamento L3

O IPSG sobe limpo em cada porta de acesso, e então um uplink roteado morre silenciosamente assim que você o habilita. A causa não é uma tabela de vínculo incorreta — é que o encaminhamento de camada 3 reescreve o MAC de origem do pacote antes mesmo do IPSG examiná-lo. Veja como provar isso com uma captura de pacotes, e as armadilhas relacionadas que vêm da mesma lógica de tabela de vínculo.

Por Yuwen Zhang (Atlas), fundador da AtlasCommTech — 13 anos de implantações de redes de operadoras e empresariais · Atualizado em julho de 2026

Por que uma tabela de vínculo «funcional» ainda assim descarta tráfego

A tabela de vínculo não está errada. Ela apenas responde a uma pergunta que o IPSG fez no ponto errado da jornada do pacote.

O IP Source Guard verifica o IP de origem, o MAC de origem, a VLAN e a interface de entrada de um pacote em relação a uma tabela de vínculo antes de decidir se encaminha ou descarta. Em uma porta de acesso de camada 2 simples, essa verificação é trivial — o MAC do cliente nunca muda entre o momento em que o DHCP Snooping o registra e o momento em que o IPSG examina o próximo pacote. Habilite o mesmo recurso em uma interface a jusante de um encaminhamento de camada 3, e ele pode começar a descartar tráfego que nunca foi um problema de segurança.

Esta é uma das falhas de IPSG mais contraintuitivas, porque tudo mais na configuração parece correto — a tabela de vínculo tem a entrada certa, nenhuma ACL está envolvida, e a própria interface não mostra erros. A falha está em um detalhe que a maioria dos engenheiros não pensa em verificar até já ter relido a configuração, o cabeamento e a tabela de DHCP Snooping duas vezes cada. Se a tabela de vínculo que seu dispositivo está gerando já parece errada de início, a nota de solução de problemas de DHCP Snooping é o ponto de partida — esta nota assume que a tabela de vínculo já está correta e pergunta por que o IPSG ainda assim descarta o tráfego.

Leia os dois caminhos antes de mexer na tabela de vínculo

O IPSG se comporta de forma idêntica nos dois caminhos abaixo. A única diferença é se algo no meio do caminho reescreveu o MAC de origem do pacote.

Colocar seu sintoma no lado correto deste diagrama indica imediatamente se você está diante de um problema de tabela de vínculo ou de encaminhamento de camada 3 — e os dois são corrigidos de formas completamente diferentes.

PATH A · L2 ACCESS PORT (DIRECT DHCP CLIENT) PATH B · L3-FORWARDED / ROUTED UPLINK Client packet leaves the hostSrc MAC = client's own MAC (AA:AA) · untouched Same packet, routed across a VLANIF hopL3 forwarding rewrites Src MAC to the outgoing interface's own MAC (BB:BB) DHCP Snooping binding table records AA:AAIP + AA:AA + VLAN + interface, built at the access edge Binding table still only knows AA:AADynamic entries never track the post-routing MAC rewrite IPSG compares packet Src MAC to the binding tableAA:AA = AA:AA -> match IPSG compares packet Src MAC to the binding tableBB:BB != AA:AA -> mismatch PASS -- link works normally DROP -- link goes dead once IPSG is enabled Same DHCP Snooping binding table, same IPSG feature -- the only variable is whether a routing hop rewrote the source MAC before the check.

Os rótulos do diagrama permanecem em inglês para clareza técnica.

O caminho A quase nunca falha, porque nada entre o cliente DHCP e o ponto de verificação do IPSG toca o MAC de origem do quadro. O caminho B vale a pena reler: tudo na tabela de vínculo pode estar perfeitamente correto e o IPSG ainda assim descartará o tráfego, porque o pacote que o IPSG realmente inspeciona não é mais o que o cliente originalmente enviou.

Confirme que é a reescrita do MAC, não uma tabela de vínculo incorreta

Quatro verificações, em ordem — cada uma descarta uma causa plausível diferente antes de chegar à captura de pacotes que realmente comprova isso.

Etapa 1 — Isolar o IPSG como a causa real

Antes de ler os arquivos de captura, confirme que o bloqueio é realmente do IPSG e não de algo anterior no caminho.

  1. Desative a verificação de pacotes do IPSG na interface e faça ping pelo caminho — se passar limpo, e reativar a verificação quebrar de novo, é o IPSG (não o roteamento, não a ACL, não o link físico) o recurso que está descartando.
  2. Verifique display interface para a porta em questão. Os descartes do IPSG não aparecem como um contador Discard ou CRC crescente — uma interface de aparência limpa com contadores de erro zerados é exatamente a cara dessa falha, não uma evidência contra ela.
  3. Verifique display dhcp snooping user-bind all (e a tabela estática, se existir) para o IP do cliente. Nessa falha, a entrada está presente e parece totalmente correta — a própria tabela de vínculo nunca foi a origem do problema.
[Switch] display inter XGigabitEthernet 0/0/1
XGigabitEthernet0/0/1 current state : UP
Discard:              0, Pause:               0
Total Error:          0
// zero drops on the interface counters -- IPSG's own drop is not counted here

<Switch> display dhcp snooping user-bind all
DHCP Dynamic Bind-table:
IP Address     MAC Address    VSI/VLAN(O/I/P)/(BD-VLAN) Interface Lease
192.168.10.214 5451-1b84-0a1b 10 /-- /--                XGE1/0/0  2024.07.25-21:55
// binding table entry is present and looks correct -- this is not where the fault is

Etapa 2 — Capturar nos dois lados do salto de encaminhamento

Esta é a verificação que realmente comprova a teoria — tudo antes disso apenas restringe a busca.

  1. Capture no lado voltado para o cliente do caminho e anote o MAC de origem do quadro — esse é o endereço que a tabela de vínculo tem registrado.
  2. Capture novamente na própria interface com IPSG habilitado, para o mesmo fluxo. Compare os dois endereços MAC de origem.
  3. Se as duas capturas mostram endereços MAC de origem diferentes para o que é obviamente a mesma conversa, um salto de camada 3 entre elas reescreveu o quadro — que é exatamente o que o roteamento faz com cada quadro que encaminha, e exatamente o que a tabela de vínculo dinâmica nunca foi feita para rastrear.
// Capture near the client:
Frame 7: Ethernet II, Src: HuaweiTe_84:0a:18 (54:51:1b:84:0a:18), Dst: Dongguan_0b:3c:eb (3c:c7:86:0b:3c:eb)
Internet Protocol Version 4, Src: 192.168.7.81, Dst: 192.168.10.214

// Capture on the IPSG-enabled interface, same conversation:
Frame 10: Ethernet II, Src: Dongguan_0b:3c:e8 (3c:c7:86:0b:3c:e8), Dst: HuaweiTe_84:0a:18 (54:51:1b:84:0a:18)
Internet Protocol Version 4, Src: 192.168.10.214, Dst: 192.168.7.81
// same flow, but the source MAC seen at this interface is not the binding table's recorded MAC
// -- the L3 hop between the two capture points rewrote it

Etapa 3 — Corrigir sem desligar o IPSG

A solução não é desativar o recurso — é fornecer a ele uma entrada de vínculo que corresponda ao pacote que ele realmente verá.

  1. Adicione uma entrada de vínculo estática na interface com IPSG habilitado usando o endereço MAC que a captura mostrou naquela interface — não o MAC original do cliente. Em um caminho roteado, esse é o MAC do salto anterior, não o do dispositivo final.
  2. Reserve os vínculos dinâmicos do DHCP Snooping para interfaces onde os quadros do próprio cliente chegam sem modificação. Não confie na tabela dinâmica para nenhuma interface a jusante de um ponto de encaminhamento de camada 3.
  3. Quando o IPSG precisar estar em vários saltos roteados no mesmo caminho, verifique o vínculo estático de cada salto separadamente — o MAC de origem muda em cada fronteira de camada 3 que cruza, não apenas na primeira.
[Switch] user-bind static ip-address 192.168.10.214 mac-address 3cc7-860b-3ceb interface XGigabitEthernet 1/0/1
[Switch] interface XGigabitEthernet 1/0/1
[Switch-XGigabitEthernet1/0/1] ip source check user-bind enable
// the MAC used here is the post-routing MAC actually seen at *this* interface,
// confirmed by the capture -- not the client's original MAC

5 armadilhas que a mesma lógica de tabela de vínculo produz

Depois de confirmar ou descartar a falha de reescrita de MAC acima, essas cinco armadilhas explicam a maior parte do restante do que dá errado em torno do IPSG e suas tabelas de vínculo.

1. O encaminhamento de camada 3 reescreve o MAC de origem — a tabela de vínculo nunca vê isso

SINTOMAO ping e o tráfego de aplicações através de um salto roteado falham no momento em que a verificação de pacotes do IPSG é habilitada nessa interface; desativar a verificação restaura o tráfego imediatamente, sem alterações de ACL, rota ou link.

CAUSADurante o encaminhamento de camada 3, o MAC de origem do quadro muda para o MAC próprio da interface de saída a cada salto. A tabela de vínculo dinâmica do dispositivo, gerada pelo DHCP Snooping, sempre registra apenas o MAC original e inalterado do cliente. O IPSG compara o MAC de origem atual do pacote ao vivo com esse registro inalterado, então um pacote perfeitamente legítimo e perfeitamente roteado falha na correspondência e é descartado.

SOLUÇÃOAdicione uma entrada de vínculo estática na interface roteada / com IPSG habilitado usando o MAC pós-encaminhamento realmente visto naquela interface, não o MAC do cliente de origem. Confiar apenas na tabela dinâmica do DHCP Snooping só é seguro em interfaces onde os quadros chegam com o MAC de origem intacto.

2. Uma única entrada de vínculo estática bloqueia todos os outros usuários naquela porta

SINTOMAAssim que um único vínculo estático IP+MAC é adicionado em uma interface compartilhada, usuários não relacionados na mesma porta perdem conectividade — não apenas o tráfego que o vínculo deveria controlar.

CAUSAAssim que qualquer entrada de vínculo estática existe em uma interface com a verificação de pacotes do IPSG habilitada, todo pacote IP que chega a essa interface é comparado com a tabela de vínculo — não há um modo parcial em que apenas o endereço vinculado é verificado e tudo o mais passa sem ser tocado. O tráfego de usuários que nunca receberam uma entrada de vínculo não tem nada para corresponder, então é tratado como uma tentativa de falsificação e descartado.

SOLUÇÃOAdicione uma entrada de vínculo estática para cada usuário legítimo que compartilha essa interface, ou remova completamente os vínculos estáticos e confie nos vínculos dinâmicos do DHCP Snooping para uma interface de acesso compartilhada — misturar alguns usuários vinculados com o restante não vinculado na mesma porta não funciona.

3. Portas confiáveis pulam a verificação completamente — silenciosamente

SINTOMAO IPSG está configurado e aparece na configuração em execução, mas uma interface específica nunca bloqueia nada, mesmo tráfego que claramente deveria falhar na verificação da tabela de vínculo.

CAUSAUma porta configurada como porta confiável do DHCP Snooping encaminha todos os pacotes sem qualquer comparação com a tabela de vínculo — o status confiável ignora o IPSG naquela interface por completo, por design. A configuração parece idêntica à de uma interface de IPSG funcional porque não é o próprio comando ip source check que controla esse comportamento.

SOLUÇÃOVerifique a função confiável/não confiável do DHCP Snooping da porta antes de supor um problema de tabela de vínculo ou ACL — display dhcp snooping user-bind mais a configuração de confiança da interface explicam mais chamados silenciosos de «o IPSG não funciona» do que uma entrada de vínculo incorreta.

4. A tabela de vínculo dinâmica expira sob tráfego que estava funcionando

SINTOMAUm dispositivo que vinha passando tráfego normalmente por horas ou dias de repente começa a descartar pacotes de um cliente que não mudou seu IP ou MAC de forma alguma.

CAUSAOs vínculos dinâmicos gerados pelo DHCP Snooping têm o mesmo envelhecimento baseado em arrendamento que o próprio arrendamento DHCP. Se o cliente não renovar antes que a entrada expire, e não enviar uma nova solicitação DHCP que regeneraria o vínculo, a entrada simplesmente desaparece, e o IPSG então não tem mais nada com que comparar o tráfego contínuo do cliente.

SOLUÇÃOConfirme se a entrada da tabela de vínculo ainda está presente com display dhcp snooping user-bind all antes de solucionar qualquer outra coisa; se ela sumiu e o cliente não refez o DHCP, resolva a incompatibilidade com um tempo de arrendamento adequado ou adicione um vínculo estático para hosts que não podem ser confiáveis para renovar prontamente.

5. A granularidade do vínculo estático determina o raio de impacto

SINTOMADepois de adicionar um vínculo estático destinado a limitar uma porta ou VLAN específica, usuários em outras partes da rede começam a perder conectividade — ou, ao contrário, os usuários que o vínculo deveria restringir ainda passam tráfego livremente.

CAUSAUma entrada de vínculo estática pode ser definida com qualquer combinação de IP, MAC, interface e VLAN, em uma visão de interface ou visão de VLAN — e o escopo muda completamente dependendo de quais campos são incluídos. Uma entrada VLAN+IP sem interface ou MAC restringe apenas por IP e VLAN, deixando passar qualquer MAC ou interface; uma entrada Interface+MAC sem IP faz o oposto. Errar a combinação não falha ruidosamente — apenas protege, ou bloqueia, um conjunto de tráfego diferente do pretendido.

SOLUÇÃODecida primeiro o escopo pretendido — um usuário, uma porta ou uma VLAN — e inclua exatamente os campos que correspondem a esse escopo; em caso de dúvida, uma entrada Interface+IP+MAC+VLAN é a mais específica e a menos propensa a um raio de impacto não intencional.

Projetos de soluções relacionadas

Seis perguntas que aparecem constantemente

Tiradas diretamente do campo — as que vale a pena ter uma resposta pronta.

Por que display interface mostra zero descartes quando o IPSG claramente está bloqueando tráfego?

Os descartes do IPSG não são contados nas estatísticas de Discard comuns da interface — essas rastreiam descartes físicos e em nível de buffer, não baseados em política. Um conjunto de contadores de interface limpo é exatamente o esperado nessa falha, não evidência de que o IPSG não está envolvido. Confirme alternando a verificação de pacotes e observando se o sintoma a acompanha.

Qual é a diferença real entre as tabelas de vínculo dinâmica e estática?

A tabela dinâmica é gerada automaticamente pelo DHCP Snooping à medida que os clientes arrendam endereços, e expira com o arrendamento DHCP. A tabela estática é inserida manualmente e nunca expira — é a ferramenta certa para hosts com IP fixo, hosts atrás de um salto roteado onde o MAC de origem muda, ou qualquer dispositivo que não seja cliente DHCP. O IPSG verifica as duas tabelas juntas; qualquer uma delas tendo uma entrada correspondente já basta para passar o tráfego.

Quero corrigir o caso de encaminhamento L3 com um vínculo estático — qual endereço MAC eu realmente uso?

O endereço MAC que a própria interface com IPSG habilitado verá naquele tráfego — que, em um caminho roteado, é o MAC do último dispositivo que encaminhou o quadro, não o MAC próprio do cliente de origem. Confirme com uma captura naquela interface específica em vez de supor que corresponde ao que o DHCP Snooping registrou mais a montante.

Por que o IPSG não faz absolutamente nada em uma porta específica?

Verifique se essa porta está configurada como porta confiável do DHCP Snooping. Portas confiáveis encaminham todo pacote sem qualquer comparação com a tabela de vínculo, por design — não é um bug do IPSG, é o comportamento pretendido da configuração de confiança, e é fácil esquecer que foi configurada assim meses depois.

O IPSG e um controle de acesso baseado em ACL podem ser usados na mesma interface?

Sim, e são avaliados de forma independente — o IPSG verifica IP/MAC/VLAN/interface de origem contra a tabela de vínculo, enquanto uma política de tráfego baseada em ACL corresponde aos campos que suas regras especificam. Qualquer um dos dois pode descartar um pacote que o outro teria deixado passar, o que significa que um chamado de «bloqueado» em uma interface rodando ambos os recursos precisa descartar cada um separadamente em vez de presumir que é o outro.

O IPSG protege contra um dispositivo que falsifica a combinação de IP e MAC de outra pessoa?

Esse é exatamente o seu trabalho nas interfaces de acesso — um par IP/MAC de origem falsificado que não corresponde a nada na tabela de vínculo é descartado, seja a tabela aprendida dinamicamente ou configurada estaticamente. O modo de falha coberto nesta nota é o lado do falso positivo do mesmo mecanismo: tráfego legítimo que não corresponde mais à tabela porque algo a montante mudou o MAC, não uma tentativa real de falsificação.

Limites honestos desta nota

Limites honestos desta nota

Esta nota é construída em torno da implementação de IP Source Guard do switch Huawei da série S e suas tabelas de vínculo baseadas em DHCP Snooping, além dos casos de campo por trás delas. Se sua camada de acesso for de outro fabricante, os comandos exatos mudam, mas a lógica subjacente — uma tabela de vínculo construída na borda de acesso, e uma verificação de MAC de origem que não enxerga além de um salto de roteamento — se aplica diretamente. Ela não cobre especificamente o IPv6 Source Guard, nem projetos baseados em SAVI de outras famílias de normas.

O tráfego caiu logo após habilitar o IPSG?

Diga-nos se o caminho afetado é uma porta de acesso simples ou está atrás de um salto roteado, além da saída de display dhcp snooping user-bind, e ajudaremos você a interpretá-la.

Falar com um engenheiro pelo WhatsApp →

Leituras relacionadas

Usamos cookies apenas para análises anônimas — sem anúncios, sem rastreamento entre sites.Política de privacidade