Les interfaces réseaux sous FreeBSD

Configuration avancée des interfaces réseaux sous FreeBSD

Depuis aussi longtemps que Linux et FreeBSD existent, il y a des querelles afin de savoir lequel des deux systèmes est le meilleur. Et chacun a ses arguments pour démonter le système de son adversaire. Pour FreeBSD, par exemple, on entend souvent que ce n'est pas un système propre (comme Linux), car, par exemple, les cartes réseaux sont nommées de façon liée au matériel (plus exactement au pilote du matériel) et non pas, comme sous Linux, par un nom générique virtuel (eth0, eth1, ...).

Nous allons voir pourquoi la philosophie de nommage des périphériques sous FreeBSD est différente de Linux et surtout nous allons toucher du doigts les capacités et la versatilité de FreeBSD (sans chercher à remettre en question celles de Linux). A chacun ensuite de juger.

Renommer une interface

Par défaut, FreeBSD nomme les interfaces réseaux en fonction du pilote utilisé, ce qui peut donner des noms étranges comme fxp1, vr0, etc.

Si vous voulez un nom plus joli, ou simplement donner un nom plus générique ou plus compatible avec ce qu'on a l'habitude de voir sous Linux, rien de plus simple. Il suffit pour cela de renommer l'interface avec ifconfig et l'option name de la façon suivante :

ifconfig vr0 name eth0

Bien entendu, ce changement n'est que temporaire, tant que la machine n'est pas redémarrée. Pour conserver ces caractéristiques, il faut ajouter ces modifications dans le /etc/rc.conf :

ifconfig_vr0_name="eth0"

Vous pouvez ensuite utiliser cette nouvelle interface exactement comme une autre (dans le rc.conf, les scripts, etc.)

Plusieurs adresses IP sur une seule interface

Par défaut, à une interface réseau correspond une adresse IP. Mais il est parfois nécessaire de posséder plusieurs adresses IP pour une seule interface. dans le cas de processus encapsulés ou sécurisé (prisons, etc.)

Pour cela, il faut créer des aliases, rien de plus simple :

ifconfig vr0 alias 192.168.0.52

En plus de recevoir des flux habituels sur son adresse par défaut, l'interface va récupérer aussi ce qui est destiné à 192.168.0.52.

On peut créer plusieurs aliases sur une même interface. Ces modifications n'étant que temporaires, il faut les fixer dans /etc/rc.conf :

ifconfig_vr0_alias0="192.168.0.52"
ifconfig_vr0_alias1="192.168.0.53"
…

Plusieurs interfaces sur une seule adresse IP

Il arrive parfois que plusieurs interface réseau soient disponibles sur une même machine. On peut conserver la configuration par défaut, mais il peut parfois être intéressant de communiquer sur toutes les interfaces par une seule adresse, notamment lorsqu'on veut améliorer le débit. Le débit obtenu est alors la somme des débits disponibles sur les interfaces, pour une seule IP. Il s'agit de clonage d'interface.

Pour cela, il faut créer une interface virtuelle grâce à lagg :

Tout d'abord, déclarons dans /etc/rc.conf une interface clonée :

cloned_interfaces="lagg0"

Puis, activons les interfaces réseaux :

ifconfig_vr0="up"
>ifconfig_vr1="up"

Et finissons par créer l'interface virtuelle :

ifconfig_lagg0="laggproto lacp laggport vr0 laggport vr1 192.168.0.52 netmask 255.255.255.0"

Avec :

  • laggproto : définition du protocole. ici lacp, un protocole permettant une haute disponibilité réseau (itinérance, etc.).

  • laggport : définition de l'interface. Ajouter autant de fois qu'il y a d'interface à utiliser.

Le reste étant noté de façon habituelle : IP + masque.