[GTER] Socorro! 3.1Mpps UDP len 34-46 matando Juniper/MX5-T-DC

Joao Carlos Peixoto Ponce jocapponce at gmail.com
Wed Dec 10 00:01:45 -02 2014


2014-12-09 18:34 GMT-02:00 Diogo Montagner <diogo.montagner at gmail.com>:

> Se a taxa de arrival to ARP para cada FPC não está violada, em teoria você
> está operando na faixa que o equipamento suporta.
>
> A proteção de DDoS do control-plane vem habilitada por padrão. Se você não
> possui nenhuma configuração em system/ddos-protection significa que ela
> está habilitada, como você pode ver pelo output que você enviou.
>
> Quando o problema está ocorrendo, o show ddos-protection violations mostra
> alguma coisa ?
>

Da ultima vez nada.
O único não zerado era IPv6 Unclassified mas também não violado o rate
configurado.


>
> Você pode estar sofrendo the TTL expired, geralmente causado por loops de
> roteamento. Se ao aplicar uma rota com discard o problema se resolve, você
> tem que investigar isto.
>

Eu não apliquei o descarte na roda padrão como recomendado pelo Rubens pois
tenho uma rota padrão apontando para GLBX.
Algumas rotas não chegam para mim pela GVT, ou demoram para chegar e então
sempre uso a GLBX como default ou CTBC se existe o prefixo.
Dessa forma não gerei descarta na 0.0.0.0/0.


> Por exemplo, tráfego vindo da Internet atraído para o seu roteador por um
> anúncio de BGP, ao chegar ao seu roteador, aquele IP não está presente na
> tabela de roteamento, então o tráfego segue pela rota default, mas ao sair
> da caixa, ele voltará pois o seu anuncio BGP atrai ele.
>

Eu teria um excesso de logs de icmp ttl expired não teria?
Ja que após 256 loops desse tipo o resultado seria um expired.
O que você está explicando faz sentido, posso estar mandando pra GLBX e
voltando pra mim.
Mas eu precisaria ter como tirar isso a limpo sem null routing na default.
Mas isso é possível eu fazer so para o teste.
Anotado.


>
> Eu posso tentar ajudar em pvt se você me enviar os outputs abaixo:
>
> # repita os comandos 5 vezes em intervalos de 10 segundos durante o
> problema
> set cli timestamp
> show chassis routing-engine | no-more
> show system processes extensive | no-more
> show pfe traffic exceptions | no-more
> show ddos-protection protocols violations | no-more
> show ddos-protection protocols | no-more
>

Combinado irei me programar para tirar o firewall e coletar essas saídas.
Muito obrigado desde ja pela ajuda,

