Resumo

  • MSDP espalha anúncios (S,G) entre RPs. Como cada anúncio pode gerar cache e, diante de interesse local, um join, crescimento sem limites vira risco de estado e negação de serviço.
  • Filtrar ou limitar é uma decisão legítima de autoridade local. Um SA aceito apenas passou pela política; um SA descartado pode representar tanto abuso quanto serviço real. O resultado precisa ser ligado à demanda e ao plano de dados.

A mesma linha protegia e cortava

Um limite de dez mil entradas é atingido. O roteador recusa o próximo Source-Active, continua responsivo e evita uma expansão de memória. Do ponto de vista de contenção, o controle funcionou. Se a entrada recusada correspondia a uma fonte legítima aguardada por receptores, o mesmo sucesso produziu uma falha de descoberta.

O RFC 3618 não esconde esse conflito. Publicado em outubro de 2003 como protocolo Experimental, MSDP conecta domínios IPv4 PIM-SM e distribui informações sobre fontes ativas. O RP que conhece um novo emissor cria um SA com endereço da fonte, grupo e RP. Os pares difundem a mensagem; um domínio interessado pode então construir um join (S,G).

Cada anúncio tem potencial de gerar trabalho: validação peer-RPF, política, cache, retransmissão e, mais tarde, estado PIM. O protocolo recomenda listas de acesso, número máximo de entradas SA-state e limite de ritmo para novas entradas. RFC 4609 e RFC 6952 reforçam o problema de pressão e explosão de estado.

O objetivo do limite é claro. O significado de um descarte continua aberto.

Peer-RPF não era um filtro de verdade

Antes da política de conteúdo, o peer-RPF decide se o SA chegou do vizinho escolhido em direção ao RP originador. A MRIB, BGP, IGP ou uma regra estática podem participar da seleção. Uma cópia pelo vizinho errado é descartada para controlar a inundação.

Essa decisão evita loops, não investiga a fonte. Um anúncio pode vir pelo caminho correto e descrever estado obsoleto, não autorizado ou incorreto. Pode vir pelo caminho considerado errado e ainda se referir a uma fonte real. O contador de falhas mostra conflito com a topologia local; não classifica intenção ou veracidade.

Depois dele vêm filtros de source e group. Esses filtros representam política administrativa: quais espaços um domínio aceita divulgar ou consumir. O RFC também proíbe atravessar uma fronteira de escopo administrativo para o grupo. Aqui a decisão se aproxima da autoridade, mas ainda não observa entrega.

Para ser auditável, cada rejeição precisa registrar etapa e motivo: peer-RPF, escopo, lista, teto global, limite por par, ritmo ou erro de formato. Somar tudo em dropped SA torna impossível saber se o sistema conteve um ataque, aplicou uma fronteira ou perdeu um serviço.

O cache multiplicava o custo ao longo do tempo

MSDP exige cache de SA. A memória acelera a entrada de novos receptores, ajuda diagnóstico e reduz tempestades de retransmissão. Os RPs originadores anunciam fontes periodicamente, em intervalos de 60 segundos, e uma conexão restabelecida deve receber os SA guardados.

Uma entrada, portanto, não custa apenas os bytes do primeiro pacote. Ela ocupa estado, recebe renovações, pode ser reproduzida em reconexões e pode desencadear joins futuros. Muitas combinações (S,G) tornam a pressão cumulativa. Um atacante, uma configuração ampla ou uma aplicação legítima de alta cardinalidade podem produzir sintomas semelhantes.

O teto absoluto protege memória, mas cria injustiça temporal: quem chegou primeiro ocupa o espaço; fontes posteriores são recusadas, independentemente de valor. Um rate limit protege contra rajadas, mas pode transformar recuperação após interrupção em perda sistemática. Um filtro por prefixo reduz superfície, mas concentra autoridade em quem mantém a lista.

A política precisa dizer qual recurso está sendo protegido e qual serviço pode ser sacrificado. Sem essa declaração, ajustar o número até o alarme sumir é apenas deslocar a falha.

Flood-and-join dividia oferta e procura

MSDP distribui conhecimento de fontes sem anunciar globalmente os membros receptores. Ao receber um SA, o RP local verifica se existe interesse (*,G) com saída não vazia. Se houver, desencadeia o join para a fonte. Essa separação é útil para privacidade e escala.

