Tại sao bạn cần IPv6 Neighbor Solicites để lấy địa chỉ MAC?


12

Tôi là một nhà phát triển phần mềm và vừa nhận được một cuốn sách miễn phí về IPv6 tại Techday, tôi đang đọc cho vui. Họ đã cho nó đi vì đó là một cuốn sách cũ (W2008), vì vậy có thể mọi thứ khác với các hệ điều hành mới / mới hơn, nhưng tôi không hiểu sự cần thiết của Neighbor Discovery để có được địa chỉ MAC.

Theo cuốn sách, mọi nút tự động lấy địa chỉ IP liên kết cục bộ, được xây dựng từ địa chỉ MAC bằng cách chèn FF-FEgiữa các byte thứ 3 và thứ 4 và lật bit U / L, để IP liên kết cục bộ cho a nút có địa chỉ MAC 00-AA-00-3F-2A-1Ctrở thành FE80::2AA:FF:FE:3F:2A1C.

Để xác định địa chỉ MAC của lớp liên kết, một thông báo Neighbor Solicitation được gửi đến địa chỉ IP cục bộ liên kết, trả lời bằng một tin nhắn chứa địa chỉ MAC của nó ... Nhưng người gửi đã biết điều đó, vì MAC được mã hóa trong liên kết- Địa chỉ IP cục bộ. Vì vậy, nó có vẻ như gửi bưu thiếp cho ai đó yêu cầu địa chỉ của họ.

Câu trả lời:


20

Mỗi nút tự động tạo một địa chỉ liên kết cục bộ, nhưng:

  • Địa chỉ đó có thể không được tạo với định dạng EUI-64 được chỉ định trong RFC 2464 . Địa chỉ IPv6 cũng có thể là địa chỉ được tạo bằng mật mã ( RFC 3972 ), địa chỉ bảo mật tạm thời ( RFC 4941 ) hoặc trong các hệ điều hành hiện đại, địa chỉ bảo mật ổn định ( RFC 7217 ).

  • Một địa chỉ trông giống như nó có ID giao diện EUI-64 có thể không thực sự tương ứng với địa chỉ MAC được chỉ định do cấu hình rõ ràng của quản trị viên.

Vì bạn không thể "chuyển đổi địa chỉ trở lại" thành địa chỉ MAC, nên bạn phải gửi Thông báo hàng xóm để xác định địa chỉ MAC.

Có những lý do khác tại sao Neighbor Solicitations cũng cần thiết. Một số trong số này là:

  • Phát hiện địa chỉ trùng lặp ( RFC 4862 ). Có thể một số máy chủ khác có thể (đúng hoặc sai) đã yêu cầu một địa chỉ mà máy chủ muốn sử dụng.
  • Hàng xóm phát hiện không thể truy cập. Việc không có phản hồi đối với Luật sư hàng xóm là một chỉ số cho thấy người hàng xóm không thể truy cập được.

Sách là tất cả tốt và tốt, nhưng sách rất lỗi thời có thể không hữu ích. Ngay cả IPv6 đã có những sửa đổi đáng kể trong mười năm qua. Nguồn sự thật tốt nhất là các RFC có liên quan, cả những bản gốc và bất kỳ bản gốc nào được đánh dấu là đã cập nhật hoặc làm lỗi thời chúng. RFC được chỉ định chi tiết đầy đủ để cho phép thực hiện tuân thủ được viết. Bạn có thể tìm hiểu tất cả các chi tiết về khám phá hàng xóm bằng cách đọc RFC 4861 .


Cảm ơn đã sửa chữa; nếu không sử dụng định dạng EUI-64 thì thực sự cần phải khám phá MAC. Nhưng thực ra, tôi không hiểu mối quan tâm về quyền riêng tư với định dạng EUI-64 cho các địa chỉ liên kết cục bộ, bởi vì địa chỉ liên kết cục bộ nằm trong phạm vi liên kết và trên liên kết đó, địa chỉ MAC sẽ phải (và có thể là ) dù sao cũng biết (bởi Neighbor Solicitation) cho giao tiếp Ethernet, vì vậy đối với mục đích xấu, địa chỉ MAC có thể được lưu dọc theo địa chỉ bảo mật ổn định trên liên kết cục bộ, phải không?
Edwin

