Pflege von `/ etc / hosts` für Hosts auf DHCP

7

In meinem lokalen DHCP-Netzwerk habe ich verschiedene PCs, auf die ich remote zugreifen muss. Problem ist, dass sich ihre IPs ändern. Manchmal schließe ich meinen Laptop und mein Netbook an die DHCP-Netzwerke anderer an.

Meine aktuelle Lösung besteht darin, die /etc/hostsDatei jedes Mal zu aktualisieren, wenn sich die Ziel-IP ändert.

Meine /etc/hostsDatei sieht folgendermaßen aus:

# <ip-address>   <hostname.domain.org>    <hostname>
127.0.0.1        localhost.localdomain    localhost laptop    
192.168.1.14     desktop.localdomain      desktop
192.168.1.12     netbook.localdomain      netbook

Gibt es eine Möglichkeit, die manuelle Verwaltung zu umgehen?

Könnten meine Computer beispielsweise ihre IPs im LAN übertragen oder so etwas? Windows macht so etwas, mit dem Sie mit "\\ COMPUTER_NAME" auf einen Computer im Netzwerk verweisen können.

Stefan
quelle

Antworten:

5

Es kommt darauf an, was das DHCP macht?

Die meisten Heimrouter verwenden dnsmasq und Sie können dies als Ihren lokalen DNS-Server verwenden. Sie müssen nur dnsmasq festlegen , um sich selbst als DNS-Server zurückzugeben. Als Nächstes müssen Sie sicherstellen, dass Ihre PCs während der DHCP-Anforderung einen Hostnamen senden.

Dann, voila, sollten Sie in der Lage sein, alle Ihre lokalen Computer über den DNS / DHCP-Server aufzulösen.

Sybreon
quelle
Ich glaube, dass es die einzige Möglichkeit ist, den DHCP-Server dazu zu bringen, mit dem DNS-Server übereinzustimmen, ohne dass die DHCP-Clients DNS irgendwie aktualisieren. Ich habe dhcpd so konfiguriert, dass bestimmte IP-Adressen an bestimmte Ethernet-Adressen vergeben werden. Diese IP-Adressen befinden sich in der von dnsmasp verwendeten Hosts-Datei.
Bruce Ediger
Dies ist eine andere Möglichkeit, indem feste IP-Adressen über DHCP verteilt werden. Das bedeutet, dass die Clients nicht einzeln konfiguriert werden müssen.
Sybreon
Ich habe keine Administratorrechte über die Router.
Stefan
3

Je nachdem, was Sie erreichen möchten, können Sie avahi einrichten, das die Existenz eines sshd-Dienstes auf Ihrem Computer überträgt. Seien Sie jedoch vorsichtig in "fremden" Netzwerken ...

wzzrd
quelle
Avahi überträgt Ihnen nicht nur die Existenz von sshd, sondern bietet Ihnen auch auf einfache Weise eine aktuelle Auflösung des Hostnamens.
Steven D
1

Ich habe mich oft darüber gewundert und versucht, ein Skript wie dieses in / etc / sysconfig / network-scripts / update-hosts zu erstellen: -

#!/bin/sh

set -e

if [ "$IFACE" = lo ]; then
    exit 0
fi

SHORT_HOST=`hostname`

# Remove current line with hostname at the end of line
sed -i '/'$SHORT_HOST'$/ d' /etc/hosts

ipaddr=$(ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}')
echo "$ipaddr $SHORT_HOST" >>/etc/hosts

Ich würde es dann über ein Init-Skript /etc/init.d/updatehosts ausführen lassen: -

#!/bin/sh
# chkconfig: 2345 11 89
# description: automatically update /etc/hosts
#

if [ ! -x /etc/sysconfig/network-scripts/update-hosts ]
then
    echo "Update hosts: can't update hosts file"
    exit
fi

case "$1" in
    'start')
        # Update hosts:
        cp /etc/hosts /etc/hosts.001
                /etc/sysconfig/network-scripts/update-hosts
                echo "/etc/hosts updated"
        ;;
    'stop')
        # Restore hosts:
                cp /etc/hosts.001 /etc/hosts
                echo "/etc/hosts restored"
        ;;
esac

aktiviert mit chkconfig --add updatehosts

Kann jemand einen besseren Weg oder Verbesserungen für diese Methode empfehlen?

RodAllen
quelle
0

Sie können den avahi-Daemon verwenden, um Ihre IP-Adresse jedes Mal an einen auflösbaren Hostnamen zu binden, wenn Ihre IP durch DHCP geändert wird.

Piotr Kozlowski
quelle