Jul
20
2009
dhclient changes my resolv.conf

Σίγουρα έστω και μία φορά έχει χρειαστεί να χρησιμοποιήσεις dhcp σε κάποιο μηχάνημα.
Η δυνατότητα να παίρνει αυτόματα όλες τις ρυθμίσεις σου λύνει τα χέρια.

Απλά βάζει το καλώδιο του δικτύου σε μία πρίζα και voila - δεν χρειάζεται να κάνεις τπτ.

Το πρόβλημα:

Όταν ο υπολογιστής σου συνδέεται σε πολλά και διαφορετικά δίκτυα στα οποία ΔΕΝ είσαι πάντα ο διαχειριστής. Έχεις φτιάξει τόσα χρόνια ωραία και όμορφα το routing tables σου, έχει ορίσει τους dns servers κ.λ.π.-κ.λ.π.

Και με το τρέχει το dhclient σου διαλύει τα πάντα !!!

Πως λες στο dhcpclient να ΜΗΝ αλλάξει το /etc/resolv.conf αρχείο σου;

  • Εύκολα, απλά κάνεις το εξής:

# cat > /etc/dhclient-enter-hooks << EOF
make_resolv_conf() {
echo "doing nothing to resolv.conf"
}
EOF

Η ερώτηση μου είναι η εξής:

Πως λες στο dhcpclient να ΜΗΝ σου αλλάξει το routing table;

  1. Avatar di comzeradd comzeradd

    Monday, July 20, 2009 - 09:34:56

    προσωπικά χρησιμοποιώ το dhcpcd για dhcp client και έχει σχετικές ρυθμίσεις στο /etc/dhcpcd.conf

  2. Avatar di kargig kargig

    Monday, July 20, 2009 - 13:23:46

    http://roy.marples.name/cgi-bin/man-cgi?dhcpcd
    Δες τα -G και -S options… νομίζω πως κάνουν (μεταξύ άλλων) και αυτό που θέλεις…

  3. Avatar di keramida keramida

    Monday, July 20, 2009 - 19:51:30

    obligatory-freebsd-plug …

    Αρχικά βάζεις FreeBSD που έχει dhclient.conf(5) manpage.

    end-of-obligatory-freebsd-plug …

    Μετά στο dhclient.conf ένα config section για το interface σου το οποίο λέει να ΜΗΝ ζητάει τα options ‘routers’, ‘domain-name’ ή ‘domain-name-servers’, π.χ.:

    interface “wlan0” {
    send host-name “kobe”;
    send dhcp-lease-time 3600;
    supersede domain-name “laptop”;
    supersede domain-name-servers 127.0.0.1;
    supersede routers 10.0.0.1;
    request subnet-mask, broadcast-address, time-offset;
    require subnet-mask;
    }

  4. Avatar di ebal ebal

    Tuesday, July 21, 2009 - 06:14:42

    Καλημέρα και σας ευχαριστώ και τους τρεις για τις συμβουλές σας.
    Πιο ιδιαίτερα τον keramida για το ευγενέστατο RTFM μέσω FreeBSD οδού.
    -Γιώργο πιθανά το FreeBSD να είναι η επόμενη διανομή μου (35,725%)

    Τελικά υπάρχει η εξής συνάρτηση: dhclient-exit-hooks στο dhclient
    με το οποίο μπορώ και διορθώνω το routing table μου.

    cat /etc/dhclient-exit-hooks

    #!/bin/sh
    /sbin/route del -net 0.0.0.0 gw 10.10.10.1 dev eth2
    /sbin/route add -net 10.10.10.0 netmask 255.255.255.0 gw 10.10.10.254 dev eth2

    Από την άλλη διαπίστωσα ότι κατά το boot ο default dhcp client είναι ο dhcpd,
    οπότε για κάτι “μόνιμο” θα ακολουθήσω τις συμβουλές των linux-άδων φίλων μου :)

    Μόλις καταλήξω, θα γράψω και μία ωραία σελίδα (ένα super-duper super-mini howto)
    με σκοπό να καλύψω το παραπάνω οδοιπορικό και που ξέρεις,
    ίσως να βοηθήσει και κάποιον άλλο :)