RFC 3378 EtherIP avec FreeBSD

J'ai écrit ce guide pour partager avec le monde comment utiliser la RFC 3378 pour relier deux réseaux au niveau Ethernet sur un réseau IP routé - d'autant plus qu'il semble que ce sera le seul guide sur Internet expliquant comment faire cela!


Contexte

Je travaille pour le service national de santé d'un gouvernement local avec plus de 35 sites couvrant les services de santé et les services sociaux.

La plupart de ces sites sont sur l'île où des communications directes (fournies par la société de télécommunications locale) existent sous forme de liaisons WAN entre notre site principal et ces sites satellites. Un site se trouve sur une autre île et notre connexion à celui-ci passe par l'infrastructure WAN du gouvernement central et, par conséquent, nous n'avons aucun contrôle direct sur les liaisons intermédiaires. En termes simples: nous acheminons l'IP hors de notre routeur permitateur et il arrive au routeur de notre site distant dans leur réseau. Ce qui se passe entre les deux est une série de sauts et de transitions à partir de liaisons par fibre optique, cuivre et radio.

Indépendamment de cela, un déploiement sans fil avait déjà été effectué sur le site principal de l'hôpital et utilisait des VLAN pour séparer les SSID du personnel (privé) et des patients (public) aux points d'accès en pare-feu séparés..

Exigence

L'hôpital de l'île voisine devait être mis à jour pour inclure la même solution sans fil que celle mise en œuvre localement. La fourniture de câblage, d'injecteurs de puissance et de points d'accès sans fil ne serait pas un problème. Un câblier avait déployé un nouvel Ethernet autour du bâtiment. Le budget pour les points d'accès et les adaptateurs PoE est approuvé et les articles achetés.

Problème

Le problème était de ramener les canaux sans fil privés et patients vers le site central. Nous pourrions créer de nouveaux sous-réseaux, mais ceux-ci convergeraient au niveau du routeur et traverseraient les différents tronçons sur le chemin du retour vers notre réseau central. Cependant, cela signifierait que les données «sales» du patient sans fil traverseraient les données «propres» de notre réseau et représentaient un risque énorme. Nous avions déjà éliminé ces risques en implémentant la séparation des VLAN sur le réseau central, si seulement il y avait un moyen de faire passer les VLAN sur un réseau routé IP. Malheureusement, les routeurs bloquent le trafic dit de «couche 2» et les VLAN ne peuvent donc pas passer par un autre réseau.

De plus, nous devions éviter d'avoir besoin de l'assistance des services du réseau du gouvernement central, car ils avaient un contrôle des changements beaucoup plus strict et un plus grand niveau de beauroucracies… mais moins en ont dit!

Solution

Une norme Internet a récemment vu le jour, publiée sous le code RFC 3378, et mieux connue sous le nom d'EtherIP, qui fournit la solution parfaite à nos exigences - celle de relier deux réseaux Ethernet ensemble couvrant une liaison de routeur IP.

Heureusement, EtherIP est disponible dans la plupart des systèmes d'exploitation open source, y compris FreeBSD dont j'ai beaucoup de connaissances en administration.

la mise en oeuvre

Vous aurez besoin de deux ordinateurs, un de chaque côté de la liaison étendue et les deux auront besoin de deux cartes réseau. L'une des cartes réseau se connecte au réseau local comme le ferait un ordinateur normal, avec une adresse IP adaptée au sous-réseau dans lequel il se trouve. L'autre carte réseau est connectée au port de jonction d'un commutateur (dans mon cas, un Cisco) et est ce qui capture le trafic réseau au niveau Ethernet.

J'ai fait une installation de base de FreeBSD; il n’est même pas nécessaire de télécharger les ports.

L'ordinateur 1 (sur le site local) avait une carte Intel EtherExpress fxp0 avec l'adresse IP 10.1.1.20 et em0 utilisée pour le port Ethernet.

L'ordinateur 2 (sur le site remtoe) avait une carte Broadcom bge0 avec l'adresse IP 10.15.1.20 et em0 utilisée pour le port Ethernet.

FreeBSD possède une interface réseau virtuelle appelée «gif» qui crée un tunnel Etherhet entre deux points d'extrémité. Une interface réseau gif0 est créée sur les deux ordinateurs et les relie entre eux via une liaison IP routée. Un autre périphérique réseau virtuel est créé, appelé «pont», qui peut couvrir le trafic réseau entre des interfaces réseau similaires, généralement Ethernet. Le périphérique réseau bridge0 est configuré pour combiner les interfaces réseau gif0 et em0 ensemble. Cela permet aux données Ethernet passant dans em0 de passer sur le gif0 et (après avoir traversé la liaison IP routée) sur le gif0 de l'ordinateur distant et plus loin sur l'interface réseau em0 de cet ordinateur et enfin dans le réseau là-bas.

