| | CEF | |
| | Autor | Mensagem |
---|
pc_varanda
Número de Mensagens : 8 Idade : 37 Localização : São Paulo, SP Reputação : 0 Pontos : 12 Data de inscrição : 13/10/2011
| Assunto: CEF Sex Out 14, 2011 12:12 am | |
| Boa noite galera!
Recentemente implementei na empresa onde trabalho uma topologia onde existem dois routers na borda rodando HSRP na LAN e BGP na WAN. Cada link WAN chega num router, então eu configurei o BGP para ter dois caminhos como opção usando maximum path.
O CEF está configurado no padrão (per-destiny), e funciona! Mas não tão bem. Quanto uso o comando "show ip cef exact-route" para verificar, vejo que existem algumas assimetrias
Ex:
sh ip cef exact-route 192.168.0.1 192.168.1.1 - SAI PELO LINK 1 sh ip cef exact-route 192.168.0.1 192.168.1.2 - SAI PELO LINK 2 sh ip cef exact-route 192.168.0.1 192.168.1.3 - SAI PELO LINK 1 sh ip cef exact-route 192.168.0.1 192.168.1.4 - SAI PELO LINK 1 sh ip cef exact-route 192.168.0.1 192.168.1.5 - SAI PELO LINK 1 sh ip cef exact-route 192.168.0.1 192.168.1.6 - SAI PELO LINK 2 sh ip cef exact-route 192.168.0.1 192.168.1.7 - SAI PELO LINK 1 sh ip cef exact-route 192.168.0.1 192.168.1.8 - SAI PELO LINK 1
ou seja, apenas dois destinos da faixa acima saem pelo link 2, e o restante pelo link 1.
Pergunta: Existe uma maneira de melhorar esse balanceamento que o CEF faz?
Obrigado!
| |
| | | ronaldobf Specialist
Número de Mensagens : 189 Idade : 43 Localização : São Paulo-SP Reputação : 25 Pontos : 202 Data de inscrição : 16/06/2008
| Assunto: Re: CEF Sex Out 14, 2011 6:17 am | |
| Basicamente (bem high level), o CEF, quando "per destination" (padrão) é usado, ele, como o tipo já diz, se baseia no IP de destino para escolher o next hop. Se você possui duas rotas instaladas na tabela de roteamento e estiver rodando CEF, ele checa se já existe uma entrada para aquele IP de destino no cache (NOTE: baseado no IP de destino, e não na subnet). Se não há, ele observa a utilização dos links e envia para o que possui menor utilização no momento em que o pacote chegou. A partir disso, ele cria uma entrada no cache, o qual será usada para transmissões futuras para qualquer pacote destinado ao mesmo IP de destino. Passado algum tempo sem transmissão, o mesmo é retirado do cache.
Acontece que, se você tiver um servidor, por exemplo, que é acessado a todo momento pela maioria dos hosts e muito pouco tráfego de outro tipo, muito provavelmente, você observará que um dos links sempre estará com uma utilização muito superior ao outro. Isso se deve ao fato do CEF, por padrão, fazer load balancing baseado em IP de destino. Um determinado destino só passa a ser enviado para o outro next hop depois que o cache expire. Neste caso específico, e dependendo muito da diferença entre os links, você pode usar "per packet" ao invés de "per destination". Ou, talvez a solução mais viável, adicionar mais um servidor do mesmo tipo, o qual usará um IP diferente. Alguns hosts usam um determinado server e outros o outro.
Eu acredito que não é muito viável fazer load balancing em links de dados, pois sendo provedores diferentes, os dados passarão por ambientes diferentes, com latências diferentes e tratamentos diferentes. Outra preocupação seria saber como está o tráfego de inbound (de entrada para o site)... por onde eles chegam.
É muito mais viável criar políticas e fazer o que chamamos de load sharing, onde você define escopo.. determinadas subnets saem pelo circuito X. Outras pelo circuito Y. Para influenciar o tráfego de retorno, tudo depende também de seu ambiente, mas pensando em provedores diferentes, eles usam ASs diferentes... A forma ideal, já que o BGP é path count e o path é o conjunto de ASs que o mesmo passa para alcançar um determinado destino, talvez, seria criar criar um route-map e adicionar mais ASs através de "append" para as subnets que deseja que cheguem pelo outro circuito.
Enfim, desta maneira, acredito que você teria muito mais controle.
Outra forma de se fazer load sharing, em caso de sua LAN estiver diretamente conectada aos roteadores e você não tem apenas uma determinada subnet, seria da seguinte forma:
Tráfego de saída:
Imaginemos que sua subnet seja 10.1.1.0/24
Você configura as interfaces de LAN com dois HSRPs, cada qual com seu VIP.
VIP do grupo 1: 10.1.1.1 VIP do grupo 2": 10.1.1.129
HSRP group 1 ativo no router 1 e standby no router 2. HSRP group 2 ativo no router 2 e standby no router 1.
Então, defina alguns hosts com o default gateway 10.1.1.1 e outros com o default gateway 10.1.1.129
Então, cada grupo deve fazer o tracking na interface WAN, pois se ela cair, o HSRP decrementa o priority e o backup assume.
Os roteadores de borda devem rotear o tráfego direto pra fora. Dessa maneira, você estará fazendo load sharing para o tráfego de saída
Agora, como fazer load sharing para o tráfego de chegada se eu tenho apenas uma subnet sendo divulgada para fora?!?!
Tráfego de chegada:
Regra básica: Rotas mais específicas tem preferência!
Baseado nisso, podemos, simplesmente, subnetar sua subnet.
no roteador 1, cria-se a subnet 10.1.1.0/28 e a 10.1.1.0/24 No roteador 2, cria-se a subnet 10.1.1.128/28 e a 10.1.1.0/24
Teoricamente, apenas 1 subnet mais específica em um dos routers seria necessária... enfim....
Agora, é como se você tivesse duas subnets sendo divulgadas para fora.
Crie uma política que influencia o tráfego de inbound para que a subnet 10.1.1.0/28, isto é, Hosts entre 10.1.1.1 a 10.1.1.127 que venham pelo circuito 1, enquanto que a subnet 10.1.1.128/28, isto é, os hosts de 10.1.1.128 a 10.1.1.254, cheguem via o circuito 2.
Se caso um determinado link caia, esta rota mais específica deixa de ser divulgada e todo o tráfego chega pelo outro circuito sem problemas.
Note que sua subnet ainda é 10.1.1.0/24. Apenas para efeitos de roteamento, divulgamos a mais específica e a subnet verdadeira.
Sei que fugiu um pouco do tema, mas é sempre bom escrever a mais, pois fica para consulta de possíveis leitores com o mesmo tipo de problema e que pensam em alguma solução alternativa.
Abraços, | |
| | | pc_varanda
Número de Mensagens : 8 Idade : 37 Localização : São Paulo, SP Reputação : 0 Pontos : 12 Data de inscrição : 13/10/2011
| Assunto: Re: CEF Sex Out 14, 2011 2:03 pm | |
| Opa, valeu pelas considerações! Mas eis algumas observações:
Este cenário é para uma MPLS de uma mesma operadora, ou seja, apenas um AS.
Fazer loadbalance via HSRP não dá, pois eu uso uma única VLAN para passar a voz, aliás, 95% desse tráfego é RTP. Pensando nisso, eu até imaginei usar aquele parâmetro do CEF que faz o load sharing considerando as portas, o problema é que os media gateways usam uma tecnologia de compressão de RTP que faz o stream de media trafegar sempre nas portas UDP de origem 19000 e destino 19000.
O tráfego é originado por vários IPs diferentes, não há um host na rede que seja o "top talker". Nesse sentido está tudo muito bem balanceado.
Estou começando a considerar o uso de MPLS TE direto no CPE, só não sei se a operadora aceitaria. Mas seria perfeito na minha opinião.
Abs. | |
| | | ronaldobf Specialist
Número de Mensagens : 189 Idade : 43 Localização : São Paulo-SP Reputação : 25 Pontos : 202 Data de inscrição : 16/06/2008
| Assunto: Re: CEF Sex Out 14, 2011 10:39 pm | |
| Eu acredito que não existe problemas, ao menos, pela forma com que você descreveu. O load balancing está sendo feito de acordo com o esperado, ao menos, sentido outbound (sentido de saída).
Se seu tráfego for de video e voz, isto é, real time, não vejo vantagem nenhuma em fazer load balancing "per packet", pois pacotes podem chegar fora de ordem, com jitters/delay diferentes e coisas do tipo, o que representa um grande problema para esse tipo de tráfego.
Com certeza você deve aplicar políticas de QoS para garantir o tráfego de voz. Aconselho o uso de LLQ nos routers. Para tanto, deve-se chegar a um acordo com o provedor, para que os mesmos garantam que os pacotes serão entregues com a devida marcação e política aplicadas fim-a-fim.
Sobre o HSRP, mesmo que você possua apenas uma VLAN, isto é, uma subnet, pode-se fazer sim load sharing baseado nele. É o que descrevi acima, no post anterior. Também, você deve ter controle do tráfego de inbound (que vem de fora do site), para evitar roteamento assimétrico.
Talvez eu não tenha entendido sua dúvida.
Abraços,
| |
| | | Conteúdo patrocinado
| Assunto: Re: CEF | |
| |
| | | | CEF | |
|
| Permissões neste sub-fórum | Não podes responder a tópicos
| |
| |
| |