[]s
>
> ./diogo -montagner
> JNCIE-SP 0x41A
>
> 2014-12-08 22:44 GMT+11:00 Joao Carlos Peixoto Ponce <jocapponce at gmail.com
> >:
>
> > 2014-12-08 2:25 GMT-02:00 Diogo Montagner <diogo.montagner at gmail.com>:
> >
> > > Complementando a informação do Rubens, no MX há a proteção de DDoS do
> > > control-plane.
> > >
> > Diogo,
> >
> > Como valido se está ligado?
> >
> >
> > > Entretanto, se o seu ataque estiver vindo pela porta FXP, essa proteção
> > não
> > > terá efeito, pois a FXP não é uma porta de revenue.
> > >
> > > Para conter um ataque vindo pela porta FXP, você terá que criar um
> > policer
> > > e aplicar na interface fxp0.
> > >
> > > Em um dos meus e-mails nesta thread explica o que você deve olhar caso
> o
> > > ataque de arp esteja vindo pela interface fxp0 (interruptions causando
> > high
> > > CPU).
> > >
> > > admin at BNG-960-F> show ddos-protection protocols arp
> > > Packet types: 1, Modified: 0, Received traffic: 1, Currently violated:
> 0
> > > Currently tracked flows: 0, Total detected flows: 0
> > > * = User configured value
> > >
> > > Protocol Group: ARP
> > >
> > >   Packet type: aggregate (Aggregate for all arp traffic)
> > >     Aggregate policer configuration:
> > >       Bandwidth:        20000 pps
> > >       Burst:            20000 packets
> > >       Recover time:     300 seconds
> > >       Enabled:          Yes
> > >     Flow detection configuration:
> > >       Detection mode: Automatic  Detect time:  3 seconds
> > >       Log flows:      Yes        Recover time: 60 seconds
> > >       Timeout flows:  No         Timeout time: 300 seconds
> > >       Flow aggregation level configuration:
> > >         Aggregation level   Detection mode  Control mode  Flow rate
> > >         Subscriber          Automatic       Drop          10 pps
> > >         Logical interface   Automatic       Drop          10 pps
> > >         Physical interface  Automatic       Drop          20000 pps
> > >     System-wide information:
> > >       Aggregate bandwidth is never violated
> > >       Received:  14929               Arrival rate:     0 pps
> > >       Dropped:   0                   Max arrival rate: 2 pps
> > >     Routing Engine information:
> > >       Bandwidth: 20000 pps, Burst: 20000 packets, enabled
> > >       Aggregate policer is never violated
> > >       Received:  14929               Arrival rate:     0 pps
> > >       Dropped:   0                   Max arrival rate: 4 pps
> > > Dropped by individual policers: 0
> > >     FPC slot 0 information:
> > >       Bandwidth: 100% (20000 pps), Burst: 100% (20000 packets), enabled
> > >       Aggregate policer is never violated
> > >       Received:  2793                Arrival rate:     0 pps
> > >       Dropped:   0                   Max arrival rate: 2 pps
> > > Dropped by individual policers: 0
> > > Dropped by flow suppression:    0
> > >     FPC slot 2 information:
> > >       Bandwidth: 100% (20000 pps), Burst: 100% (20000 packets), enabled
> > >       Aggregate policer is never violated
> > >       Received:  12136               Arrival rate:     0 pps
> > >       Dropped:   0                   Max arrival rate: 1 pps
> > > Dropped by individual policers: 0
> > > Dropped by flow suppression:    0
> > >
> > > admin at BNG-960-F>
> > >
> >
> > Entendi, é só isso? Se estiver enabled esta habilitado?
> > Esse counter reseta sem boot?
> > Porque no meu está dando:
> >
> > Aggregate bandwidth is never violated
> >
> >  Veja:
> >
> >  Packet type: aggregate (Aggregate for all arp traffic)
> >     Aggregate policer configuration:
> >       Bandwidth:        20000 pps
> >       Burst:            20000 packets
> >       Recover time:     300 seconds
> >       Enabled:          Yes
> >     Flow detection configuration:
> >       Detection mode: Automatic  Detect time:  3 seconds
> >       Log flows:      Yes        Recover time: 60 seconds
> >       Timeout flows:  No         Timeout time: 300 seconds
> >       Flow aggregation level configuration:
> >         Aggregation level   Detection mode  Control mode  Flow rate
> >         Subscriber          Automatic       Drop          10 pps
> >         Logical interface   Automatic       Drop          10 pps
> >         Physical interface  Automatic       Drop          20000 pps
> >     System-wide information:
> >       Aggregate bandwidth is never violated
> >       Received:  23921               Arrival rate:     0 pps
> >       Dropped:   0                   Max arrival rate: 4 pps
> >     Routing Engine information:
> >       Bandwidth: 20000 pps, Burst: 20000 packets, enabled
> >       Aggregate policer is never violated
> >       Received:  23937               Arrival rate:     0 pps
> >       Dropped:   0                   Max arrival rate: 6 pps
> > Dropped by individual policers: 0
> >     FPC slot 0 information:
> >       Bandwidth: 100% (20000 pps), Burst: 100% (20000 packets), enabled
> >       Aggregate policer is never violated
> >       Received:  8328                Arrival rate:     0 pps
> >       Dropped:   0                   Max arrival rate: 4 pps
> > Dropped by individual policers: 0
> > Dropped by flow suppression:    0
> >     FPC slot 2 information:
> >       Bandwidth: 100% (20000 pps), Burst: 100% (20000 packets), enabled
> >       Aggregate policer is never violated
> >       Received:  92134               Arrival rate:     0 pps
> >       Dropped:   0                   Max arrival rate: 3 pps
> > Dropped by individual policers: 0
> > Dropped by flow suppression:    0
> >
> > Diogo como posso olhar outros contadores de consumo de CPU?
> > Por exemplo pelo que entendi essa policy evita high-rate de arp request.
> > Mas e se houver lookup excessivo acontecendo?
> > Não sei por que haveria mas estou as cegas tentando procurar outras
> coisas.
> > Depois de aplicadas dicas dos colegas da lista e mudado a versão do JunOS
> > minhas taxas de CPU, interrupt etc normalizaram, mas o DoS volta a
> ocorrer
> > sem firewall na frente.
> > Então quero saber onde mais posso olhar.
> > Onde vejo o consumo de CPU do Trio?
> > Pois me parece que todos comandos que dou mostram CPU de system, user e
> > interrupt da CPU mesmo e não do chip Trio.
> > Onde posso ver saturação de barramento por exemplo?
> >
> > Dei um "show ddos-protection protocols" sem argumento para ver o
> restante.
> > Todos exceto IPv6 Unclassified e ARP estão zerados.
> > ARP e IPv6 Unclassified apesar de não zerados continuam apontando "never
> > violated".
> > E com counters de drop sempre zerados.
> >
> >
> >
> >
> > > ./diogo -montagner
> > > JNCIE-SP 0x41A
> > >
> > > 2014-12-08 12:22 GMT+11:00 Rubens Kuhl <rubensk at gmail.com>:
> > >
> > > > >
> > > > > Como eu disse e estou tentando descobrir não sei qual o problema,
> > mas o
> > > > > roteador perde servico na porta com mais de 600kpps com ou sem
> > > firewall.
> > > > >
> > > >
> > > > Algum tipo de policy-routing ligado ?
> > > >
> > > >
> > > > > Isso não é apenas descarte da rota padrão?
> > > > >
> > > > >
> > > > Sim, é. Mas mesmo assim necessário, mesmo que não seja o que está
> sendo
> > > > explorado nesse ataque em particular.
> > > >
> > > >
> > > > > > A rede diretamente conectada é uma parte vulnerável, porque pode
> > > > induzir
> > > > > o
> > > > > > roteador a fazer ARP para esses destinos. A que está 1 salto pra
> > > dentro
> > > > > não
> > > > > > é problema.
> > > > > >
> > > > >
> > > > > Arp request voce diz ou arp lookup?
> > > > > De qualquer forma poucos pacotes passam.
> > > > > Os que passam e fariam arp lookup ou request de qualquer forma são
> > > > poucos.
> > > > >
> > > >
> > > > Porque essa afirmação ?
> > > >
> > > > >
> > > > > Além disso o Juniper como qualquer sistema guarda cache de arp o
> que
> > > > > geraria lookup intenso mas não request.
> > > > > Mas "lookup intenso"  na taxa de 600kpps e num prefixo limitado a
> 254
> > > > > hosts, qualquer hipótese do Juniper não dar conta, Deus pai né?
> > > > > É pouca coisa demais.
> > > > >
> > > >
> > > > Os lookups nunca completam, então é possível sim saturar CPUs de
> > > tratamento
> > > > de exceção com isso. Na série M essa limitação era hard-coded, e
> talvez
> > > > você precisa habilitá-la explicitamente.
> > > >
> > > > Se fossem 254 hosts que respondem ARP e completam as adjacências, não
> > > seria
> > > > problema... mas enquanto um IP não tem adjacência completa, um pacote
> > > > destinado a ele não é roteado em hardware, vai para tratamento de
> > exceção
> > > > (que é poucos kpps, não de Mpps).
> > > >
> > > > Rubens
> > > >
> > > >
> > > > > --
> > > > > gter list    https://eng.registro.br/mailman/listinfo/gter
> > > > >
> > > > --
> > > > gter list    https://eng.registro.br/mailman/listinfo/gter
> > > >
> > > --
> > > gter list    https://eng.registro.br/mailman/listinfo/gter
> > >
> > --
> > gter list    https://eng.registro.br/mailman/listinfo/gter
> >
> --
> gter list    https://eng.registro.br/mailman/listinfo/gter
>



More information about the gter mailing list