2009-03-09 19 views
9

Khi duy trì mạng, thường là một điều cần làm để chạy proxy trong suốt. Bởi proxy trong suốt, tôi có nghĩa là một proxy mà 'hijacks' kết nối gửi đi và chạy chúng thông qua một dịch vụ địa phương. Cụ thể tôi chạy một tường lửa Linux với mực cấu hình để tất cả các kết nối tcp/ip fowarded trên cổng 80 được proxied bởi mực.Proxy trong suốt cho lưu lượng IPv6 dưới Linux

Điều này đạt được bằng cách sử dụng bảng iptables 'nat', sử dụng IPv4.

Nhưng iptables cho IPv6 không có bảng 'nat', vì vậy tôi không thể sử dụng cùng một triển khai. Kỹ thuật tôi có thể sử dụng để truyền tải proxy minh bạch cho kết nối IPv6 là gì?

Trả lời

2

iptables có mục tiêu QUEUE, mà bạn có thể sử dụng để phân phối gói đến không gian người dùng. Tôi không chắc chắn, nhưng có lẽ một cái gì đó có thể được thực hiện ở đó.

Trước đó, bạn có thể bị đâm khi thêm thứ gì đó vào hạt nhân để chuyển hướng.

0

Một loại hack xấu xí:

  • MARK tất cả lưu lượng với iptables (dường như, có CONNMARK mục tiêu cho IPv6)
  • tuyến tất cả lưu lượng được đánh dấu để tun thiết bị
  • làm user-space NAT trong daemon nghe tại thiết bị tun
  • ...
+1

Điều này thực sự có thể? Bất kỳ ý tưởng nơi tôi muốn bắt đầu với một thực hiện tun với hỗ trợ ipv6? – Jerub

+0

IMHO, nó NÊN có thể. Trình điều khiển điều khiển/điều khiển Linux dường như hỗ trợ IPv6. Hãy thử trình điều khiển nhấn (ethernet ảo) thay vì điều chỉnh nếu tôi sai và IPv6 không được hỗ trợ. Tôi không biết những gì có thể được thực hiện với iptables 'QUEUE', nhưng giải pháp dựa trên tun nên hoạt động, mặc dù nó có thể không phù hợp với tải trọng cao. – darkk

2

Bạn không thể. Trích dẫn từ squid-cache.org:

NAT đơn giản không tồn tại trong IPv6. Bằng cách Thiết kế.

Cho rằng tính minh bạch/chặn thực sự là một tính năng đạt được bằng cách bí mật xoắn tuyến NAT bên ra ngoài và trở về bản thân. Khá là hợp lý rằng một giao thức không có NAT không thể làm minh bạch và chặn theo cách đó.

-1

Viết triển khai NAT của riêng bạn trong ngăn xếp IPv6.

+0

chỉ là lol – divinci

Các vấn đề liên quan