Método DSR
A maneira mais eficiente seria configurar o modo Direct Server Return corretamente no Netscaler, onde o Netscaler faz o encaminhamento baseado em MAC para o servidor syslog com o endereço VIP de destino inalterado (10.10.0.15).
O servidor syslog também precisa ter esse endereço VIP para receber pacotes encaminhados pelo Netscaler. O endereço pode ser atribuído a qualquer interface interna, como lo
ou dummy0
.
ip addr add 10.10.0.15/32 dev lo
E você tem que definir alguns sysctls na interface de entrada (aqui eu assumo eth0
) para evitar problemas com o ARP para VIP (veja 6.7. The Cure: kernels 2.6.x - arp_ignore / arp_announce ). Adicione o seguinte em /etc/sysctl.conf
e execute sysctl -p
.
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.eth0.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
Observe que é inútil definir arp_ignore
/ arp_announce
on lo
.
método DNAT
Se o Netscaler fizer o DNAT no tráfego de entrada, o servidor syslog definitivamente deve encaminhar o tráfego de retorno para o Netscaler, de modo que ele possa liberar o recurso de rastreamento de conexão. Essa é a maneira mais natural de completar a tradução de endereços.
Nesse caso, você pode querer utilizar o roteamento de política no servidor syslog. Com isso, você pode aplicar uma tabela de roteamento especial aos pacotes na condição específica, como "pacotes TCP de saída da porta 514".
Existem documentos HOWTO sobre o roteamento avançado do Linux como este. Eu recomendo que você dê uma olhada no último mini HOWTO para entender as seguintes instruções.
Primeiro, defina a tabela de roteamento especial denominada VIP
com qualquer ID em /etc/iproute2/rt_tables
:
1 VIP
Adicione uma rota padrão ao VIP (10.10.0.15) para esta VIP
table:
ip route add default via 10.10.0.15 table VIP
Adicione uma entrada ao iptables mangle
table para marcar 1
nos pacotes TCP de saída da porta 514:
iptables -t mangle -A OUTPUT -p tcp --sport 514 -j MARK --set-mark 1
Adicione uma regra para pesquisar a tabela de roteamento VIP
nos pacotes com a marca 1
:
ip rule add from all fwmark 1 table VIP
Você pode ver as regras definidas até o momento por ip rule list
. As regras são processadas em ordem crescente de valor de prioridade (0 é a precedência mais alta).
# ip rule list
0: from all lookup local
32765: from all fwmark 0x1 lookup VIP
32766: from all lookup main
32767: from all lookup default
Você pode verificar o conteúdo de cada tabela de roteamento da seguinte forma:
# ip route ls table local
# ip route ls table VIP
# ip route ls table main