Có, có thể làm điều đó với giao thức Teredo. Nhưng nó yêu cầu mã sửa đổi trên cả máy khách Teredo và máy chủ Teredo.
Để giải thích lý do tại sao nó vẫn có thể được coi là cùng một giao thức một khi cả máy khách và máy chủ đã được sửa đổi, trước tiên tôi phải giải thích các thành phần khác liên quan đến giao tiếp là gì.
Cơ bản về Teredo
Bốn nút mạng quan trọng trong giao tiếp sử dụng giao thức Teredo là:
- Khách hàng của Teredo
- Máy chủ Teredo (được chọn bởi khách hàng)
- Chuyển tiếp Teredo (được chọn bởi nút IPv6 riêng)
- Nút IPv6 riêng
Cuối cùng, máy khách Teredo và nút IPv6 riêng muốn trao đổi các gói IPv6. Các máy chủ Teredo và rơle Teredo tồn tại để tạo điều kiện cho lưu lượng đó.
Máy chủ Teredo chỉ tham gia vào thiết lập kết nối ban đầu. Khi kết nối được thiết lập lưu lượng giữa máy khách Teredo và nút IPv6 gốc sẽ chuyển qua chuyển tiếp mà không cần máy chủ Teredo nhìn thấy bất kỳ lưu lượng nào.
Vì khách hàng không có ảnh hưởng đến việc lựa chọn rơle Teredo, nên mọi giải pháp yêu cầu thay đổi trên rơle sẽ không hoạt động. May mắn là không bắt buộc. Kết nối giữa máy khách và rơle nơi gửi phần lớn lưu lượng sẽ vẫn là lưu lượng Teredo hoàn toàn tiêu chuẩn.
Bởi vì máy khách và rơle vẫn giao tiếp bằng Teredo tiêu chuẩn và vì máy khách vẫn có địa chỉ IPv6 trong 2001::/32
tiền tố, điều này vẫn đủ điều kiện là Teredo.
Những thay đổi cần thiết
12 trong số các bit trong địa chỉ Teredo được khách hàng Teredo chọn ngẫu nhiên. Một sửa đổi là cần thiết ở phía khách hàng để làm cho những người không phải là ngẫu nhiên.
48 trong số các bit trong địa chỉ Teredo là địa chỉ IPv4 và số cổng UDP của máy khách Teredo mà máy chủ Teredo nhìn thấy.
Ở đây, điều rất quan trọng là 48 bit đó là địa chỉ cổng mà máy chủ nhìn thấy. Do NAT, máy khách và rơle có thể nghĩ rằng cổng UDP có địa chỉ hoàn toàn khác nhau. Nhưng những gì địa chỉ IPv4 và số máy khách và chuyển tiếp thấy không ảnh hưởng đến địa chỉ IPv6 cuối cùng.
Thông thường NAT duy nhất có liên quan được đặt gần máy khách Teredo. Nhưng nếu bạn muốn ảnh hưởng đến địa chỉ IPv6 cuối cùng, NAT có thể được đặt trên cùng một máy với máy chủ Teredo. Thậm chí có thể xây dựng NAT trực tiếp vào máy chủ Teredo nếu bạn có khuynh hướng như vậy.
Có bất kỳ thực hiện này tồn tại?
Chắc là không.
Tôi đã thực hiện trước đây phần lớn của một máy chủ Teredo làm điều này. Nhưng khách hàng sẽ chỉ được chọn địa chỉ IPv4 chứ không phải số cổng UDP. Tôi cần số cổng UDP để phân biệt khách hàng.
Một máy chủ Teredo có hỗ trợ giữ cả địa chỉ IPv4 và cổng UDP tĩnh cho một người dùng cụ thể sẽ cần một số cách nhận dạng người dùng. Có các trường trong giao thức, có khả năng có thể được sử dụng cho điều đó. Nhưng tôi không biết về bất kỳ triển khai nào với sự hỗ trợ để xác định các máy khách Teredo đối với các máy chủ Teredo.
Hơn nữa, Teredo bị một vấn đề đáng tin cậy. Vấn đề độ tin cậy này có liên quan đến một phần của giao thức Teredo, không liên quan đến bất kỳ sửa đổi nào tôi đã mô tả ở đây.
Vấn đề với Teredo
Vấn đề là làm thế nào nút IPv6 riêng chọn sử dụng rơle Teredo nào. Lý tưởng nhất là quản trị viên của mạng nơi đặt nút IPv6 riêng sẽ định cấu hình chuyển tiếp Teredo cho mạng đó (và định vị nó bên ngoài NAT nếu NAT đang được sử dụng cho IPv4).
Nhưng nhiều quản trị viên chọn không triển khai rơle Teredo. Thông thường lý do rằng Teredo rất không đáng tin cậy, họ không cần phải hỗ trợ nó (không bao giờ nhận ra rằng lý do này làm cho Teredo không đáng tin cậy là một lời tiên tri tự hoàn thành).
Điều xảy ra thay vào đó là lưu lượng truy cập từ nút IPv6 riêng sẽ được gửi qua tuyến mặc định tới nhà cung cấp ngược dòng, người này có thể gửi nó đến nhà cung cấp ngược dòng của họ và cuối cùng lưu lượng có thể kết thúc trên một chuyển tiếp công khai của bên thứ ba trên AS. quyết định công bố 2001::/32
.
Sử dụng chuyển tiếp của bên thứ ba có nghĩa là đường dẫn mạng dài hơn có nghĩa là độ trễ tăng lên. Điều đó cũng có nghĩa là không có SLA và rơle Teredo có thể không có đủ dung lượng cho lưu lượng được gửi đến nó.
Hầu hết các trường hợp mà một địa chỉ IP tĩnh được mong muốn, một số độ tin cậy cũng được mong muốn. Và vì bạn hiếm khi có quyền kiểm soát tất cả các nút từ xa mà bạn sẽ liên lạc, nên bạn cũng không có quyền kiểm soát nào mà rơle Teredo sẽ được sử dụng.
Điều này làm cho Teredo với địa chỉ IP tĩnh trở thành một sản phẩm thích hợp cho những người sẵn sàng cài đặt máy khách Teredo đã sửa đổi để có được địa chỉ IP tĩnh mà không đảm bảo về độ tin cậy.