Linux sẽ gửi đầu dò ARP miễn phí hoặc ARP (được xác định trong RFC 5227)


7

Tôi đã làm một thử nghiệm để kiểm tra xem Linux sẽ gửi đầu dò ARP hoặc ARP vô cớ trước khi sử dụng IP đích.

Kịch bản thí nghiệm như sau:

Có hai máy tính Linux, cả hai đều được kết nối với cùng một AP. Tôi đã kết nối ifconfig wlan0 192.168.1.30địa chỉ IP đầu tiên và được sử dụng (là địa chỉ IP mặc định của máy tính Linux khác) để đặt địa chỉ IP tĩnh.

Sau đó, tôi sử dụng WPA_supplicant để kết nối với người khác và sử dụng dhclient wlan0để lấy địa chỉ IP. Từ sniffer, tôi đã không quan sát bất kỳ đầu dò ARP hoặc ARP vô cớ nào được gửi từ máy tính thứ hai.

Chỉ cần tự hỏi trong điều kiện nào, máy tính linux sẽ gửi hai yêu cầu ARP này? Vì trong cùng điều kiện, tôi quan sát thấy rằng máy tính windows của tôi sẽ gửi ARP thăm dò để thu hút IP.

Cảm ơn

Câu trả lời:


2

Định cấu hình thủ công địa chỉ IP trên thiết bị không yêu cầu thiết bị kiểm tra xung đột địa chỉ. Chỉ khi thiết bị cấu hình địa chỉ IP của chính nó (DHCP, v.v.) thì thiết bị mới nên kiểm tra xung đột địa chỉ.

Bạn sẽ không thấy ARP vô cớ nếu bạn định cấu hình thiết bị theo cách thủ công vì thiết bị không có cách nào để thay đổi địa chỉ (hoặc yêu cầu địa chỉ mới) nếu phát hiện xung đột. Mục đích của RFC là để một thiết bị, cấu hình địa chỉ IP của chính nó, có thể phát hiện nếu nó cần thay đổi địa chỉ IP mà nó có. Nó có thể làm điều đó cho những thứ như DHCP, nhưng nó không có cách nào để làm điều đó nếu bạn tự cấu hình địa chỉ. Nói cách khác, thiết bị phải tin tưởng rằng bạn, con người, biết bạn đang làm gì, nhưng nó cần xác minh rằng bất kỳ địa chỉ nào nó tự đưa ra đều chưa được sử dụng.


1
Sai. Tôi trích dẫn từ RFC 5227 phần 2.1 (nhấn mạnh của tôi) - "Trước khi bắt đầu sử dụng địa chỉ IPv4 (cho dù nhận được từ cấu hình thủ công , DHCP hoặc một số phương tiện khác), một máy chủ thực hiện kiểm tra đặc tả này PHẢI kiểm tra xem địa chỉ đó đã ở trong chưa sử dụng .... " https://tools.ietf.org/html/rfc5227#section-2.1
Steve365

Có, nhưng đó không thực sự là có bao nhiêu nhà cung cấp hệ điều hành đã thực hiện, do đó câu hỏi. Bạn có thể tự kiểm tra điều này với WireShark.
Ron Maupin

Thật vậy, tôi chỉ đơn thuần làm rõ cho các độc giả trong tương lai rằng để tuân thủ hoàn toàn với RFC, việc triển khai nên áp dụng giao thức cho việc đánh địa chỉ thủ công cũng như DHCP. Dòng mở đầu của bạn cho thấy rằng đây không phải là trường hợp. Tôi biết có rất nhiều triển khai lỗi ngoài kia không làm được điều này :)
Steve365 11/03/2016

Tôi chưa thấy một hệ điều hành nào thực sự thực hiện điều này. Tôi đã, tuy nhiên nhìn thấy nó trên một số thiết bị mạng. Các nhà cung cấp hệ điều hành không nhìn thấy điểm. Một số bỏ qua toàn bộ RFC (ví dụ: RFC 3021 - Sử dụng Tiền tố 31 bit trên các liên kết điểm-điểm IPv4 , đã tồn tại hơn 15 năm).
Ron Maupin

Một số phiên bản Windows thực hiện điều này. Tôi vừa sử dụng Wireshark để xác nhận trên Windows 7 với IP tĩnh.
Steve365

2

Đây là một câu hỏi, Why would Linux send an ARP probe for an IP that is being locally assigned, it knows who the own of that IP will be (itself!) ?- Bạn đang đặt IP để bạn nên biết IP nào là miễn phí. Khi rm -rf /Linux của bạn không kiểm tra, nó chỉ thực hiện điều đó, vì bạn nên biết liệu có ổn để thực hiện thao tác đó hay không. Windows (ví dụ) có thói quen nắm tay bạn để làm cho nó trở thành bằng chứng ngốc hơn (theo ý kiến ​​của tôi).

Trong trường hợp máy chủ MS DHCP, nếu bạn chạy một gói chụp trên một (mà tôi có), bạn sẽ thấy rằng họ sẽ ping một địa chỉ trước khi cho khách hàng thuê để đảm bảo rằng nó đã không được thực hiện và không biết về nó (do máy chủ DHCP khác hoặc do gán tĩnh).

Khi bạn gán IP cho giao diện trên Linux, không cần phải gửi ARP vô cớ. Nếu một máy chủ khác muốn biết MAC cho IP 1.2.3.4, nó có thể gửi yêu cầu ARP. Không có lợi ích gì khi ARP một cách vô cớ bất cứ khi nào một giao diện xuất hiện.

Tôi biết tôi đã đưa ra một vài tuyên bố mà không có bằng chứng cứng để sao lưu chúng, tuy nhiên theo câu hỏi của bạn, bạn đã thấy cho chính mình hành vi tương tự. Điều này chỉ có ý nghĩa logic với tôi.


0

Solaris 10 trở đi hỗ trợ DAD (RFC 5227) cho IPv4 cho cả địa chỉ IP được gán tĩnh và địa chỉ IP được gán động.

Trình nền dhcp (dhcpd) trên NetBSD và các nền tảng khác (như Ubuntu) hỗ trợ RFC 5227.

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.