Installation de Xorp sur Linux

Date: 23/11/2007 | Catégories: Open-source,Reseau | Tags:

Xorp logo Xorp est une couche de routage réseau open-source... Distribuée sous licence BSD, il implémente des mécanismes de routage IPv4 et IPv6 en unicast et multicast. Le principal avantage de Xorp est sa modularité qui permet de tester simplement de nouveaux protocoles de routage mettant souvent un certain temps avant d'être intégrés dans les noyaux Linux ou BSD.

Actuellement, Xorp supporte les protocoles de routage suivants:

  • Unicast:
    • RIP v2 en IPv4, ng en IPv6
    • BPG en IPv4 et IPv6
    • OSPF v2 et V3 en IPv4 et IPv6
  • Multicast:
    • PIM-SM IPv4 et IPv6
    • IGMP v1,v2,v3 en IPv4
    • MLD v1 et v2 en IPv6

Xorp est disponible sous BSD (FreeBSD, OpenBSD, NetBSD, Mac OS X) et Linux. Il existe même des portages sous Windows 2003 server mais seulement avec une compatibilité IPv4.

Nous allons dans ce premier billet sur le sujet installer Xorp sur une distribution Linux Ubuntu et mettre en place une configuration basique.

Installation de Xorp depuis les sources

J'ai choisi cette méthode car même si ce n'est pas la plus facile, elle permet de disposer de la dernière version disponible de Xorp.

# export CVSROOT=":pserver:xorpcvs@anoncvs.xorp.org:/cvs"
# cvs login
- entrer un mot de passe vide
# cvs checkout xorp
# cd xorp
# ./configure
# make

PS: sur d'autres distribution (Linux ou BSD), il faut utiliser gmake à la place de make.

Validation de l'installation:

# make check
- Attention, ce test dure un long moment...

Configuration initiale

Nous allons dans un premier temps configurer Xorp avec une configuration très simple: la déclaration de deux interfaces réseaux. La première (eth0 dans mon cas) récupèrera sa configuration depuis le système (grâce à la commande default-system-config). La deuxième (eth1) est configurée de manière statique avec l'adresse 192.168.0.1.

# cd rtrmgr
# vi config.boot
interfaces {
interface eth0 {
disable: false
default-system-config
}
interface eth1 {
disable: false
vif eth1 {
address 192.168.0.1 {
prefix-length: 24
}
}
}
}

Lancement de xorp

# sudo ./xorp_rtrmgr

Pour accèder au shell (CLI) de Xorp:

# ./xorpsh

On vérifie alors que Xorp à bien pris en compte notre configuration des deux interfaces avec la commande suivante:

/> show interfaces
eth0/eth0: Flags: mtu 1500
inet6 fe80::204:75ff:fefe:68a3 prefixlen 64
inet 192.168.29.125 subnet 192.168.29.0/24 broadcast 192.168.29.255
physical index 3
ether 0:4:75:fe:68:a3
eth1/eth1: Flags: mtu 1500
inet 192.168.0.1 subnet 192.168.0.0/24 broadcast 192.168.0.255
physical index 2
ether 0:f:fe:77:2a:8b

Ajout d'une route statique

Pour ajouter une route statique dans Xorp, rien de plus simple:

# vi config.boot
...
static {
route 10.20.0.0/16 {
next-hop: 10.10.10.20
metric: 1
}
}

Dans cet exemple on dit à Xorp que pour joindre le réseau 10.20.0.0/16, il doit utiliser la passerelle 10.10.10.20.

Et maintenant on ajoute le routage

Pour ajouter un routage unicast IPv4 entre ces deux interfaces, il faut éditer le fichier de configuration et y ajouter:

# vi config.boot
...
fea {
unicast-forwarding4 {
disable: false
}
}

Et le multicast et les protocoles de routage dynamiques dans tout ça ? la suite dans un prochain épisode...

Partager ce billet