Re: livebox Sagem

Pàgina inicial

Reply to this message
Autor: Olivier Allard-Jacquin
Data:  
A: guilde
CC: guilde
Assumpte: Re: livebox Sagem
    Bonsoir,

guilde.nt@??? a écrit :
>> Je dois donc chaque jour entrer à la main les IP des DNS Orange dans
>> /etc/resolv.conf
>
> Si je comprends bien, ceci suffirait :
>
>   interface "eth0" {
>     prepend domain-name-servers <adresse IP> <adresse IP>
>   }

>
> dans dhclient.conf ; man dhclient.conf.


    J'utilise personnellement :


# (2008/05/14): N'utilise que "127.0.0.1" comme serveurs DNS
supersede domain-name-servers 127.0.0.1;

afin d'utiliser mon serveur DNS local comme unique serveur DNS. Et c'est
lui qui est configuré pour aller interroger les DNS de Free lorsqu'il ne
connaît pas la réponse

>> Comment faire en sorte que le resolv.conf ne soit pas changé par le dhcp
>> sans toucher à /etc/dhcp3/dhclient-enter-hooks.d/debug ?
>
> À quoi te sert /etc/dhcp3/dhclient-enter-hooks.d/debug ?


    Le répertoire /etc/dhcp3/dhclient-enter-hooks.d/ accueil tout les
scripts (de l'admin) que celui-ci veut lancer à chaque fois que le
client DHCP a fini une opération (comme par exemple, la vérification du
bail DHCP).


    Chez Free, comme le bail DHCP dure moins de 1 minute, c'est une fois
par minute que les scripts de ce répertoire sont exécutés. C'est très
pratique pour, par exemple, lancer un programme quelconque lorsque
l'adresse IP a été changée.


    Généralement, le script commence par une vérification de la variable
"$reason", mis en place par dhclient, qui indique pour quelle raison le
script est lancé.


    Mon script de firewall (netfilter_cfg) est relancé après chaque
changement d'adresse IP, et pour cela j'attends à ce que "$reason" ait
une des valeurs suivantes :


"BOUND" | "REBIND" | "EXPIRE" | "REBOOT"

    A titre d'information, je met en attachement mon script
/etc/dhcp3/dhclient-exit-hooks.d/000_netfilter_cfg de sortie de dhcp,
qui a pour tâche de relancer mon script de configuration de firewall
(/usr/local/sbin/netfilter_cfg). Il est explique un peu plus en détail
que ce que viens d'écrire ici.


    Pour ce qui est plus précisément du
/etc/dhcp3/dhclient-enter-hooks.d/debug , c'est un script de test de
cette fonction de sortie de dhcp. Normalement, ce n'est pas ce script-là
que l'on modifie (n'est-ce pas Hervé ! :) ), mais on rajoute son propre
script dans le /etc/dhcp3/dhclient-enter-hooks.d/


    Cordialement,


                            Olivier


-- 
~~~~~~~  _____/\_____  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Phoenix /   _ \/ _   \    Olivier Allard-Jacquin
       /   / \  / \   \   Web:  http://olivieraj.free.fr/
      /___/  /  \  \___\  Mail: olivieraj@???
~~~~ /////  ///\\\  \\\\\ ~~~~~~~~~~~~~~~~~~~~~~~ Linux Powered !!

#!/bin/sh -norc

###############################################################################
# Script de sortie dhclient-script (à placer dans "dhclient-exit-hooks.d/")
#
# Ce script est executé à la sortie du script "/sbin/dhclient-script".
# Dans le cas de l'utilisation d'un client DHCP pour la configuration d'une
# interface réseau, ce script sera utilisé pour lancer "netfilter_cfg", afin de
# lui faire prendre en compte le changement eventuel d'adresse IP
#
# Auteur: Olivier ALLARD-JACQUIN
# Version: 0.2.2
# Créé le: 2006/05/21                      Dernière modification le: 2008/05/10
###############################################################################


# Le script va utilisé la variable "$reason" du script "/sbin/dhclient-script"
# afin de determiner si "netfilter_cfg" doit où non être relancé
#
# Variables intéressantes envoyées par "/sbin/dhclient-script":
# - $reason: Raison pour laquelle le script est lancé. Les valeurs sont :
# MEDIUM, PREINIT, BOUND, RENEW, REBIND, REBOOT, EXPIRE, FAIL et TIMEOUT
# - $interface: Interface réseau modifié par dhclient (ex: "eth2")
# - $new_ip_address: Nouvelle adresse IP affectée à $interface (ex: "10.0.0.9")
# - $new_subnet_mask: Nouveau masque affecté à $interface (ex: "255.255.255.0")
# - $new_domain_name_servers: Liste des nouveaux DNS (ex: "10.0.0.1 10.0.0.2")
# - $new_routers: Nouveau routeur accessible par $interface (ex: "10.0.0.254")
#
# A lire : http://linux.about.com/library/cmd/blcmdl8_dhclient-script.htm

# Recherche le program d'init de netfilter_cfg
if [ -r /etc/init.d/netfilter_cfgd ]; then
  # Mandrake/Mandriva/RedHat
  DAEMON="/etc/init.d/netfilter_cfgd"
else
  if [ -r /etc/init.d/netfilter_cfg ]; then
    # Debian/Ubuntu
    DAEMON="/etc/init.d/netfilter_cfg"
  fi
fi


# Commandes que l'utilisateur veut lancer, lorsque l'adresse IP a été changée
UserIPChangeFunction() {

local Temp ; # Do NOT remove this line !!!

# killall -s SIGHUP ddclient

# /etc/init.d/ntpd restart
}

# Program principal
Success() {

  which initlog > /dev/null && \
    initlog -n $0 -s "$@" -e 1 || \
    echo $@
}


Failure() {

  which initlog > /dev/null && \
    initlog -n $0 -s "$@" -e 2 || \
    echo $@
}


case "$reason" in
"BOUND" | "REBIND" | "EXPIRE" | "REBOOT")

# L'adresse IP a été changée. On reconfigure netfilter en relaçant netfilter_cfg
"$DAEMON" start
RETVAL=$?

  [ "$RETVAL" = 0 ] && \
    Success "'$DAEMON' launched after $interface configuration change (IP: ${new_ip_address}, Reason: $reason)" || \
    Failure "'$DAEMON' failure after $interface configuration change (IP: ${new_ip_address}, Reason: $reason)"


# Lance une fonction définie par l'utilisateur
UserIPChangeFunction
;;

"FAIL" | "TIMEOUT")
Failure "Error during '/etc/dhcp3/dhclient-exit-hooks.d/00_netfilter_cfg' ('reason'=$reason)"
;;
esac

# Log:
#echo `date "+%Y-%m-%d_%X"` \'$0\' [$@] [$reason]>> /tmp/netfilter_cfg-dhclient-exit-hooks.log