Conntrack nhận các quy tắc chuyển tiếp không chính xác cho giao thức gửi đi 41


1

Tôi đang cố gắng chuyển tiếp giao thức 41 (ipv6-in-ipv4) cho đường hầm HE thông qua WRT54G chạy Tomato 1.28. Tomato 1.28 đang chạy kernel 2.4 hoàn toàn không biết gì về giao thức 41, ngoại trừ việc nó được đặt tên là "ipv6". Có một hạt nhân 2.4 cũng có nghĩa là conntrack không thể bị vô hiệu hóa: không có quy tắc iptables "thô".

Tôi có thể thiết lập các quy tắc để các gói đến là DNAT-ed đến máy chủ nội bộ chính xác. Nếu máy chủ từ xa gửi một cái gì đó qua đường hầm trước, mọi thứ đều hoạt động tốt. Các gói có thể chảy qua đường hầm theo cả hai hướng với NATing thích hợp và tôi nhận được một /proc/net/ip_conntrack mục như thế này:

unknown 41 599 src=72.52.104.74 dst=67.180.229.14 src=10.1.0.3 dst=72.52.104.74 use=1 mark=0

Mục nhập cho biết đó là giao thức không xác định 41, có thời gian chờ là hơn 599 giây nếu không nhận được thêm lưu lượng truy cập và có một cặp địa chỉ nguồn và đích ở phía bắt đầu (là phía WAN) và một bên khác ở phía bên nhận (đó là phía mạng LAN).

Nhưng nếu hệ thống của tôi cố gắng gửi một gói ra khỏi đường hầm trước tiên, địa chỉ nguồn sẽ không được dịch sang địa chỉ của bộ định tuyến như mong muốn và tôi nhận được một mục conntrack như thế này:

unknown 41 589 src=10.1.0.3 dst=72.52.104.74 [UNREPLIED] src=72.52.104.74 dst=10.1.0.3 use=1 mark=0

Miễn là máy của tôi tiếp tục cố gắng sử dụng đường hầm, nó sẽ giữ cho mục nhập conntrack không có thật này tồn tại và tôi có thể thấy các gói rời khỏi bộ định tuyến của mình cho modem cáp với địa chỉ nguồn bên trong vẫn được gắn vào, khiến chúng bị rơi và không bao giờ đến được họ đang đi.

Để làm cho đường hầm của tôi xuất hiện, tôi phải đưa giao diện đường hầm xuống, sử dụng công cụ ping HE để tạo ra một số lưu lượng IPv6 để đi xuống đường ống, và trong khi thời gian chờ 10 phút vẫn hoạt động đúng nhập conntrack, đưa phần cuối của đường hầm của tôi trở lại một lần nữa - và sau đó đảm bảo nó không bao giờ nhàn rỗi trong 10 phút ở một đoạn. tôi có thể làm điều đó, nhưng nó khá ngu ngốc.

Ngay bây giờ tôi có các quy tắc chuyển tiếp của mình được thiết lập như thế này:

# Send incoming ipv6-in-ipv4 packets to the correct host
iptables -t nat -A PREROUTING -p 41 -s 72.52.104.74 -j DNAT --to 10.1.0.3

# Allow those packets through the firewall
iptables -I FORWARD -p 41 -d 10.1.0.3 -j ACCEPT

# Things I have added to try and solve my problem, which didn't work:

# Remove the default masquerade-everything rule
iptables -t nat -D POSTROUTING 10
# Masquerade only protocols other than 41. Conntrack still gets its bogus entries, 
# and if I get the correct entry in it still works.
iptables -t nat -A POSTROUTING -p ! 41 -j MASQUERADE

Tôi cũng đã có lúc thử thiết lập quy tắc SNAT như thế này:

iptables -t nat -I POSTROUTING -p 41 -s 10.1.0.3 -j SNAT --to 67.180.229.14

Nhưng theo như tôi có thể nói, điều đó cũng không giúp được gì.

Vì vậy, câu hỏi của tôi là:

1. Nếu vậy, bạn đã sử dụng quy tắc tường lửa đặc biệt nào?

2) Tại sao bộ định tuyến nghĩ rằng nó không phải thực hiện dịch địa chỉ nguồn trên giao thức gửi đi 41?


WRT54G đáng kính có thể vẫn còn một số thời gian hữu dụng trong đó, tùy thuộc vào sửa đổi phần cứng cụ thể của nó, nhưng tôi sẽ từ bỏ Tomato. Mọi người khác đều có.
Michael Hampton

Bạn có thể giới thiệu một chương trình cơ sở với sự hỗ trợ tốt hơn cho IPv6 không? Hoặc thậm chí hỗ trợ đường hầm bản địa? Tôi có thể chạy OpenWRT, nhưng nó không đủ mạnh để chạy giao diện người dùng web OpenWRT, vì vậy tôi sẽ làm mọi thứ bằng tay.
interfect

Tôi chạy OpenWRT Barrier Breaker trên mọi thứ tôi có ở nhà, hiện đang số năm bộ định tuyến của các mô hình và độ tuổi khác nhau, và đã chạy đêm của nó trong một thời gian khá lâu. Tôi sẽ không coi việc thiếu giao diện người dùng web là một bất lợi đáng kể, ít nhất là sau khi bạn đã quen với các tệp cấu hình của OpenWRT.
Michael Hampton

Câu trả lời:


0

Làm thế nào về

iptables -t nat -A PREROUTING -p 41 -s 72.52.104.74 -j DNAT --to 10.1.0.3
iptables -t nat -A POSTROUTING -j MASQUERADE
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.