Làm cách nào để phát bản cập nhật ARP cho tất cả hàng xóm trong Linux?


21

Một số khách hàng trong mạng con đã lưu trữ IP với địa chỉ MAC cũ, tôi muốn họ cập nhật giá trị mới bằng cách phát ARP, có khả thi trong Linux không?

Câu trả lời:


27

Có, nó được gọi là "ARP không được yêu cầu" hoặc "ARP vô cớ". Kiểm tra trang web để tìm hiểu thêm chi tiết, nhưng cú pháp trông giống như thế này:

arping -U 192.168.1.101

Nếu bạn đang giả mạo một địa chỉ, bạn có thể cần chạy địa chỉ này trước:

echo 1 > /proc/sys/net/ipv4/ip_nonlocal_bind

Cuối cùng, vì khả năng giả mạo của nó, việc gửi các gói ARP không được yêu cầu đôi khi được coi là một hoạt động "thù địch" và có thể bị bỏ qua hoặc có thể bị chặn bởi một số tường lửa của bên thứ ba.


8
Theo debian, lệnh cho tôi là arping -S ip.to.update -i ethX destination.host. Ví dụ:arping -S 10.0.0.2 -i eth0 10.0.0.1
radicand

3
Tôi thấy cần phải thực hiện một bộ định tuyến như được mô tả ở trên trong Linux khi IP là bí danh trên thiết bị (tức là một NIC thứ cấp đang sử dụng IP hoặc nếu đó là bí danh trên NIS hiện có được thiết lập bằng ifconfig ethx:xloại của bí danh). Nếu nó là chính, nó dường như không bao giờ cần thiết.

8

Những gì bạn đang tìm kiếm được gọi là " ARP Gratuitous " và có thể được thực hiện bằng cách sử dụng "arping". Nếu địa chỉ IP của bạn là 10.0.0.1 trên eth0, bạn sẽ sử dụng lệnh này:

arping -A -I eth0 10.0.0.1

Bạn có thể xác minh ARP đang được gửi bằng "tcpdump" trong khi "arping" đang chạy, trong trường hợp này tôi đang xem "wlan0":

laptop:~$ sudo tcpdump -lni wlan0 arp    
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
12:14:11.219936 ARP, Reply 172.16.42.161 is-at a4:77:03:d2:9b:c4, length 28
12:14:12.220119 ARP, Reply 172.16.42.161 is-at a4:77:03:d2:9b:c4, length 28
12:14:13.220288 ARP, Reply 172.16.42.161 is-at a4:77:03:d2:9b:c4, length 28
^C
3 packets captured
3 packets received by filter
0 packets dropped by kernel
laptop:~$ 

-1

Nó không phải là cần thiết. Như trong: khi bạn thay đổi IP, máy tính sẽ tự động thực hiện. Nếu các clietns được mã hóa cứng, một chương trình phát sóng sẽ không thay đổi ghi đè đã mã hóa.

Tôi làm CNTT khoảng 20 năm nay và trong tất cả thời gian này tôi KHÔNG BAO GIỜ (!) Đã xảy ra việc này mà không có thiết bị bị lỗi.


Vấn đề là tôi vô tình gán một máy mới với một IP đã sử dụng, vì vậy chúng xung đột với IP. Tôi không thể truy cập vào máy cũ bằng SSH. Bây giờ tôi tắt máy từ xa (mới) từ xa, nhưng tôi vẫn không thể truy cập vào máy cũ, tôi nghi ngờ bộ định tuyến đã lưu địa chỉ MAC trong bảng ARP của nó.
Howard

1
Đây được gọi là '' ARP vô cớ '' - xem en.wikipedia.org/wiki/iêu
Kimvais

Nên hoạt động sau khi bộ đệm arp hết hạn. Bạn cũng có thể thử xả bảng arp trên máy bạn đang cố truy cập vào máy cũ từ
Kimvais

4
@TomTom - có lẽ bạn chưa từng làm việc trong môi trường phù hợp để xem nó. Gửi các gói ARP không được yêu cầu là một cách phổ biến để nhanh chóng định tuyến lại lưu lượng truy cập đến một máy chủ mới trong tình huống chuyển đổi dự phòng. Nhiều bộ chuyển mạch và bộ định tuyến cao cấp có thể mất vài phút để nhận ra rằng một địa chỉ IP đã được chuyển sang một cổng vật lý khác. Thiết bị chuyển mạch của Cisco nổi tiếng về việc này.
tylerl

4
@TomTom: Có, nếu bạn thất bại thông qua heartbeat / corosync, bất cứ điều gì. Tuy nhiên, nếu bạn di chuyển thủ công các dịch vụ từ máy này sang máy khác, đặc biệt nếu bạn đang sử dụng thiết bị của Cisco, việc gửi thủ công ARP vô cớ là vô cùng hữu ích. Tôi đồng ý rằng đó không phải là việc bạn làm thường xuyên, nhưng là một người cũng đã làm CNTT được 20 năm, tôi đã thấy mình trong một số tình huống mà tôi cần phải làm điều đó.
Sean Reifschneider
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.