Una breve introducción a la opción de socket IP_TRANSPARENT
Cuando se usa Keepalived para implementar un clúster de alta disponibilidad DNS (nsd), no se usa LVS y solo se usa Keepalived para implementar el modo maestro dual. Cuando se inicia una excavación en otro servidor, responda desde. Aparece una fuente inesperada.
;; respuesta de fuente inesperada: 192.168.0.3#53, esperado 192.168.0.51#53
192.168.0.51 no es VIP, 192.168.0.3 es la IP original de la red card
Después de capturar el paquete en el servidor, recibí el mensaje con la dirección de destino 192.168.0.51, pero la IP de origen del mensaje de respuesta cambió a 192.168.0.3. Es normal utilizar el modo TCP para iniciar una solicitud de excavación.
Después de comprender la red, descubrí que existe una opción de socket IP_TRANSPARENT para problemas similares. Consulte el manual de Linux:
En términos simples, puede usar esta opción para vincular un socket. a una dirección no local, implemente el llamado proxy transparente (TProxy, Transparent Proxy), y al implementar la deriva de IP a través de Keepalived, el VIP es una IP no local. Este texto aún es difícil de entender, incluida la pregunta de por qué. Se puede usar TCP, pero no UDP, pero sí. Consulte el artículo de PowerDNS Soporte de proxy transparente de Linux para obtener una explicación más clara.
Se descubre que IP_TRANSPARENT se puede utilizar para vincular cualquier dirección IP, incluida 8.8.8.8, para lograr la interceptación del tráfico.
Hay una opción IP_TRANSPARENT en la configuración de nsd.conf.
Después de configurar el reinicio de nsd, los problemas descritos anteriormente no ocurrirán cuando se vuelva a excavar. Cabe señalar que se usa IP_TRANSPARENT. para monitorear la lista de IP se debe especificar la lista VIP; de lo contrario, seguirán ocurriendo problemas.