NSX Load Balancer X-Forwarded-For

(Visibilidade é tudo)

O VMWare NSX é uma plataforma de virtualização de rede, e uma das funcionalidades que podemos ter com o NSX é o Load Balancer.

Assim como outros balanceadores, o NSX pode trabalhar nos modos One Armed ou Inline.

Quando trabalhamos no modo One Armed, o NSX Edge (onde está a funcionalidade de balanceamento de carga) faz source/destinatio NAT. Ou seja, o IP do cliente é mascarado, sendo o IP do balanceador enviado para o servidor.

NSX Load Balancer

Neste caso acabamos perdendo visibilidade, já que no servidor os logs mostrarão todas as conexões com vindas do balanceador. E este é uma situação comum para todos os balanceadores.

X-Forwarded-For

Uma forma de contornar este problema, pelo menos quando estamos balanceando HTTP/HTTPS, é utilizarmos o XFF – X-Forwarded-For.

O XFF é um cabeçalho HTTP, comumente utilizado para a identificação do endereço IP de origem de clientes que se conectam a servidores web por meio de um balanceador ou servidor proxy.

Configurando XFF no NSX

A configuração do X-Forwarded-For no NSX resume-se a um checkbox.

Para ativar esta função basta selecionar o Edge onde deseja fazer a configuração, clicar na aba Manager > Load Balancer, e então, no menu lateral esquerdo clicar em Application Profile.

Selecione o Application Profile desejado e em seguida clique em editar (icone lápis).

NSX App Profile

No Application Profile marque a opção Insert X-Forwarded-For HTTP Header, e Ok.

NSX XFF

Prontinho. Com esta opção o balanceador passa a inserir o cabeçalho X-Forwarded-For, onde temos o IP do usuário.

XFF no servidor

Além de configurar o balanceador, a configuração de log do servidor precisa estar “preparada” para mostrar o IP do usuário final.

No caso do Apache devemos mudar a configuração no arquivo httpd.conf, conforme exemplo abaixo.

Remover a configuração padrão:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
CustomLog log/acces_log combined

Adicionar configuração para mostrar o XFF:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy
SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded
CustomLog "logs/access_log" combined env=!forwarded
CustomLog "logs/access_log" proxy env=forwarded

Com esta mudança podemos olhar os logs no servidor web e confirmar que o IP do usuário está sendo enviado.

Note o IP 10.123.45.20, da máquina do usuário que está fazendo o acesso. Também temos “acesso” do IP 10.123.45.164 (balanceador), pois o balanceador acessa o servidor para ver o status do serviço.

Logs Acesso Servidor Web

Estatísticas no Load Balancer (Bônus Track)

Podemos ver as estatísticas de utilização do Load Balancer via linha de comando.

BrainLB01-0> show service loadbalancer monitor
-----------------------------------------------------------------------
Loadbalancer Health Check Statistics:

MONITOR PROVIDER POOL MEMBER HEALTH STATUS
built-in MyWebPool LABCENTOS01_10.123.45.141 default_http_monitor:L7OK
built-in MyWebPool LABCENTOS02_10.123.45.142 default_http_monitor:L7OK
built-in MyWebPool LABCENTOS03_10.123.45.144 default_http_monitor:L7OK
BrainLB01-0> show service loadbalancer
-----------------------------------------------------------------------
Loadbalancer Services Status:

L7 Loadbalancer : running
-----------------------------------------------------------------------
L7 Loadbalancer Statistics:
STATUS PID   MAX_MEM_MB MAX_SOCK MAX_CONN MAX_PIPE CUR_CONN CONN_RATE CONN_RATE_LIMIT MAX_CONN_RATE
running 5517 0          2082     1024     0        0        0         0               49
-----------------------------------------------------------------------
L4 Loadbalancer Statistics:
MAX_CONN ACT_CONN INACT_CONN TOTAL_CONN
0 0 0 0

Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn

BrainLB01-0> show service loadbalancer monitor
-----------------------------------------------------------------------
Loadbalancer Health Check Statistics:

MONITOR PROVIDER POOL MEMBER HEALTH STATUS
built-in MyWebPool LABCENTOS01_10.123.45.141 default_http_monitor:L7OK
built-in MyWebPool LABCENTOS02_10.123.45.142 default_http_monitor:L7OK
built-in MyWebPool LABCENTOS03_10.123.45.144 default_http_monitor:L7OK
BrainLB01-0> show service loadbalancer virtual
-----------------------------------------------------------------------
Loadbalancer VirtualServer Statistics:

VIRTUAL VSHTTP01
| ADDRESS [10.123.45.164]:80
| SESSION (cur, max, total) = (0, 191, 7227)
| RATE (cur, max, limit) = (0, 49, 0)
| BYTES in = (78424078), out = (396960457)
+->POOL MyWebPool
| LB METHOD round-robin
| LB PROTOCOL L7
| Transparent disabled
| SESSION (cur, max, total) = (0, 62, 963499)
| BYTES in = (78424078), out = (396958836)
+->POOL MEMBER: MyWebPool/LABCENTOS01_10.123.45.141, STATUS: UP
| | HEALTH MONITOR = BUILT-IN, default_http_monitor:L7OK
| | | LAST STATE CHANGE: 2018-08-03 14:08:58
| | SESSION (cur, max, total) = (0, 21, 321168)
| | BYTES in = (26142313), out = (132319866)
+->POOL MEMBER: MyWebPool/LABCENTOS02_10.123.45.142, STATUS: UP
| | HEALTH MONITOR = BUILT-IN, default_http_monitor:L7OK
| | | LAST STATE CHANGE: 2018-08-03 14:08:58
| | SESSION (cur, max, total) = (0, 25, 321166)
| | BYTES in = (26141859), out = (132640424)
+->POOL MEMBER: MyWebPool/LABCENTOS03_10.123.45.144, STATUS: UP
| | HEALTH MONITOR = BUILT-IN, default_http_monitor:L7OK
| | | LAST STATE CHANGE: 2018-08-03 14:08:58
| | SESSION (cur, max, total) = (0, 22, 321165)
| | BYTES in = (26139906), out = (131998546)
BrainLB01-0>

Mais informações sobre XFF aqui, e guia para troubleshooting neste link.

Até a próxima.

Leave a Reply

About Us

Luckily friends do ashamed to do suppose. Tried meant mr smile so. Exquisite behaviour as to middleton perfectly. Chicken no wishing waiting am. Say concerns dwelling graceful.

Services

Most Recent Posts

  • All Post
  • Branding
  • Certificação
  • Cisco
  • Cloud
  • Configuração
  • Configuração Básica
  • Development
  • Geral
  • Informação
  • Leadership
  • Linux
  • Management
  • Microsoft
  • Network
  • Security
  • UC
  • Virtualização
  • Wireless

Company Info

She wholly fat who window extent either formal. Removing welcomed.

Your Business Potential with Our Proven Strategies

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Company

About Us

Contact Us

Products

Services

Blog

Features

Analytics

Engagement

Builder

Publisher

Help

Privacy Policy

Terms

Conditions

Product

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
You have been successfully Subscribed! Ops! Something went wrong, please try again.
© 2023 Created with Royal Elementor Addons