View previous topic :: View next topic |
Author |
Message |
RaX Apprentice
Joined: 16 Aug 2007 Posts: 166
|
Posted: Tue Oct 27, 2009 7:04 pm Post subject: [Réseaux] Sauvegarder la table de routage. |
|
|
Bonsoir,
J'ai un petit peu cherché sur le Net avant de poster ici mais pour le moment sans trouver mon bonheur, c'est pourquoi j'ose pauser la question qui tue: "Comment peux t'on sauvegarder la table de routage d'un machine Linux?"
En gros j'ai un routeur Linux, tous se qui a de plus mignon, et qui connais plein de réseau (~2000) et plein d'hôtes (~50) (le chanceux). Seul petit problème, énormément de route ont été ajouté à la main (route add -net xxxxx) sans passer par la case 'sauvegarde dans un fichier'.
C'est pourquoi j'aimerai pouvoir sauvegarder cette table est pouvoir la restaurer après un éventuel re-démarrage de la machine.
Avant d'écrire un petit script qui ne marchera qu'a moitié (si c moi qui le code) je voulais savoir si une méthode plus élégante existe.
Bonne soirée et Merci. |
|
Back to top |
|
|
kwenspc Advocate
Joined: 21 Sep 2003 Posts: 4954
|
Posted: Tue Oct 27, 2009 8:28 pm Post subject: |
|
|
Y a bien le fichier proc /proc/net/route mais c'est un peu brute de coffrage. (Il reste bien sur les commandes route ou ip pour un listing plus "lisible").
Je vois pas comment faire ça sans un script ou en codant en C* via une socket de type AF_NETLINK. Je serais intéressé par la réponse tiens.
[edit] ou n'importe quel langage qui wrap l'api socket [/edit] |
|
Back to top |
|
|
truc Advocate
Joined: 25 Jul 2005 Posts: 3199
|
Posted: Wed Oct 28, 2009 8:16 am Post subject: |
|
|
Comme l'a dit kwenspc, il y a la commande 'ip' que tu peux utiliser, il doit vraiment y avoir moyen de faire quelque chose avec ça car tu peux prendre une ligne de sortie pour la remettre en paramètre, j'ai souvent fait ça manuellement, donc, il y a sans doute moyen d'automatiser la chose.
exemple: Quote: | ip r l
192.168.50.0/24 dev eth0 proto kernel scope link src 192.168.50.122
10.11.100.0/24 dev eth0 proto kernel scope link src 10.11.100.134
192.168.0.0/16 via 192.168.50.1 dev eth0
127.0.0.0/8 via 127.0.0.1 dev lo
default via 10.11.100.1 dev eth0
|
=> Quote: | ip r d 192.168.0.0/16 via 192.168.50.1 dev eth0 |
pour enlever la route, (ip r a .. pour l'ajouter), fin tu vois l'idée quoi
Donc je pense que tu peux jarter plutôt sereinement toute les routes 'scope link', puis tu sauvegardes le reste.
En gros Code: | ip r l | sed -n '/[[:space:]]scope link[[:space:]]/d ; /[[:space:]]via[[:space:]]/s/^/ip r a /p' > rbkp |
Puis, pour les remettre _________________ The End of the Internet! |
|
Back to top |
|
|
geekounet Bodhisattva
Joined: 11 Oct 2004 Posts: 3772
|
Posted: Wed Oct 28, 2009 9:58 am Post subject: |
|
|
Heu, ya pas moyen de simplement tout sauver dans le /etc/conf.d/net ? |
|
Back to top |
|
|
kwenspc Advocate
Joined: 21 Sep 2003 Posts: 4954
|
Posted: Wed Oct 28, 2009 10:02 am Post subject: |
|
|
geekounet wrote: | Heu, ya pas moyen de simplement tout sauver dans le /etc/conf.d/net ? |
RaX a pas précisé la distrib |
|
Back to top |
|
|
RaX Apprentice
Joined: 16 Aug 2007 Posts: 166
|
Posted: Wed Oct 28, 2009 10:35 am Post subject: |
|
|
Quote: |
Heu, ya pas moyen de simplement tout sauver dans le /etc/conf.d/net ? |
La question n'est pas où, mais comment :p
truc:
Comme ta proposition je crois que je vais devoir scripter. malheureusement j'ai pas iproute2 sur tous les routeurs donc je vais bosser sur la sortie de netstat -rn.
J'ai un peu peur de me louper et de perdre des routes, mais bon faut vivre dangereusement parait-il. |
|
Back to top |
|
|
kwenspc Advocate
Joined: 21 Sep 2003 Posts: 4954
|
Posted: Wed Oct 28, 2009 10:43 am Post subject: |
|
|
RaX wrote: | J'ai un peu peur de me louper et de perdre des routes, mais bon faut vivre dangereusement parait-il. |
À ce qu'il semble vous vivez déjà dangereusement puisque vous n'avez sauvé aucune routes. imagines une coupure de courant ou un crash... ^^
(À ressortir comme argument si jamais on te demande pourquoi il manque 1 ou 2 routes après ta manip, au moins il vous restera la plus gros) |
|
Back to top |
|
|
truc Advocate
Joined: 25 Jul 2005 Posts: 3199
|
Posted: Wed Oct 28, 2009 11:38 am Post subject: |
|
|
Bon, dans ce cas, awk sera plus approprié.
Bon, je n'ai pas vérifié la syntaxe de route, mais c'est juste pour te donner un point de départ:
Code: | netstat -rn finet | awk '( $4 ~ /G/ ) { printf "route add -net %s -netmask %s -gateway %s %s\n", $1, $3, $2, $NF }'
route add -net 192.168.0.0 -netmask 255.255.0.0 -gateway 192.168.50.1 eth0
route add -net 127.0.0.0 -netmask 255.0.0.0 -gateway 127.0.0.1 lo
route add -net 0.0.0.0 -netmask 0.0.0.0 -gateway 10.11.100.1 eth0
|
Après faudra peut-être traiter des cas particuliers:
Est-ce que -net A.B.C.D -netmask 255.255.255.255 fonctionne ou faut-il ajouter la route avec -host
Tu vois l'idée quoi;) _________________ The End of the Internet! |
|
Back to top |
|
|
RaX Apprentice
Joined: 16 Aug 2007 Posts: 166
|
Posted: Thu Oct 29, 2009 7:02 am Post subject: |
|
|
Bonjour,
Bon je m'en suis sorti, avec la précieuse aide de "truc", pour le moment les clients ne gueule pas je pense donc que je n'ai perdu bcp de route. On verra bien dans la matinée. Pour les hôtes c'est supporté même avec avec route add -net, mais bon j'aurai pu faire un check de l'indice genre: UGH = "route add -host" else "route add -net". Mais bon seul le résultat compte, même si ce n'ai pas très "esthétique"
kwenspc:
Bonne remarque, pourquoi crois-tu que je priais tous les soirs le dieu onduleur et le dieu disque dur ? Quand j'ai vu que on vais aucunes sauvegardes j'avais même peur de me connecter dessus en SSH =).
Merci à tous en tous cas. |
|
Back to top |
|
|
|