2009-03-09 21 views
9

Al mantener las redes, a menudo es una tarea conveniente ejecutar un proxy transparente. Por proxy transparente me refiero a un proxy que 'secuestra' las conexiones salientes y las ejecuta a través de un servicio local. Específicamente, ejecuto un firewall de Linux con squid configurado para que todas las conexiones tcp/ip almacenadas en el puerto 80 sean procesadas por squid.Proxy transparente para tráfico IPv6 en Linux

Esto se logra usando la tabla iptables 'nat', usando IPv4.

Pero iptables para IPv6 no tiene una tabla 'nat', por lo que no puedo usar la misma implementación. ¿Cuál es una técnica que puedo usar para proxy transparente de tráfico para conexiones IPv6?

Respuesta

2

iptables tiene un objetivo QUEUE, que puede usar para entregar paquetes al espacio de usuario. No estoy seguro, pero tal vez algo podría implementarse allí.

Pasado eso, podría intentar agregar algo al kernel para redirigir.

0

Otro tipo de feo truco:

  • MARK todo el tráfico con iptables (parece, no es objetivo CONNMARK para IPv6)
  • ruta todos marcados tráfico a tun dispositivo
  • hacer NAT espacio de usuario en el demonio que escucha en el dispositivo tun
  • ...
+1

¿Esto es realmente posible? ¿Alguna idea de dónde comenzaría con una implementación tun con soporte para IPv6? – Jerub

+0

en mi humilde opinión, DEBERÍA ser posible. El controlador tun/tap de Linux parece ser compatible con IPv6. Pruebe el controlador de toque (ethernet virtual) en lugar de tun si estoy equivocado y IPv6 no es compatible. No sé qué se puede hacer con iptables 'QUEUE', pero la solución basada en tun debería funcionar, aunque puede no ser adecuada para highload. – darkk

2

no se puede. Citando de squid-cache.org:

NAT simplemente no existe en IPv6. Por Diseño.

Dado que la transparencia/intercepción es en realidad una característica adquirida por secreto de torsión rutas NAT dentro de ida y vuelta sobre sí mismos. Es bastante lógico que un protocolo sin NAT no puede hacer la transparencia y la interceptación de esa manera.

-1

Escriba su propia implementación de NAT en la pila IPv6.

+0

eso es solo jajaja – divinci

Cuestiones relacionadas