Topologias Clássicas: nPath/DSR

Rafael Bianco Nacif
TechRebels
Published in
5 min readFeb 18, 2020

Syn, …, ack!!! (pa dum tss)…

Fala pessoal!! Sejam bem-vindos a mais um artigo de F5 BIG-IP aqui no TechRebels! Você pode encontrar todos os meus posts publicados por aqui neste link. Recomendo que sejam lidos na ordem, caso você tenha chegado agora.

E como sempre, fiquem ligados no TechRebels e sigam-me no Medium clicando follow lá em cima para acompanhar os próximos posts.

Em nosso último encontro, conversamos sobre a topologia two-arm. Você pode relembrar na íntegra clicando aqui. Tentei demonstrar as principais vantagens desse design e os principais pontos de atenção que você tem que ficar ligado. Hoje iremos ver a topologia que a F5 chama de nPath e que o mercado no geral conhece como DSR (Direct Server Return). Veremos o seu principal benefício e tentarei mostrar as armadilhas que ela traz para nós.

Então, como sempre, prepare seu café ou coca-cola geladinha e vamos nessa!

A topologia nPath/DSR dita que o servidor balanceado recebe o tráfego do BIG-IP e ao invés de devolver para ele a resposta, ele manda para o gateway, bypassando o BIG-IP por completo.

Epa! Perae, Rafael! Isso é assimetria de tráfego! Não pode!

Então… Você está correto. Isso literalmente é uma assimetria. Porém, é possível contruir essa topologia nos balanceadores da F5 (e em praticamente todos). A principal vantagem disso é que o BIG-IP não é o gateway do servidor (como na topologia two-arm por exemplo) e, portanto, não oneramos ele com processamento de tráfegos não balanceados.

Vamos olhar a topologia de nosso laboratório para ver isso no detalhe:

Olhando essa topologia a primeira coisa que vem na minha cabeça é SNAT. Todo mundo no mesmo barramento é sempre sinônimo de SNAT. Mas calma… Observem que o SRV-GREEN tem como rota default o RT-1. O VIP é 10.122.18.200. E o BIG-IP tem uma perna na VLAN-1598.

Muito bem. Se você pura e simplesmente subir um virtual-server sem fazer nenhuma espécie de tunning, não irá funcionar nada. Afinal, teremos a famosa assimetria de tráfego. O tráfego do cliente seria desviado para o BIG-IP. O balanceador por sua vez iria fazer um DNAT para o IP do SRV-GREEN, sem alterar o IP de origem (do cliente). O SRV-GREEN receberia o tráfego normalmente, e ao devolvê-lo, o faria para o RT-1 (uma vez que o BIG-IP não é o default gateway do servidor). Por sua vez, esse tráfego chegaria ao cliente original. Só que o cliente original espera uma resposta de IP 10.122.18.200 (IP do virtual server) e não do IP 10.122.18.128 (SRV-GREEN). Isso acontece pois, como a resposta não passou pelo BIG-IP, então não houve a oportunidade de desfazer o DNAT.

Vamos olhar essa confusão toda no primeiro vídeo de apoio desse artigo.

E como podemos fazer isso funcionar mantendo a topologia assimétrica?

São necessárias algumas alterações, tanto no BIG-IP, quanto no servidor. E é aí que na maioria das vezes o pessoal perde a vontade de utilizar essa topologia, pois é necessário customização de todos os servidores envolvidos. Vamos a uma listinha de alterações:

  1. No BIG-IP, é mandatório o uso de VS do tipo “Performance (Layer 4)”. Isso é necessário pois os checks de segurança dos VS do tipo “Standard” iriam falhar pois nunca vemos o syn-ack nessa topologia.
  2. No BIG-IP, é preciso desabilitar a tradução de portas e IPs, ou seja, efetivamente precisamos desligar o DNAT padrão. Dessa forma, o IP de destino da conexão é preservado até o servidor.
  3. Por conta do item 2, é preciso garantir que os servidores possuem um IP de loopback que é o mesmo IP do VIP em questão, uma vez que ele receberá o pacote com o IP de destino preservado.
  4. Opcionalmente — mas altamente recomendado tunnar o profile fastL4 do virtual-server de forma que ele termine as conexões da tabela mais rapidamente, principalmente se for um virtual-server bastante utilizado. Isso é recomendado pois o cliente ao ternimar a conexão envia o fin-ack para o servidor passando pelo BIG-IP, mas o ack desse fin-ack é retornado diretamente para o cliente, sem passar pelo o BIG-IP (por conta da assimetria da topologia).

O item 3 está agora representado na topologia atualizada abaixo:

Vamos ao segundo vídeo onde aplicaremos as correções necessárias para esse ambiente funcionar corretamente.

Quem diria, né? Um fluxo assimétrico funcionando perfeitamente!

Então, em resumo, é possível uma topologia nPath/DSR que por natureza é assimétrica funcionar no BIG-IP. Você precisa garantir que está utilizando o virtual-server do tipo certo, que não está fazendo as traduções de porta e IP e que o seu servidor possui uma loopback com o mesmo IP do VIP em questão. E claro, faça o ajuste de loose-close no seu profile fastL4 para evitar que a sua tabela de conexões no BIG-IP vá a óbito! =P

O que você achou da topologia nPath/DSR? Prefere ela ou as clássicas one-arm ou two-arm? Me conta aí nos comentários! Fiquem ligados nos próximos artigos!!

Ficou com alguma dúvida? Pode perguntar! Os comentários e perguntas ajudam a direcionar os próximos artigos! Não deixe de seguir o TechRebels e a mim aqui no Medium clicando no “follow” ali embaixo e também no Twitter!

/FIN=1

Sobre o autor

Rafael Bianco Nacif é analista de redes sênior. Graduado em Redes de Computadores, certificado 2xF5 Solutions Expert (Cloud/Sec), Cisco CCNP DC e RS e também AWS CSA. Iniciou a carreira na área de TI como help-desk e hoje atua em projetos de DC de alta complexidade. linkedin.com/in/rafaelbn

--

--

Rafael Bianco Nacif
TechRebels

Senior Network Analyst | Nerd Convicto | 2xF5 CSE (Cloud/Sec), AWS CSA-Associate e CCNP DC/RS