ipvsadm lista alguns hosts apenas por IP, por nome

2

Usamos o keepalived para gerenciar nosso balanceador de carga do Linux Virtual Server (LVS). Os VIPs LVS são configurados para usar um FWMARK conforme configurado no iptables.

 virtual_server fwmark 300000 {
    delay_loop 10
    lb_algo wrr
    lb_kind NAT
    persistence_timeout 180
    protocol TCP

    real_server 10.10.35.31 {
        weight 24
        MISC_CHECK {
            misc_path "/usr/local/sbin/check_php_wrapper.sh 10.10.35.31"
            misc_timeout 30
        }
    }

    real_server 10.10.35.32 {
        weight 24
        MISC_CHECK {
            misc_path "/usr/local/sbin/check_php_wrapper.sh 10.10.35.32"
            misc_timeout 30
        }
    }

    real_server 10.10.35.33 {
        weight 24
        MISC_CHECK {
            misc_path "/usr/local/sbin/check_php_wrapper.sh 10.10.35.33"
            misc_timeout 30
        }
    }

    real_server 10.10.35.34 {
        weight 24
        MISC_CHECK {
            misc_path "/usr/local/sbin/check_php_wrapper.sh 10.10.35.34"
            misc_timeout 30
        }
    }
}

link

[root@lb1 ~]# iptables -L -n -v -t mangle
Chain PREROUTING (policy ACCEPT 182G packets, 114T bytes)
 190M  167G MARK       tcp  --  *      *       0.0.0.0/0            w1.x1.y1.4       multiport dports 80,443 MARK set 0x493e0 
  62M   58G MARK       tcp  --  *      *       0.0.0.0/0            w1.x1.y2.4       multiport dports 80,443 MARK set 0x493e0 


[root@lb1 ~]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
FWM  300000 wrr persistent 180
  -> 10.10.35.31:0                Masq    24     1          0         
  -> dis2.domain.com:0                Masq    24     3          231       
  -> 10.10.35.33:0                Masq    24     0          208       
  -> 10.10.35.34:0                Masq    24     0          0 

No momento em que os servidores reais foram configurados, havia um dns configurado incorretamente para alguns hosts na rede 10.10.35.0/24. Posteriormente, nós consertamos o DNS. No entanto, os hosts continuam a aparecer apenas como seus números IP (10.10.35.31,10.10.35.33,10.10.35.34) acima.

[root @ lb1 ~] # host 10.10.35.31 31.35.10.10.in-addr.arpa ponteiro de nome de domínio dis1.domain.com.

OS é o CentOS 6.3. Ipvsadm é ipvsadm-1.25-10.el6.x86_64. O kernel é kernel-2.6.32-71.el6.x86_64. Keepalived é keepalived-1.2.7-1.el6.x86_64.

Como podemos fazer com que o ipvsadm -L liste todos os servidores reais por seus nomes de host apropriados?

    
por dmourati 29.11.2012 / 19:47

1 resposta

1

Parece que você tem um problema com a resolução de nomes em sua máquina.

ipvsadm usa gethostbyaddr() toda vez que exibe a lista, então permite que sua libc capture o nome dinamicamente (cadeia de chamadas: print_conn - > addrport_to_anyname - > addr_to_anyname - > addr_to_host - > gethostbyaddr ).

Pode ser necessário limpar seus caches (reiniciar nscd , etc.) ou corrigir seu DNS.

    
por 06.12.2012 / 17:50