Cela peut sembler plus compliqué qu'il ne l'est vraiment! Un diagramme textuel ressemblerait à ceci:

Réseau - (Trunk Port) - em0 - gif0 - fxp0 - routeur - Routed IP link - router - bge0 - gif0 - em0 - (Trunk Port) - Network

Configuration

Sur le commutateur Cisco, configurez une interface en mode jonction:

interface FastEthernet0 / 24
description Lien: EtherIP
switchport trunk élagage vlan aucun
tronc en mode switchport
fin

Il s'agit du port auquel l'em0 (sur mes systèmes informatiques) se connectera. La même chose a été faite sur le commutateur à distance également pour les em0 respectifs de l'autre ordinateur.

Si vous utilisez un périphérique non Cisco, vous devrez activer la jonction à l'aide des méthodes spécifiques au fournisseur.

Sur l'ordinateur 1, configurez FreeBSD comme suit dans le fichier /etc/rc.conf:

# - deltas générés par sysinstall - # lun 31 jan 12:09:47 2011
# Créé: lun. 31 janv.12: 09: 47 2011
# Activer les démons réseau pour la commodité de l'utilisateur.
# Veuillez apporter toutes les modifications à ce fichier, pas à /etc/defaults/rc.conf.
# Ce fichier contient désormais uniquement les remplacements de /etc/defaults/rc.conf.
defaultrouter = ”10.1.1.1 ″
hostname = "etherip01.mydomain.com"
ifconfig_fxp0 = ”inet 10.1.1.20 netmask 255.255.0.0 ″

# Configuration EtherIP
cloned_interfaces = ”gif0 bridge0 ″
ifconfig_gif0 = ”tunnel mtu 1500 10.1.1.20 10.15.1.20 up”
ifconfig_bridge0 = "addm em0 addm gif0 up"
ifconfig_em0 = ”up”
################

keymap = "uk.iso"
sshd_enable = "OUI"

Sur l'ordinateur 2:

# - deltas générés par sysinstall - # jeu 3 fév 11:20:45 2011
# Créé: jeu 3 fév 11:20:45 2011
# Activer les démons réseau pour la commodité de l'utilisateur.
# Veuillez apporter toutes les modifications à ce fichier, pas à /etc/defaults/rc.conf.
# Ce fichier contient désormais uniquement les remplacements de /etc/defaults/rc.conf.
defaultrouter = ”10.15.1.1 ″
hostname = "etherip02.mydomain.com"
ifconfig_bge0 = ”inet 10.15.1.20 netmask 255.255.0.0 ″

# Configuration EtherIP
cloned_interfaces = ”gif0 bridge0 ″
ifconfig_gif0 = ”tunnel mtu 1500 10.15.1.20 10.1.1.20 up”
ifconfig_bridge0 = "addm em0 addm gif0 up"
ifconfig_em0 = ”up”
################

keymap = "uk.iso"
sshd_enable = "OUI"

Notez que les adresses IP du tunnel gif0 sont inversées entre l'ordinateur 1 et l'ordinateur 2. Ces adresses IP sont celles de l'interface réseau locale. Les ordinateurs FreeBSD dans mon cas n'agissaient pas comme des routeurs de périmètre mais ils pouvaient tout aussi bien être avec une troisième carte réseau. Je n'avais pas besoin de cette complexité supplémentaire car le routage IP était déjà disponible dans les réseaux de santé et du gouvernement central.

Résultats

Le commutateur sur le site distant a été configuré pour être un client VTP et a immédiatement rejoint le domaine VLAN du réseau central (une notion Cisco, non liée à Microsoft) et l'émission de la commande «show vlan» »a révélé que tous les VLAN du réseau central s'étaient propagés. De plus, l'émission de la commande «show cdp voisins» a révélé que les commutateurs central et distant pouvaient se voir comme s'ils étaient connectés directement les uns aux autres..

J'espère que ce guide pourra être utile à tous ceux qui ont vidé Google de ses recherches (je sais, j'ai essayé aussi!). La nécessité est vraiment la Mère de tout comprendre par vous-même… et maintenant, vous n'avez pas besoin de!

Je peux être contacté de différentes manières détaillées sur ma page Contact.

Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me