@Edwin, SLAAC ban đầu được sử dụng cho tất cả các địa chỉ IPv6, không chỉ các địa chỉ Liên kết cục bộ, do đó, một máy chủ có thể được theo dõi. SLAAC chỉ là một phương thức để gán địa chỉ Link-Local. Chúng cũng có thể được gán thủ công và điều đó sẽ không cung cấp cho bạn địa chỉ MAC trong địa chỉ Liên kết cục bộ. Tôi biết một số người muốn gán thủ công tất cả các địa chỉ, bao gồm Liên kết cục bộ. Có vẻ như rất nhiều công việc ít hoặc không đạt được, nhưng điều đó làm họ hài lòng và tất cả các IID của tất cả các địa chỉ trên một giao diện đều giống nhau, theo thứ tự mà họ thích.
Ron Maupin

@Edwin Và, mỗi máy chủ thực sự sẽ duy trì Bộ đệm đích (xem RFC 4861), tương tự như bảng AR4 của IPv4 mà máy chủ duy trì.
Michael Hampton

CGA có thể đơn giản và an toàn hơn nếu địa chỉ có kích thước gấp đôi. Một nửa thông số kỹ thuật là cách giải quyết cho việc chỉ có 64 bit trong mã định danh giao diện nơi họ lý tưởng muốn có khoảng 162 bit. Đó là một điều cần nhớ bất cứ khi nào ý tưởng rằng 128 bit quá nhiều xuất hiện.
kasperd

Bạn nghĩ gì là không chuẩn về tài liệu Microsoft đó? Đối với tôi có vẻ như nó chỉ tóm tắt các RFC mà bạn đã liên kết đến.
kasperd

9

Vì vậy, bạn có thể hiểu sai hoặc bị thông tin sai về một số điều.

Sử dụng SLAAC, một máy chủ có thể tạo địa chỉ IPv6 của riêng mình bằng địa chỉ MAC của nó, nhưng nhiều người nghĩ rằng điều này là nguy hiểm, cung cấp quá nhiều thông tin và cho phép một máy chủ cụ thể được theo dõi. Dựa vào đó, các tiện ích mở rộng quyền riêng tư và địa chỉ ngẫu nhiên đã được phát triển và chúng được các HĐH sử dụng để cung cấp quyền riêng tư / bảo mật. Điều đó có nghĩa là một máy chủ có thể tạo địa chỉ riêng của mình, không dựa trên địa chỉ MAC của nó.

Khi một máy chủ cần khám phá địa chỉ MAC của hàng xóm trong IPv4, nó sử dụng ARP. ARP phát một yêu cầu, nhưng IPv6 không phát sóng. Thay vào đó, mọi máy chủ phải tham gia một nhóm phát đa hướng Node. Nhóm này dựa trên 24 bit cuối cùng của địa chỉ IPv6. Vì giao diện IPv6 có thể có bất kỳ số lượng địa chỉ IPv6 nào, nên một máy chủ có thể tham gia nhiều nhóm phát đa hướng Node. Một máy chủ IPv6 đang tìm kiếm địa chỉ MAC của một máy chủ khác sẽ gửi một yêu cầu phát đa hướng đến nhóm phát đa hướng Node của địa chỉ IPv6 đích.

Điều này cung cấp một lợi thế so với AR4 IPv4. Vì ARP sử dụng phát sóng cho các yêu cầu, nó làm gián đoạn mọi máy chủ lưu trữ trên miền phát sóng lớp 2. Do nhóm phát đa hướng Node Solicited sử dụng 24 bit cuối cùng của địa chỉ IPv6 mục tiêu, nên yêu cầu phát đa hướng ND có thể sẽ chỉ làm gián đoạn máy chủ đích, hoặc có thể một hoặc hai máy chủ khác trên miền quảng bá lớp 2.

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.