필요할 때 lan 호스트 이름:mac 데이터베이스를 적절하게 깨우기 위해 백그라운드에서 /etc/ethers를 자동으로 채울 수 있는 도구/데몬이 있습니까?

필요할 때 lan 호스트 이름:mac 데이터베이스를 적절하게 깨우기 위해 백그라운드에서 /etc/ethers를 자동으로 채울 수 있는 도구/데몬이 있습니까?

필요할 때 최신 데이터베이스를 보유할 수 있도록 백그라운드에서 /etc/ethers를 올바른 호스트 이름:mac 쌍으로 자동으로 채울 수 있는 도구/데몬이 있습니까(예: Wake on LAN(wol))? 어쩌면 네트워크를 "스캔"하지 않고 arp 캐시 등을 무작위로 덤프하는 것일 수도 있습니다.

감사해요

답변1

이 중 대부분을 처리하는 도구는 입니다 arpwatch. 기본적으로(적어도 Debian에서는) 이 파일은 중지될 때마다 플러시되고 업데이트됩니다 /var/lib/arpwatch/arp.dat.arpwatch

파일에는 다음 형식의 항목이 포함되어 있습니다.

52:54:00:aa:bb:cc  192.168.1.2  1452252063  somehostname  eth0

파일 /etc/ethers에는 MAC 주소와 IP 주소 또는 확인 가능한 호스트 이름만 필요합니다.

52:54:00:aa:bb:cc  192.168.1.2

그런 다음 /etc/ethers매일 실행되는 작은 스크립트를 사용하여 업데이트를 유지하고 동기화하는 것이 매우 간단합니다 crontab.

#!/bin/bash

# Flush arp.dat
service arpwatch restart

# Save a copy
test -f /etc/ethers || touch /etc/ethers
cp -fp /etc/ethers /etc/ethers.old

# Check to see if anything new has arrived. If so rebuild the file
(
    echo '# This file is updated automatically from /var/lib/arpwatch/arp.dat'
    echo '# Take care when editing'
    echo '#'
    (
        awk '{print $1,$2}' /var/lib/arpwatch/arp.dat
        grep -v '^#' /etc/ethers.old
    ) |
        sort -u
) >/etc/ethers.tmp

# Update ethers with the new file
cmp -s /etc/ethers.tmp /etc/ethers || cat /etc/ethers.tmp >/etc/ethers
rm -f /etc/ethers.tmp

# All done
exit 0

관련 정보