Những gì tôi đang cố gắng làm là định tuyến lưu lượng IPv6 qua một đường hầm vpn. Bằng cách đó, tôi sẽ có thể sử dụng IPv6 trong một mạng không hỗ trợ IPv6.
Tôi có một VPS có khối IPv6 được chỉ định. Một phần của khối này tôi muốn sử dụng cho các máy khách openvpn. Phạm vi tôi có trong tâm trí là 2001:db8::111:800:0/112
(tiền tố được ẩn danh), bởi vì openvpn chỉ hỗ trợ / 64 và / 112 dưới dạng mạng con.
IPv6 thông qua đường hầm đã hoạt động, từ máy khách, tôi có thể ping máy chủ ( 2001:db8::111:800:1
) và cả giao diện trên máy chủ ( 2001:db8::111:100:100
và 2001:db8:216:3dfa:f1d4:81c0
).
Mặc dù, khi cố gắng ping google.com từ máy khách, tôi không nhận được phản hồi (hết thời gian ping). Để gỡ lỗi sự cố này, tôi đã sử dụng tcpdump để nắm bắt lưu lượng truy cập trên máy chủ và tôi có thể thấy các gói ping đi ra ngoài, nhưng không có phản hồi nào được trả lại. Thêm quy tắc nhật ký vào ip6tables cho thấy tương tự, các gói đi ra ngoài, nhưng không có gì đến.
Tôi đã sử dụng một công cụ theo dõi trực tuyến có thời gian chờ từ máy chủ của tôi. Tôi cũng đã cố gắng đặt ip trực tiếp trên giao diện, điều này dẫn đến ip ( 2001:db8::111:800:1001
) có thể truy cập được, vì vậy tôi nghĩ rằng đây là một vấn đề định tuyến.
Tôi đã kích hoạt chuyển tiếp cho ipv6 thông qua /proc/sys/net/ipv6/conf/all/forwarding
. ip6tables có chính sách cho phép cho tất cả các chuỗi.
Câu hỏi của tôi là, chính xác những gì cần thiết cho linux để chấp nhận gói đó cho một ip không được gán cho một giao diện và định tuyến nó hơn nữa? Chỉ cần một tuyến đường tồn tại dường như không đủ.
Đây là thiết lập cho khách hàng và máy chủ của tôi. Xin vui lòng cho nó biết nếu cần thêm thông tin.
Khách hàng
# ip -6 addresses
10: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qlen 100
inet6 2001:db8::111:800:1001/112 scope global
valid_lft forever preferred_lft forever
# ip -6 routes
2001:db8::111:800:0/112 dev tun0 proto kernel metric 256
2000::/3 dev tun0 metric 1024
Người phục vụ
# ip -6 address
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 2001:db8:216:3dfa:f1d4:81c0/64 scope global dynamic
valid_lft 86254sec preferred_lft 14254sec
inet6 2001:db8::111:100:100/128 scope global
valid_lft forever preferred_lft forever
12: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qlen 100
inet6 2001:db8::111:800:1/112 scope global
valid_lft forever preferred_lft forever
# ip -6 route
2001:db8::111:100:100 dev eth0 proto kernel metric 256
2001:db8::111:800:0/112 dev tun0 proto kernel metric 256
2001:db8::/64 dev eth0 proto kernel metric 256 expires 86194sec
default via fe80::230:48ff:fe94:d6c5 dev eth0 proto ra metric 1024 expires 1594sec
TRACE
mục tiêu bảng thô iptables (có thể không quá nhiều ở đây) ip neighbour
, và ip route get
. Ngoài ra, xin vui lòng xác định ai là ping google.ca
.
POSTROUTING ... MASQUERADE
trongnat
bảng. Nhưng tôi không chắc là tôi hiểu hoàn toàn. Bạn đang cố gắng tạo đường hầm lưu lượng IPv6? Nếu vậy, bạn có các cơ sở tương ứng được thiết lập? Các-p ipv6
gói được phép trong quy tắc IPv4 (!)?