Ela também fornece um sinal essencial para priorização. Um SA sem demanda local talvez possa permanecer apenas no cache ou ser descartado sob pressão, dependendo da política. Um SA para grupo com receptores ativos tem impacto imediato. Mas interesse não equivale a autorização, e alta demanda não torna a fonte legítima.

A decisão madura combina classe de fonte, grupo, origem RP, demanda local, estado consumido, taxa e criticidade do serviço. O protocolo não impõe essa função de prioridade. Ela pertence ao domínio que paga pelo risco.

Após o join, ainda faltam a árvore PIM, a interface RPF de dados, os pacotes na folha e o veredito da aplicação. Restaurar espaço no cache não restaura automaticamente nenhum desses estágios.

Mesh e Anycast redistribuíam a pressão

Mesh-groups reduzem retransmissões internas porque cada originador deveria enviar a todos os membros. O ganho depende de uma malha completa. Uma sessão ausente pode fazer um membro desconhecer SA que outros mantêm, sem que a supressão gere um erro explícito.

Anycast RP usa MSDP para compartilhar fontes entre vários RPs. Isso distribui decapsulação e melhora redundância, mas replica a necessidade de estado. A mesma política e os mesmos limites podem ser aplicados de modo diferente em instâncias distintas, produzindo caches divergentes atrás de um endereço anycast uniforme.

O acompanhamento de capacidade deve ser por instância e por par, não apenas agregado no serviço. Uma troca de RP pode levar receptores a uma instância cujo teto já está ocupado. A fachada continua acessível enquanto a visão de fontes muda.

RFC 3446 exige que o SA carregue um endereço individual do RP, e não o endereço anycast, para que peer-RPF funcione. Essa procedência individual deve ser preservada nos relatórios de uso de estado.

Autenticação de sessão não aliviava o orçamento

RFC 3618 requer suporte a TCP MD5 para proteger mensagens de controle. A conexão autenticada dificulta a injeção por quem não possui a chave configurada. Ela não reduz a quantidade de combinações legítimas que um par autorizado pode anunciar, nem corrige uma política ampla.

Uma relação confiável pode ser a maior fonte de estado, justamente porque recebe permissão para falar. Por isso, autenticação e autorização precisam de métricas separadas. O segredo responde quem manteve a sessão; o filtro responde quais anúncios o domínio aceita; o limite responde quanto recurso será gasto.

RFC 8916 modela configuração de peer, autenticação, filtros, sa-limit, default peer e dados operacionais. A superfície de gestão permite automatizar decisões, mas também pode alterá-las em grande escala. Mudanças devem produzir diferença revisável, janela, aprovador e resultado observado.

A recuperação podia parecer ataque

Depois de uma interrupção, vários pares podem restabelecer conexão e reproduzir SA em cache. Um rate limit dimensionado para fluxo normal pode descartar justamente a recomposição necessária. Aumentá-lo sem controle pode expor o roteador ao pico que a proteção pretendia evitar.

O teste de recuperação deve medir quantas entradas reaparecem, em que ordem, quanto tempo os receptores levam para reconstruir serviço e qual parte é cache antigo. A política pode reservar capacidade para fontes críticas, escalonar pares ou exigir reconciliação por época. Nada disso deve ser confundido com uma garantia fornecida pelo RFC.

O risco de segunda ordem é a oscilação: rejeições causam reconexões ou renovações, que geram mais pressão. O risco de terceira ordem é institucional: equipes de segurança celebram quedas, enquanto equipes de serviço veem fontes ausentes, e nenhuma compartilha o motivo por entrada.

O limite precisava de um dono

Heng Lu insiste que a decisão futura permaneça local e que símbolos não substituam realidade. Um valor de sa-limit é exatamente esse tipo de decisão. O padrão oferece o mecanismo; a organização escolhe quanto estado aceita e qual perda tolera.

O dono do limite precisa reunir rede, segurança, capacidade e serviço. Deve conhecer a distribuição normal de (S,G), o comportamento de recuperação, os grupos críticos, os sinais de abuso e o custo de memória. Deve também possuir um rollback que não exija desabilitar toda proteção.

O RFC 3618 tornou os anúncios acionáveis e, por isso, recomendou contenção. O filtro pode salvar o roteador. Para saber se também cortou o serviço certo, é preciso um recibo que continue depois do descarte até o receptor.

Sources