Routage h7 » Historique » Version 5
Élie Bouttier, 11/03/2018 16:28
1 | 1 | Élie Bouttier | h1. Routage h7 |
---|---|---|---|
2 | 1 | Élie Bouttier | |
3 | 1 | Élie Bouttier | L’allocation d’une IP dans djadhere provoque le routage de cette dernière sur h7. |
4 | 1 | Élie Bouttier | Pour cela, un cron sur h7 s’occupe toute les minutes de répercuter les modifications effectuées sur djadhere. |
5 | 1 | Élie Bouttier | |
6 | 1 | Élie Bouttier | Les scripts s’occupant du routage se trouvent dans le dossier @h7:/root/routing@. |
7 | 1 | Élie Bouttier | |
8 | 1 | Élie Bouttier | h2. CRON |
9 | 1 | Élie Bouttier | |
10 | 1 | Élie Bouttier | Le cron est installé via @/etc/cron.d/routing@. |
11 | 1 | Élie Bouttier | Il lance le script @/root/routing/update-ip-ttnn@. |
12 | 1 | Élie Bouttier | |
13 | 1 | Élie Bouttier | Ce script télécharge depuis djadhere la dernière version de @ip_ttnn.txt@ avec curl (et s’arrête là en cas d’erreur de curl). |
14 | 1 | Élie Bouttier | Un git diff est effectué sur le fichier ip_ttnn.txt afin de tester s’il a été modifié. |
15 | 1 | Élie Bouttier | Si c’est le cas, il est commité localement et le script @check-routing ip_ttnn.txt@ est lancé. |
16 | 1 | Élie Bouttier | |
17 | 1 | Élie Bouttier | h2. Le script de routage |
18 | 1 | Élie Bouttier | |
19 | 1 | Élie Bouttier | |
20 | 1 | Élie Bouttier | <pre> |
21 | 1 | Élie Bouttier | root@h7:~/routing# ./check-routing --help |
22 | 1 | Élie Bouttier | usage: check-routing [-h] [--quiet] [--fix] [--force] db |
23 | 1 | Élie Bouttier | |
24 | 1 | Élie Bouttier | positional arguments: |
25 | 1 | Élie Bouttier | db the ip_ttnn.txt file |
26 | 1 | Élie Bouttier | |
27 | 1 | Élie Bouttier | optional arguments: |
28 | 1 | Élie Bouttier | -h, --help show this help message and exit |
29 | 1 | Élie Bouttier | --quiet do not print executed commands |
30 | 1 | Élie Bouttier | --fix run ip commands needed to fix the routing ; if absent, they are |
31 | 1 | Élie Bouttier | printed but not executed |
32 | 1 | Élie Bouttier | --force by-pass mad guard (more than 10 commands, change cluster's IPs |
33 | 1 | Élie Bouttier | route) |
34 | 1 | Élie Bouttier | </pre> |
35 | 1 | Élie Bouttier | |
36 | 1 | Élie Bouttier | Le script de routage lis le fichier @ip_ttnn.txt@ passé en argument et vérifie pour toutes les IPs que les routes associées, IPv4 et IPv6, sont correctes. |
37 | 5 | Élie Bouttier | Les routes @custom@ (géré à la main) et @openstack@ (géré par bird) ne sont pas vérifiées. |
38 | 3 | Élie Bouttier | Les IPs connues comme appartenant à h7, définie dans @IP_LOCALS@, sont ignorées ; un message d’erreur est affiché si leur route n’est ni @custom@, ni @reserved@. |
39 | 1 | Élie Bouttier | |
40 | 1 | Élie Bouttier | La vérification parse le résultat d’@ip route get@ et, si nécessaire, ajoute les actions nécessaires à la liste @CMDS@ : |
41 | 1 | Élie Bouttier | * @ip route add@ si la route est manquante |
42 | 1 | Élie Bouttier | * @ip route delete@ si elle ne devrait pas être présente |
43 | 1 | Élie Bouttier | * @ip route delete@ puis @ip route add@ si elle est incorrecte. |
44 | 1 | Élie Bouttier | |
45 | 1 | Élie Bouttier | Si l’IP est actuellement routé sur le vlan openstack (@eth3.3132@), l’action se voit ajouter un attribut « need --force ». |
46 | 1 | Élie Bouttier | |
47 | 1 | Élie Bouttier | S’il y a plus de 10 actions nécessaires, le script refuse de continuer sans l’option @--force@. |
48 | 1 | Élie Bouttier | Finalement, pour chaque action, celle-ci est affiché. |
49 | 1 | Élie Bouttier | Si le script est lancé avec @--fix@, la commande est lancé (sauf si @--force@ est également nécessaire mais absent des aguments du script). |
50 | 2 | Élie Bouttier | |
51 | 2 | Élie Bouttier | h2. Et au démarrage ? |
52 | 2 | Élie Bouttier | |
53 | 2 | Élie Bouttier | Le script @/root/ip_ttnn.sh@, lancé par @/etc/rc.local@ s’en occupe. |