Прозрачный прокси для трафика IPv6 под Linux - PullRequest
9 голосов
/ 09 марта 2009

При обслуживании сетей часто целесообразно использовать прозрачный прокси. Под прозрачным прокси я подразумеваю прокси, который «захватывает» исходящие соединения и запускает их через локальную службу. В частности, я запускаю брандмауэр linux с настроенным squid, так что все соединения tcp / ip, направленные на порт 80, проксируются squid.

Это достигается с помощью таблицы nat iptables с использованием IPv4.

Но iptables для IPv6 не имеет таблицы nat, поэтому я не могу использовать ту же реализацию. Какую методику я могу использовать для прозрачного прокси-трафика для соединений IPv6?

Ответы [ 6 ]

8 голосов
/ 09 сентября 2010

Реальный способ сделать это с помощью правила TPROXY в iptables, документация доступна здесь:

Это должно поддерживаться Squid (> = версия 3.2). Использование --enable-linux-netfilter и правила iptables -t mangle -j TPROXY.

2 голосов
/ 25 июня 2009

Вот реализация:

http://www.suse.de/~krahmer/ip6nat/

2 голосов
/ 25 марта 2009

Вы не можете. Цитирование из squid-cache.org :

NAT просто не существует в IPv6. От Дизайн.

Учитывая, что прозрачность / перехват на самом деле особенность, приобретенная тайно крутить NAT-маршруты внутри и обратно на себя. Это довольно логично, что протокол без NAT не может сделать прозрачность и перехват таким образом.

2 голосов
/ 09 марта 2009

iptables имеет цель QUEUE, которую вы можете использовать для доставки пакетов в пространство пользователя. Я не уверен, но, возможно, что-то может быть реализовано там.

После этого вы могли бы попытаться добавить что-либо в ядро ​​для перенаправления.

0 голосов
/ 25 марта 2009

Напишите свою собственную реализацию NAT в стеке IPv6.

0 голосов
/ 10 марта 2009

Еще один вид уродливого взлома:

  • ОТМЕТЬТЕ весь трафик с помощью iptables (кажется, есть цель CONNMARK для IPv6)
  • маршрутизирует весь отмеченный трафик на устройство Tun
  • сделать NAT пользовательского пространства в демоне, слушающем устройство tun
  • ...
...