Làm thế nào để các ứng dụng khách biết sử dụng IPv4 hoặc IPv6?


18

Làm thế nào để máy chủ / máy tính / người dùng / ứng dụng biết yêu cầu tài nguyên qua Internet với địa chỉ IPv6 so với địa chỉ IPv4?

Câu trả lời:


24

Điều đầu tiên mà khách hàng xác định là giao thức nào có sẵn. Giả sử rằng cả IPv4 và IPv6 đều khả dụng (nếu không, câu trả lời sẽ chọn giao thức nào là tầm thường;) Sau đó, nó sẽ thực hiện tra cứu DNS cho cả bản ghi A (địa chỉ IPv4) và AAAA (địa chỉ IPv6). Nếu chỉ có một loại được trả về thì nó sẽ sử dụng nó. Nếu cả hai địa chỉ IPv4 và IPv6 được trả về, hành vi mặc định phụ thuộc một chút vào phần mềm máy khách. Thông thường RFC 3484 được sử dụng.

Theo các tiêu chuẩn chính thức, nó nên thích IPv6 hơn, nhưng vì có một số máy (0,01% trở xuống) đã cấu hình sai IPv6 nên các máy khách đã trở nên thông minh hơn. Hầu hết các trình duyệt ngày nay sẽ cố gắng kết nối qua IPv6, nhưng nếu chúng không có kết nối hoạt động trong vòng 300 mili giây thì chúng sẽ cố gắng kết nối song song qua IPv4. Kết nối đầu tiên thành công sau đó được sử dụng. Điều này được bao phủ trong RFC Happy Eyeballs .

Apple đã thay đổi điều này trong Lion. Ở đó, hệ điều hành thực sự theo dõi hiệu suất của tất cả các kết nối và nếu xác định rằng kết nối IPv4 có độ trễ thấp hơn kết nối IPv6 thì nó sẽ bắt đầu thích IPv4 hơn. Nhưng nếu kết nối IPv4 trở nên chậm hơn, nó có thể chuyển về IPv6. Hãy xem chủ đề danh sách gửi thư này để thảo luận về tính năng này.

Đối với người dùng, không nên sử dụng IPv4 hoặc IPv6, miễn là nó hoạt động. IPv4 và IPv6 nên được cung cấp tốt như nhau. Các trang web nên hoạt động chính xác giống như trên IPv4 như trên IPv6, v.v.

IPv4 sẽ vẫn được sử dụng trong nhiều năm tới. Nó sẽ trở nên không sử dụng được khi các dịch vụ mới (trang web, trò chơi, v.v.) chỉ được triển khai qua IPv6 vì không còn địa chỉ IPv4 mới nào được sử dụng. Và tại một số điểm, mọi thứ hoạt động trên IPv4 cũng sẽ hoạt động trên IPv6. Tại thời điểm đó, vô hiệu hóa IPv4 sẽ tiết kiệm thời gian và tiền bạc (tại sao duy trì hai giao thức khi một giao thức là đủ?).


1
Sau khi được viết, RFC 3484 đã bị RFC 6724 lỗi thời .
Michael Hampton

Làm thế nào để xác định giao thức nào có sẵn? Tôi đã thấy hành vi ngẫu nhiên, apt-get updateví dụ, cố gắng kết nối với máy chủ ipv6, nhưng bản thân máy chủ thậm chí không có địa chỉ IPv6, ngoài địa chỉ liên kết cục bộ.
Halfgaar

1
Điều đó được xử lý bởi lựa chọn địa chỉ nguồn và đích (RFC 6724). Trong trường hợp của bạn, có vẻ như máy chủ lưu trữ bản ghi AAAA trong DNS, chọn địa chỉ đích đó, sau đó phát hiện ra rằng nó không có địa chỉ nguồn mà nó có thể sử dụng với đích đó và sau đó quay lại IPv4.
Sander Steffann

2

Bước trung gian đang được sử dụng hiện nay được gọi là đường hầm. Về cơ bản, các gói IPv6 di chuyển bên trong các gói IPv4 cho đến khi chúng đạt đến điểm mà chúng có thể bị tước khỏi đóng gói IPv4 và gửi ra phía bên kia trên mạng IPv6 đầy đủ. Tất nhiên có nhiều điều phức tạp hơn thế, nhưng khái niệm cơ bản nói chung là giống nhau trên bảng.

Khi ngày càng có nhiều thiết bị trở nên có khả năng IPv6 và mọi người trở nên quen thuộc hơn với việc sử dụng địa chỉ, IPv6 sẽ thấy mức độ sử dụng tăng lên. Tôi không tin (ý kiến ​​cá nhân) rằng IPv6 sẽ thực sự được chấp nhận và chứng kiến ​​sự phát triển quy mô lớn trong SMB và thị trường cá nhân cho đến khi không gian IPv4 trở thành một mặt hàng đắt đỏ.

Tại một thời điểm nào đó trong tương lai khá xa khi IPv6 cung cấp phần lớn lưu lượng, tôi có thể thấy sự đảo ngược của số phận đối với IPv4, nơi lưu lượng truy cập IPv4 phải được gói gọn trong các gói IPv6 thông thường và các nhà môi giới đường hầm đóng vai trò tương tự (nhưng bị đảo ngược) do thiếu các bài tập định tuyến / IP IPv4 rộng.


1
Tôi không nghĩ điều này trả lời cho câu hỏi ... Bên cạnh đó: Đường hầm đang nhanh chóng biến mất trong mạng IPv6 lõi vì IPv6 hiện có sẵn ở mọi nơi. Sẽ có một số đường hầm cho khách hàng, nhưng điều đó không liên quan gì đến sự lựa chọn mà một hệ thống đưa ra khi bắt đầu. PS: Đường hầm IPv4 qua IPv6 đã xuất hiện. Một số nhà khai thác internet cáp đang triển khai DS-Lite trong năm nay, điều này thực hiện chính xác điều đó.
Sander Steffann

Tôi làm việc cho một trung tâm dữ liệu lớn và có các liên hệ của tất cả các ngành và kinh nghiệm của tôi là IPv6 chắc chắn không phải ở đâu cũng có . Đường hầm tồn tại để thu hẹp khoảng cách và xem xét hầu hết người dùng cuối chưa có bài tập IPv6, nó vẫn có liên quan.
Garrett

3
Đường hầm thực sự được sử dụng, nhưng nên tránh khi có thể. Các ISP chưa cung cấp IPv6 tốt cho khách hàng của họ không thực hiện công việc của họ ... Nhưng dù sao: Câu hỏi đặt ra là ứng dụng khách chọn giữa IPv4 và IPv6 như thế nào và điều đó không liên quan gì đến cách mạng có kết nối IPv6 bởi vì đó là công việc của bộ định tuyến chứ không phải ứng dụng khách. Ứng dụng khách chỉ sử dụng bất cứ thứ gì có sẵn trên mạng cục bộ.
Sander Steffann

Thập tự chinh về, bạn của tôi.
Garrett

-2

Tôi nghĩ bạn đang hỏi làm thế nào một ứng dụng quyết định cách chọn. Từ phía chương trình, nó phụ thuộc vào việc thực hiện ứng dụng. Ví dụ, nếu bộ mã hóa làm cho IPv6 có mức độ ưu tiên cao hơn so với IPv4, trước tiên, nó sẽ thử sử dụng getipv6addr (). Nếu điều đó không được định cấu hình hoặc không thành công, thì nó sẽ thử sử dụng getaddr (), v.v. Dựa trên điều này, ứng dụng sẽ gửi yêu cầu qua IPv6 trước hoặc ngược lại.

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.