[BPF] Fwd: Alternativas ao A10 / Cisco / Juniper para CGNAT BULK

Alexandre Giovaneli alexandre em giovaneli.net
Quarta Maio 15 11:48:43 -03 2019


Bom dia

Este é minha primeira participação no grupo.

Temos atualmente alguns clientes usando "CGNAT BULK" (peço se eu tiver
errado quanto ao uso me corrigem na config abaixo) usando interfaces MS-MIC
, e temos ótimos resultados de troughput e eficiência de processamento
inclusive , porem para que ela rode bem foi necessário ao invés de usar o
recurso NAT direto nas interfaces de upstream que o JunOS oferece, foi
criado uma PBR e  a placa de MULTI-SERVICO ficou como NEXT-HOPE-SERVICE com
isso o processamento da placa para 6gbps ficou por volta de 38%. E o custo
dela é 3x menor que a solução lider de mercado para o mesmo troughput que
em tese pode chegar a 10gb (in/out) com a MS-MIC. Umas das coisas que não
gosto de usar em Juniper são portas fixas para eliminar a necessidade  de
log, creio que isso possar gerar alguns vícios em cima de um ip de saida,
prefixo deixar totalmente dinamico.

Tem alguns clientes grande usando esta solução de CGNAT da Juniper  no
Brasil, porem usando placas MS-DPC que tem 128gb de ram ao invés dos 16gb
de ram da MS-MIC que estamos usando para ISP atualmente,

Segue abaixo exemplo em produção:

services-options {
    fragment-limit 10;
    reassembly-timeout 3;
}
unit 0 {
    family inet;
}
unit 1 {
    family inet;
    service-domain inside;
}
unit 2 {
    family inet;
    service-domain outside;
}


service-set CG-NAT {
    nat-rules CG-NAT;
    next-hop-service {
        inside-service-interface ms-0/0/0.1;
        outside-service-interface ms-0/0/0.2;
    }
}
ids {
    rule nat_max_flows {
        match-direction input;
        term t10 {
            from {
                applications all_udp;
            }
            then {
                session-limit {
                    by-source {
                        maximum 400;
                    }
                }
            }
        }
        term t20 {
            then {
                session-limit {
                    by-source {
                        maximum 600;
                    }
                }
            }
        }
    }
}
nat {
    pool IPS-PUBLICOS {
        address-range low x.x.x.x high x.x.x.255;
         port {
            automatic {
                random-allocation;
            }
            secured-port-block-allocation block-size 1024
max-blocks-per-address 4 active-block-timeout 3600;
        }
        address-allocation round-robin;
    }
    rule CG-NAT {
        match-direction input;
        term 1 {
            from {
                source-address {
                    100.64.128.0/19;
                    100.64.160.0/19;
                }
                destination-address {
                    any-ipv4;
                }
            }
            then {
                translated {
                    source-pool IPS-PUBLICOS;
                    translation-type {
                        napt-44;
                    }
                    address-pooling paired;
                }
            }
        }
    }
}

Segue abaixo um outro cliente recente usando CGNAT da juniper, o uso de cpu
também pode variar com o tipo de banda entregue
Total 32% de media de cpu para 2.8gbps, esta placa possui 2 cores para
controle e 6 para forwarding total 8 cores.

Importante salientar que temos soluções de até 1.3TB de CGNAT usando a
linha SRX da Juniper, mas não temos experiencia nesta linha para CGNAT para
dialogar tecnicamente sobre os recursos, estarei na semana que vem com a
engenharia para trocar uma ideia a respeito disto.


Um abraço
Alexadre Giovaneli

Em ter, 14 de mai de 2019 às 17:48, Douglas Fischer <
fischerdouglas em gmail.com> escreveu:

>
> Falando de implementação de CGNAT, imagino que os colegas saibam da
> existência dos dois principais tipos de CGNAT.
> - Determinístico(Predefined)
>   Quantidade de portas por cliente previmanete definida, e sempre igual.
>   Que não precisa de log de NAT por ser possível saber o endereço de
> origem por engenharia reversa.
> - Bulk Port Allocation
>   Quantidade de portas variável, alocadas "pouco-a-pouco".
>   Precisa de Log, mas não de cada conexão como é o caso so
> SRC-NAT/Masquerade generico.
>
> No caso do CG-NAT determinítico, já existem quase que exaustivas
> informações sobre implementações.
>   Um exemplo para mikotik:
>
> https://wiki.mikrotik.com/wiki/Manual:IP/Firewall/NAT#Carrier-Grade_NAT_.28CGNAT.29_or_NAT444
>   Um ótimo exemplo para linux(do amigo Marcelo Gondim)
>   https://wiki.brasilpeeringforum.org/w/CGNAT_na_pratica
>
>
> O foco dessa thread é fazer um Brainstorm para encontrarmos alterativas
>   (preferencialmente OpenSource) para CGNAT BPA - BULK PORT ALLOCATION.
>
>
> Eu sei de algumas possibilidades, mas nunca implementei nenhuma delas:
>
> https://nfware.com/virtual-cgnat
>
>
> https://wiki.opnfv.org/display/SAM/CGNAPT+-+Carrier+Grade+Network+Address+and+port+Translation+%28vCG-NAPT%29+VNF+approximation
>
>
> Se algum colega puder contar suas experiencias com essas duas ou outras
> ferramentas de CGNAT BULK, seria de grande valia.
>
>
> --
> Douglas Fernando Fischer
> Engº de Controle e Automação
> _______________________________________________
> bpf mailing list
> bpf em listas.brasilpeeringforum.org
> https://listas.brasilpeeringforum.org/mailman/listinfo/bpf
>


-- 


(PT) Esta mensagem pode conter informação confidencial ou privilegiada,
sendo seu sigilo protegido por lei. Se você não for o destinatário ou a
pessoa autorizada a receber esta mensagem, não pode usar, copiar ou
divulgar as informações nela contidas ou tomar qualquer ação baseada nessas
informações. Se você recebeu esta mensagem por engano, por favor, avise
imediatamente ao remetente, respondendo o e-mail e em seguida
apague-a. Agradecemos
sua cooperação.


(EN) This message may contain confidential or privileged information and
its confidentiality is protected by law. If you are not the addressed or
authorized person to receive this message, you must not use, copy, disclose
or take any action based on it or any information herein. If you have
received this message by mistake, please advise the sender immediately by
replying the e-mail and then deleting it. Thank you for your cooperation.



-- 


(PT) Esta mensagem pode conter informação confidencial ou privilegiada,
sendo seu sigilo protegido por lei. Se você não for o destinatário ou a
pessoa autorizada a receber esta mensagem, não pode usar, copiar ou
divulgar as informações nela contidas ou tomar qualquer ação baseada nessas
informações. Se você recebeu esta mensagem por engano, por favor, avise
imediatamente ao remetente, respondendo o e-mail e em seguida
apague-a. Agradecemos
sua cooperação.


(EN) This message may contain confidential or privileged information and
its confidentiality is protected by law. If you are not the addressed or
authorized person to receive this message, you must not use, copy, disclose
or take any action based on it or any information herein. If you have
received this message by mistake, please advise the sender immediately by
replying the e-mail and then deleting it. Thank you for your cooperation.


More information about the bpf mailing list