1 votes

Comment puis-je configurer un routeur BIRD pour qu'il communique avec un voisin situé sur un sous-réseau différent ?

Introduction

J'essaie de mettre en place une communication de base avec le protocole RIPv2 entre deux hôtes exécutant le protocole RIPv2. le démon de routage BIRD .

J'ai Host A avec une interface enp0 qui a l'adresse 10.0.1.50/24 .
J'ai un autre hôte Host B avec une interface enp1 qui a l'adresse 10.1.1.25/24 . Ces interfaces sont directement connectées par câble. Je peux faire un ping entre les deux machines si j'ajoute une route statique sur les deux machines.

Fichiers de configuration

J'ai les éléments suivants bird.conf en Host A :

protocol kernel {
        learn;                  # Learn all alien routes from the kernel
        persist;                # Don't remove routes on bird shutdown
        scan time 20;           # Scan kernel routing table every 20 seconds
        export all;             # Default is export none
}

protocol device {
    scan time 10;           # Scan interfaces every 10 seconds
}

protocol direct {
        interface "enp0"
}

protocol rip MyRIP {    
    export all;
    import all;
    interface "enp0" { mode multicast;};
}

Le site bird.conf en Host B est identique, sauf que le enp0 est remplacé par enp1

Premiers résultats

Après avoir démarré le démon bird sur les deux hôtes, je peux faire un tcpdump -ni enp0 -vv

13:21:41.943537 IP (tos 0xc0, ttl 1, id 4933, offset 0, flags [none], proto UDP (17), length 132)
    10.1.1.25.520 > 224.0.0.9.7742: [udp sum ok] UDP, length 104
13:21:41.943704 IP (tos 0xc0, ttl 1, id 150, offset 0, flags [none], proto UDP (17), length 272)
    10.0.1.50.520 > 224.0.0.9.7742: [bad udp cksum 0xec48 -> 0x1219!] UDP, length 244

Je peux sauter dans le birdcl et exécutez show rip neighbors et obtenir une table vide.

Faire fonctionner le système

Si je configure les adresses pour être sur le même sous-réseau, je peux exécuter show rip neighbors et je peux voir 10.0.1.50 dans ma liste de voisins.

Récapitulation

Comment puis-je faire en sorte que ces routeurs se listent mutuellement comme voisins si les deux extrémités du lien ne sont pas sur le même sous-réseau ?

Je dois avoir une image mentale incorrecte du fonctionnement des réseaux, les routeurs n'ont-ils pas besoin de parler à des voisins qui ne sont pas sur le même sous-réseau tout le temps ?

Je ne suis pas accroché à une réponse spécifique aux oiseaux.

3voto

sysadmin1138 Points 129885

Dans les temps anciens où il y avait plus de protocoles sur le fil que TCP/IP, j'utilisais RIP. À l'époque, il s'agissait de RIPv1, et il utilisait des diffusions. Les topologies de réseau ressemblaient à ça :

[10.0.0.0/24] <-- router --> [10.0.1.0/24] <-- router --> [10.0.2.0/24]
[10.0.3.0/24] <-- router ------^        ^---- router  --> [10.0.4.0/24]
[10.0.5.0/24] <-- router -------^      ^----- router  --> [10.0.6.0/24]

Où tous les routeurs partagent un sous-réseau qui n'a que des routeurs. Pour les installations à deux routeurs, il y avait un seul câble entre eux, comme vous le faites. Pour les installations plus importantes, un périphérique réseau rapide gère le sous-réseau (si possible un commutateur, mais pas toujours). De cette façon, tout était à deux sauts de distance et la convergence des routes était simple. C'est ce que nous avions à l'époque.

Puis vint RIPv2 et la multidiffusion, et le fait d'avoir plus de sauts était moins sujet à des problèmes de convergence. Si le TTL de multidiffusion était fixé à +1 par rapport au diamètre du saut, chaque routeur annonçait directement à tous les autres routeurs, ce qui rendait la convergence plus rapide.

Une chose essentielle à laquelle il faut penser, cependant : Regardez les adresses sources sur votre sortie TCPDUMP.

 10.1.1.25.520 > 224.0.0.9.7742
 10.0.1.50.520 > 224.0.0.9.7742

Le routeur 10.0.1.50 a été informé que le routeur de 10.1.1.25 a un sous-réseau de 10.1.1.0/24 local. Cependant, le routeur à 10.0.1.50 n'a pas d'itinéraire à suivre 10.1.1.25 donc il ne l'ajoutera pas à la table. La multidiffusion est votre canal d'annonce, mais elle ne peut pas transporter le trafic acheminé.

Tout n'est pas perdu.

Si vous êtes limité à un seul câble pour une raison quelconque, vous pouvez définir des interfaces virtuelles. Où enp0.0 est sur 10.3.1.0/24 et enp0.1 est sur 10.0.1.0/24. Ainsi, vous pouvez utiliser 10.3.1.0/24 comme "réseau de routage".

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X