Thêm IPv6 riêng vào phòng thí nghiệm OpenVPN, từng điểm kiểm tra một
Giữ vận chuyển bên ngoài trên IPv4 và mở rộng kế hoạch bên trong. Năm điểm kiểm tra: tiền tố, trình trợ giúp, đẩy tuyến, chuyển tiếp và kiểm thử từ phía máy khách.
Bạn đã có một máy khách kết nối qua IPv4 và đến được khối lượng công việc IPv4 riêng phía sau máy chủ. Mục tiêu là đến khối lượng công việc IPv6 riêng qua cùng đường hầm mà không đụng đến vận chuyển bên ngoài. Thứ tự đó quan trọng: đường đi bên ngoài vẫn là IPv4, và chỉ kế hoạch địa chỉ bên trong, tuyến của máy khách và đường quay lại từ máy chủ đến LAN thay đổi. Năm điểm kiểm tra, mỗi điểm có một thứ cụ thể để xem trước khi đi tiếp.
Điểm kiểm tra một: kết nối vốn đã hoạt động
Kết nối máy khách và xác nhận đường IPv4 trước khi thêm bất cứ thứ gì. Một đường hầm hoạt động cho bạn đường cơ sở để tách lỗi IPv6 mới khỏi sự cố kết nối cũ. Nó cũng cho biết bạn đang sửa phiên bản máy chủ nào trên thực tế.
Ghi lại nhóm địa chỉ, cấu trúc liên kết và các tuyến được đẩy mà bạn đã dựa vào. Công việc IPv6 mở rộng cấu hình đó; không thay thế nó.
Điểm kiểm tra hai: chọn các tiền tố bên trong
Chọn một ULA /48 cho trang và cắt ra hai /64: một cho máy khách đường hầm, một cho phân đoạn LAN chứa khối lượng công việc IPv6. Tạo ID toàn cầu 40 bit thay vì sao chép một tiền tố mẫu, và đối chiếu cả hai mạng con với mọi mạng mà trang đã định tuyến:
Outer transport: IPv4 OpenVPN UDP
IPv4 pool: 10.90.0.0/24
IPv6 VPN pool: fd73:93bc:b6e9:77::/64
IPv6 LAN: fd73:93bc:b6e9:60::/64
Server LAN IPv6: fd73:93bc:b6e9:60::1Hai /64 độc lập ngăn nhóm máy khách bị cắt ra khỏi phân đoạn LAN, điều này quan trọng về sau khi bạn viết tuyến quay lại. Các giá trị trên là một ví dụ đã xử lý, không phải tiền tố để dùng lại.
Điểm kiểm tra ba: thêm trình trợ giúp và việc đẩy tuyến
Đọc cấu hình máy chủ hiện tại trước khi thêm bất cứ thứ gì. Bản sao thứ hai của một chỉ thị đã có không hợp nhất với bản đầu, và lỗi phát sinh nêu tên chỉ thị chứ không phải IPv6. Với trình trợ giúp IPv4 sẵn có, hai dòng mở rộng nó. Mỗi dòng trả lời một câu hỏi khác nhau:
server-ipv6 fd73:93bc:b6e9:77::/64
push "route-ipv6 fd73:93bc:b6e9:60::/64"Dòng đầu là trình trợ giúp tiện lợi thiết lập giao diện và nhóm máy khách. Dòng thứ hai nêu đích LAN mà máy khách cần đến. Gán cho máy khách một địa chỉ IPv6 không nói cho nó biết có những mạng nào sau máy chủ, nên cần cả hai dòng.
Trình trợ giúp không cùng tồn tại với nhóm IPv6 tĩnh hay với nopool. Nếu việc triển khai cố ý cấp địa chỉ theo kiểu tĩnh, hãy giữ chính sách đó và thiết kế tương đương IPv6 một cách rõ ràng thay vì xóa chính sách để vừa với một ví dụ.
Điểm kiểm tra bốn: chuyển tiếp và tuyến trả lời
Bật chuyển tiếp IPv6 trên máy chủ thông qua chủ sở hữu cấu hình của chính hệ thống, không phải bằng một lần ghi lúc chạy mà bạn sẽ quên. Dạng lúc chạy hữu ích cho một lần thử nhanh. Cấu hình lâu dài thuộc về một tệp drop-in mà chủ sở hữu mạng của bản phân phối đọc:
sysctl -w net.ipv6.conf.all.forwarding=1Chuyển tiếp thay đổi hành vi IPv6 của máy chủ vượt ra ngoài việc định tuyến gói tin. Máy đã chấp nhận thông báo router với tư cách máy khách sẽ ngừng làm vậy theo cùng cách khi bắt đầu chuyển tiếp. Vì thế máy có đường lên IPv6 phụ thuộc vào RA cần một kế hoạch rõ ràng cho đường lên đó.
Sau đó cấp cho LAN một tuyến quay lại nhóm đường hầm. Cổng IPv6 của khối lượng công việc là router LAN, không phải máy chủ VPN, nên tuyến nằm trên router đó và trỏ tới địa chỉ LAN của máy chủ:
ip -6 route add fd73:93bc:b6e9:77::/64 via fd73:93bc:b6e9:60::1Giữ các loại ICMPv6 mà liên kết cần, kể cả phản hồi MTU đường đi. Một quy tắc tường lửa IPv4 không hàm ý quy tắc IPv6, và việc chặn toàn bộ IPv6 phá vỡ việc phát hiện láng giềng theo cách trông giống lỗi định tuyến.
Điểm kiểm tra năm: đọc máy khách, rồi kiểm thử
Kết nối lại máy khách và đọc các địa chỉ nó thực sự nhận được thay vì suy ra từ địa chỉ trợ giúp của máy chủ. Danh sách giao diện hiển thị cả hai họ trên cùng một thiết bị:
ip -6 addr show tun0
ip -6 route get fd73:93bc:b6e9:60::20Một tuyến chọn đường hầm chứng minh máy khách biết gửi gói đi đâu. Nó không chứng minh máy chủ chuyển tiếp gói, router LAN có tuyến quay lại, hay ứng dụng được phép trả lời.
Kiểm thử chính ứng dụng trên từng họ lần lượt, rồi lặp lại sau khi kết nối lại và sau khi khởi động lại máy. Một tuyến hay sysctl chỉ tồn tại đến lần khởi động lại là kiểm thử, không phải thiết kế.
Chỉ công bố bản ghi AAAA khi đường IPv6 trả lời từ đầu đến cuối. DNS được hỏi qua IPv4 vẫn có thể trả về địa chỉ IPv6, nên một cái tên phân giải được không phải bằng chứng có thứ gì đang lắng nghe. Hướng dẫn RFC 4193 về ULA bao gồm việc tạo ID toàn cầu khiến các tiền tố này thuộc về bạn chứ không phải bản sao.