diff --git a/fr_FR.ISO8859-1/books/handbook/advanced-networking/chapter.sgml b/fr_FR.ISO8859-1/books/handbook/advanced-networking/chapter.sgml index dce1e653a0..fef3a52323 100644 --- a/fr_FR.ISO8859-1/books/handbook/advanced-networking/chapter.sgml +++ b/fr_FR.ISO8859-1/books/handbook/advanced-networking/chapter.sgml @@ -1,5106 +1,5106 @@ Administration réseau avancée &trans.a.fonvieille; Synopsis Ce chapitre abordera certains nombre de sujets réseau avancés. Après la lecture de ce chapitre, vous connaîtrez: Les bases sur les passerelles et les routes. Comment configurer les périphériques IEEE 802.11 et &bluetooth;. Comment utiliser &os; en tant que pont (“bridge”). Comment configurer le démarrage via le réseau pour une machine sans disque dur. Comment configurer la translation d'adresse réseau. Comment connecter deux ordinateurs via PLIP. Comment configurer l'IPv6 sur une machine &os;. Comment configurer ATM. Avant de lire ce chapitre, vous devrez: Comprendre les bases des procédures /etc/rc. Etre familier avec la terminologie réseau de base. Savoir comment configurer et installer un nouveau noyau &os; (). Savoir comment installer des logiciels tierce-partie (). Coranth Gryphon Contribution de Passerelles et routes routage passerelles sous-réseau Pour qu'une machine soit en mesure d'en contacter une autre, il faut que soit mis en place un mécanisme qui décrive comment aller de l'une à l'autre. C'est ce que l'on appelle le routage. Une “route” est définie par une paire d'adresses: une “destination” et une “passerelle”. Cette paire signifie que pour atteindre cette destination, vous devez passer par cette passerelle. Il y a trois sortes de destination: les machines individuelles, les sous-réseaux, et “default”—la destination par défaut. La route par défaut (“default route”) est utilisée lorsqu'aucune autre route n'est applicable. Nous parlerons un peu plus des routes par défaut par la suite. Il existe également trois sortes de passerelles: les machines individuelles, les interfaces (aussi appelées “liens”), et les adresses Ethernet matérielles (adresses MAC). Un exemple Pour illustrer différents aspects du routage, nous utiliserons l'exemple suivant, qui est produit par la commande netstat: &prompt.user; netstat -r Routing tables Destination Gateway Flags Refs Use Netif Expire default outside-gw UGSc 37 418 ppp0 localhost localhost UH 0 181 lo0 test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77 10.20.30.255 link#1 UHLW 1 2421 example.com link#1 UC 0 0 host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0 host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 => host2.example.com link#1 UC 0 0 224 link#1 UC 0 0 route par défaut Les deux premières lignes définissent la route par défaut (dont nous parlerons dans la section suivante) et la route localhost. interface en boucle L'interface (colonne Netif) qu'il est indiqué d'utiliser pour localhost est lo0, aussi appelée interface “loopback”—en boucle. Ce qui veut dire que tout le trafic vers cette destination doit rester interne, au lieu d'être envoyé sur le réseau local, puisqu'il reviendra de toute façon à son point de départ. Ethernet adresse MAC Ce qui se remarque ensuite, ce sont les adresses commençant par 0:e0:. Ce sont les adresses Ethernet matérielles, qui sont également connues sous le nom d'adresses MAC. &os; reconnaîtra automatiquement toute machine (test0 dans l'exemple) sur le réseau local Ethernet et ajoutera une route vers cette machine, directement via l'interface Ethernet ed0. Il y a aussi un délai (colonne Expire) associé à ce type de route, qui est utilisé si l'on entend plus parler de cette machine pendant un laps de temps précis. Quand cela arrive, la route vers cette machine est automatiquement supprimée. Ces machines sont identifiées par un mécanisme appelé RIP (“Routing Information Protocol”—protocole d'information de routage), qui met en place des routes vers les machines locales en déterminant le chemin le plus court. sous-réseau &os; ajoutera également des routes de sous-réseau pour le sous-réseau local (10.20.30.255 est l'adresse de diffusion pour le sous-réseau 10.20.30, et example.com est le nom de domaine associé à ce sous-réseau). La dénomination link#1 fait référence à la première carte Ethernet de la machine. Vous constaterez qu'il n'y a pas d'autre interface associée à ces routes. Ces deux types de routes (vers les machines du réseau local et les sous-réseaux locaux) sont automatiquement configurés par un “daemon” appelé routed. S'il ne tourne pas, alors seules les routes définies comme statiques (i.e. explicitement définies) existeront. La ligne host1 fait référence à votre machine, qui est identifiée par l'adresse Ethernet. Puisque nous sommes l'émetteur, &os; sait qu'il faut utiliser l'interface en “boucle” (lo0) plutôt que d'envoyer les données sur l'interface Ethernet. Les deux lignes host2 montrent ce qui se passe quand on utilise un alias avec &man.ifconfig.8; (lisez la section sur l'Ethernet pour savoir pour quelles raisons on peut vouloir cela). Le symbole => qui suit l'interface lo0 indique que non seulement nous utilisons l'interface en “boucle” (puisque cette adresse correspond également à la machine locale), mais que c'est plus spécifiquement un alias. Ce type de route n'apparaît que sur la machine pour laquelle est défini l'alias; sur toutes les autres machines du réseau local il n'y aura q'une ligne link#1 pour cette machine. La dernière ligne (le sous-réseau destinataire 224) concerne le multicasting (diffusion pour plusieurs destinataires), qui sera abordé dans une autre section. Et enfin, diverses caractéristiques de chaque route sont indiquées dans la colonne Flags (indicateurs). Ci-dessous, une courte table présente certains de ces indicateurs et leur signification: U Active (“Up”): la route est active. H Machine (“Host”): la destination de la route est une machine. G Passerelle (“Gateway”): envoyer tout ce qui concerne cette destination sur la machine distante indiquée, qui déterminera à qui transmettre ensuite. S Statique (“Static”): cette route a été configurée manuellement et non pas générée automatiquement par le système. C Clone: génère une nouvelle route sur la base de celle-ci pour les machines auxquelles nous nous connectons. Ce type de route est normalement utilisé pour les réseaux locaux. W Clonée (“WasCloned”): cette route a été auto-configurée (Clone) à partir d'une route pour le réseau local. L Lien (“Link”): la route fait référence à une adresse matérielle Ethernet. Routes par défaut route par défaut Quand le système local doit établir une connexion avec une machine distante, il consulte la table de routage pour voir s'il existe déjà une route connue. Si la machine distante appartient à un sous-réseau auquel le système sait se connecter (routes clonées), alors le système vérifie s'il peut se connecter via cette interface. Si toutes les routes connues échouent, il reste alors au système une dernière option: la route par “défaut”. Cette route est un type particulier de route passerelle (c'est généralement la seule du système), et est toujours marquée avec un c dans le champ des indicateurs. Pour les machines du réseau local, cette passerelle est définie avec la machine qui est directement connectée au monde extérieur (que ce soit par une liaison PPP, DSL, cable, T1, ou toute autre interface réseau). Si vous configurez la route par défaut sur une machine qui fonctionne comme passerelle vers le monde extérieur, alors la route par défaut sera la passerelle de votre Fournisseur d'Accès à Internet (FAI). Examinons un exemple de route par défaut. Voici une configuration classique: [Local2] <--ether--> [Local1] <--PPP--> [FAI-Serv] <--ether--> [T1-GW] Les machines Local1 et Local2 sont sur votre site. Local1 est connectée au serveur du FAI via une liaison PPP par modem. Ce serveur PPP est connecté par l'intermédiaire d'un réseau local à un autre ordinateur passerelle relié au point d'entrée Internet du FAI. Les routes par défaut sur chacune de vos machines seront: Machine Passerelle par défaut Interface Local2 Local1 Ethernet Local1 T1-GW PPP Une question qui revient souvent est “Pourquoi (ou comment) définir T1-GW comme passerelle par défaut pour Local1, plutôt que le serveur du FAI auquel elle est connectée?“. Rappelez-vous, puisque l'interface PPP utilise, de votre côté de la connexion, une adresse IP du réseau local du FAI, les routes vers toute autre machine du réseau local du FAI seront automatiquement générées. Par conséquent vous savez déjà comment atteindre la machine T1-GW, il n'y a donc pas besoin d'étape intermédiaire qui passe par le serveur du FAI. Il est habituel d'attribuer l'adresse X.X.X.1 à la passerelle sur votre réseau local. Donc (dans notre exemple), si votre espace d'adresse de classe C local était 10.20.30 et que votre FAI utilisait l'espace 10.9.9, alors les routes par défaut seraient: Machine Route par défaut Local2 (10.20.30.2) Local1 (10.20.30.1) Local1 (10.20.30.1, 10.9.9.30) T1-GW (10.9.9.1) Vous pouvez aisément définir la route par défaut via le fichier /etc/rc.conf. Dans notre exemple, sur la machine Local2, nous avons ajouté la ligne suivante dans /etc/rc.conf: defaultrouter="10.20.30.1" Il est également possible de faire directement cela à partir de la ligne de commande avec la commande &man.route.8;: &prompt.root; route add default 10.20.30.1 Pour plus d'informations sur la manipulation à la main des tables de routage réseau, consultez la page de manuel &man.route.8;. Machines sur deux réseaux machines sur deux réseaux Il y a un autre type de configuration dont il faut parler, c'est celle d'une machine qui est connectée à deux réseaux différents. Techniquement, toute machine servant de passerelle (comme dans l'exemple ci-dessus, en utilisant une connexion PPP) est une machine sur deux réseaux. Mais ce terme n'est normalement utilisé que pour faire référence à une machine qui est sur deux réseaux locaux différents. Selon le cas, la machine dispose de deux cartes Ethernet, ayant chacune une adresse sur des sous-réseaux séparés. Alternativement, la machine peut ne disposer que d'une seule carte Ethernet, et utiliser des alias - avec &man.ifconfig.8;. Le permier cas correspond à + avec &man.ifconfig.8;. Le premier cas correspond à l'utilisation de deux réseaux Ethernet physiquement séparés, le deuxième cas est employé s'il n'y a qu'un seul réseau physique mais deux sous-réseaux logiquement distincts. Dans les deux cas, les tables de routage sont définies de telle sorte que chaque sous-réseau sache que cette machine est la passerelle (route entrante) vers l'autre sous-réseau. Cette configuration, où la machine sert de routeur entre les deux sous-réseaux, est souvent utilisée quand il faut mettre en place un dispositif de sécurité: filtrage de paquets ou coupe-feu, dans l'une ou dans les deux directions. Si vous voulez que cette machine transmette réellement les paquets entre les deux interfaces, vous devez demander à &os; d'activer cette fonctionnalité. Lisez la section suivante pour plus de détails sur comment faire cela. Mettre en place un routeur routeur Un routeur est un système qui transmet les paquets d'une interface à une autre. Les standards de l'Internet et de bons principes d'ingénierie empêchent le projet &os; d'activer cette fonction par défaut sous &os;. Vous pouvez l'activer en positionnant à YES la variable suivante du fichier &man.rc.conf.5;: gateway_enable=YES # Set to YES if this host will be a gateway Cette option fixera la variable &man.sysctl.8; net.inet.ip.forwarding à la valeur 1. Si vous devez arrêter temporairement le routage, vous pouvez positionner la variable momentanément à 0. Votre nouveau routeur aura besoin de route pour savoir où envoyer le trafic. Si votre réseau est suffisamment simple vous pouvez utiliser des routes statiques. &os; est également fourni avec le “daemon” de routage BSD standard &man.routed.8;, qui comprend et utilise les protocoles RIP (version 1 est 2) et IRDP. Le support de BGP v4, OSPF v2, et d'autres protocoles de routage sophistiqué est disponible avec le logiciel net/zebra. Des produits commerciaux comme &gated; sont également disponibles comme solutions avancées de routage. BGP RIP OSPF Al Hoang Contribution de Configurarion des routes statiques Configuration manuelle Supposons que nous avons un réseau comme celui-ci: INTERNET | (10.0.0.1/24) Routeur Internet | |Interface xl0 |10.0.0.10/24 +------+ | | RouteurA | | (passerelle FreeBSD) +------+ | Interface xl1 | 192.168.1.1/24 | +--------------------------------+ Réseau interne 1 | 192.168.1.2/24 | +------+ | | RouteurB | | +------+ | 192.168.2.1/24 | Réseau interne 2 Dans ce scénario, RouteurA est notre machine &os; qui joue le rôle de routeur pour l'Internet. Elle a une route par défaut vers 10.0.0.1 qui permet de se connecter au reste du monde extérieur. Nous supposerons que la machine RouteurB est correctement configurée et sait comment transmettre vers n'importe quelle destination (D'après notre schéma c'est relativement simple. Ajoutez juste une route par - défaut sur RouterB en utilisant + défaut sur RouteurB en utilisant 192.168.1.1 comme passerelle). Si nous regardons la table de routage de RouteurA nous verrions quelque chose comme: &prompt.user; netstat -nr Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire default 10.0.0.1 UGS 0 49378 xl0 127.0.0.1 127.0.0.1 UH 0 6 lo0 10.0.0/24 link#1 UC 0 0 xl0 192.168.1/24 link#2 UC 0 0 xl1 Avec la table de routage actuelle, - RouterA ne sera pas en mesure d'atteindre + RouteurA ne sera pas en mesure d'atteindre notre réseau interne 2. Elle ne dispose pas de route pour 192.168.2.0/24. Une manière de résoudre cela est d'ajouter manuellement la route. La commande suivante ajouterait le réseau interne 2 à la table de routage de - RouterA en utilisant RouteurA en utilisant 192.168.1.2 comme point intermédiaire: &prompt.root; route add -net 192.168.2.0/24 192.168.1.2 Maintenant RouteurA peut joindre n'importe quelle machine du réseau 192.168.2.0/24. Configuration persistante L'exemple précédent est parfait pour configurer une route statique sur un système en fonctionnement. Cependant, le problème est que l'information de routage ne sera pas conservée si vous redémarrez votre machine &os;. L'addition d'une route statique doit se faire dans votre fichier /etc/rc.conf: # Add Internal Net 2 as a static route static_routes="internalnet2" route_internalnet2="-net 192.168.2.0/24 192.168.1.2" La variable static_routes est une liste de chaîne de caractères séparées par une espace. Chaque chaîne fait référence à un nom de route. Dans notre exemple nous avons qu'une seule chaîne dans static_routes. Cette chaîne est internalnet2. Nous ajoutons ensuite une variable de configuration appelée route_internalnet2 dans laquelle nous mettons tous les paramètres de configuration que nous passerions à la commande &man.route.8;. Pour nous exemple précédent nous aurions utilisé la commande: &prompt.root; route add -net 192.168.2.0/24 192.168.1.2 nous avons donc besoin de "-net 192.168.2.0/24 192.168.1.2". Comme cela a été précisé, nous pouvons avoir plus d'une chaîne dans la variable static_routes. Cela nous permet de créer plusieurs routes statiques. Les lignes suivantes donnent un exemple d'ajout de routes statiques pour les réseaux 192.168.0.0/24 et 192.168.1.0/24 sur un routeur imaginaire: static_routes="net1 net2" route_net1="-net 192.168.0.0/24 192.168.0.1" route_net2="-net 192.168.1.0/24 192.168.1.1" Propagation de route propagation de route Nous avons déjà expliqué comment définir nos routes vers le monde extérieur, mais pas comment le monde extérieur apprend à nous localiser. Nous savons déjà que les tables de routages peuvent être renseignées pour que tout le trafic pour un espace d'adresses donné (dans nos exemples, un sous-réseau de classe C) soit envoyé à une machine précise de ce réseau, qui transmettra les paquets entrants. Lorsqu'il attribue un espace d'adresses à votre site, votre fournisseur d'accès définira ses tables de routage de sorte que tout le trafic destiné à votre sous-réseau vous soit envoyé sur votre liaison PPP. Mais comment les sites à l'autre bout du pays savent-ils qu'ils doivent passer par votre fournisseur d'accès? Il existe un mécanisme (assez semblable au système d'information distribué du DNS) qui conserve un enregistrement de tous les espaces d'adresses affectés, et définit leur point de connexion à la dorsale Internet (“backbone”). La “dorsale” comprend les liaisons principales qui véhiculent le trafic Internet à travers le pays et le monde entier. Chaque machine de la dorsale dispose d'une copie de l'ensemble des tables maîtresses qui aiguillent le trafic pour un réseau donné vers le transporteur correspondant de la dorsale, et de là par l'intermédiaire de fournisseurs d'accès successifs, jusqu'à atteindre votre réseau. C'est le rôle de votre fournisseur d'accès d'annoncer aux sites de la dorsale qu'il est le point de connexion (et par conséquent la route entrante) pour votre site. C'est ce que l'on appelle la propagation de route. En cas de problème traceroute Il se peut qu'il y ait parfois un problème avec la propagation de route et que certains sites ne puissent vous atteindre. La commande probablement la plus utile pour déterminer où une route est défaillante est la commande &man.traceroute.8;. Elle est également utile si vous n'arrivez pas à vous connecter à une machine distante (i.e. lorsque &man.ping.8; échoue). La commande &man.traceroute.8; prend comme paramètre le nom de la machine distante avec laquelle vous essayez d'établir une connexion. Elle vous donnera la liste de passerelles intermédiaires jusqu'à la machine cible, ou jusqu'à ce qu'il n'y ait plus de connexion. Pour plus d'informations, consultez la page de manuel de &man.traceroute.8;. Routage multicast routage multicast options du noyau MROUTING &os; supporte nativement les applications et le routage multicast (diffusion pour plusieurs destinataires). Les applications multicast ne nécessitent pas de configuration spécifique de &os;, généralement, elles fonctionneront directement. Le routage multicast demande à ce que le support soit compilé dans le noyau: options MROUTING De plus, le “daemon” de routage multicast, &man.mrouted.8; doit être configuré par l'intermédiaire du fichier /etc/mrouted.conf pour mettre en place des tunnels et le protocole DVMRP. Plus de détails sur la configuration du routage multicast peuvent être trouvés dans la page de manuel de &man.mrouted.8;. Eric Anderson Ecrit par Réseau sans fil réseau sans fil 802.11 réseau sans fil Introduction Il peut être très utile de pouvoir utiliser un micro-ordinateur sans le désagrément d'être constamment relié à un câble réseau. &os; peut être utilisé comme client sans fil, et même comme “point d'accès” sans fil. Modes de fonctionnement des systèmes sans fils Il existe deux manières différentes de configurer les périphériques sans fil 802.11: les modes BSS et IBSS. Mode BSS Le mode BSS est le mode généralement utilisé. Le mode BSS est également appelé mode infrastructure. Dans ce mode, plusieurs points d'accès sans fils sont connectés à un réseau câblé. Chaque réseau sans fil possède son propre nom. Ce nom est ce que l'on appelle le “SSID” du réseau. Les clients sans fils se connectent à ces points d'accès sans fils. La norme IEEE 802.11 définie le protocole que les réseaux sans fils utilisent pour les connexions. Un client sans fil peut être attaché à un réseau particulier quand un SSID est fixé. Un client peut s'attacher à n'importe quel réseau en ne définissant pas explicitement de SSID. Mode IBSS Le mode IBSS, également appelé mode “ad-hoc”, est conçu pour les connexions point à point. Il existe en fait deux types de mode ad-hoc. Le premier est le mode IBSS, également appelé mode ad-hoc ou IEEE ad-hoc. Ce mode est défini par les normes IEEE 802.11. Le deuxième mode est appelé ad-hoc démo ou encore mode ad-hoc Lucent (et parfois, ce qui prête à confusion, mode ad-hoc). C'est l'ancien mode ad-hoc pré-standard 802.11 et ne devrait être utilisé qu'avec d'anciennes installations. Nous ne parlerons pas des modes ad-hoc dans ce qui suit. Mode infrastructure Points d'accès Un point d'accès est un périphérique sans fil qui permet à un ou plusieurs clients sans fils d'utiliser ce périphérique comme un hub. Quand ils utilisent un point d'accès, tous les clients communiquent par l'intermédiaire de ce point d'accès. Plusieurs points d'accès sont souvent utilisés pour couvrir l'intégralité d'une zone géographique comme une maison, une entreprise, ou un parc avec un réseau sans fil. Les points d'accès ont généralement plusieurs connexions réseaux: la carte réseaux sans fil, et une ou plusieurs cartes réseaux Ethernet pour les connexions avec le reste du réseau. Les points d'accès peuvent être achetés tout fait, ou vous pouvez construire le votre avec &os; et une carte réseau sans fil supportée. De nombreux constructeurs proposent des points d'accès et des cartes réseaux sans fils avec diverses fonctionnalités. Construire un point d'accès avec &os; réseau sans fil point d'accès Pré-requis En vue de mettre en place un point d'accès sans fil sous &os;, vous avez besoin d'une carte réseau sans fil compatible. Actuellement seule les cartes basées sur le circuit Prism sont supportées. Vous aurez également besoin d'une carte réseau câblée supportée par &os; (cela ne devrait pas être difficile à trouver, &os; supporte de nombreuses cartes). Dans le cadre de cette section, nous supposerons que le trafic passera par un pont entre la carte sans fil et le réseau relié à la carte réseau classique. Le mode point d'accès implémenté par &os; fonctionne mieux avec certaines versions de firmware. Les cartes utilisant un circuit Prism 2 devraient utiliser un firmware 1.3.4 ou plus récent. Les cartes Prism 2.5 et Prism 3 devraient utiliser la version 1.4.9. Des versions de firmware plus anciennes pourront ne pas fonctionner correctement. Actuellement, la seule manière de mettre à jour vos cartes est d'utiliser les outils de mise à jour du firmware pour &windows; disponibles auprès du constructeur de votre carte. Configuration Assurez-vous tout d'abord que votre système voit la carte réseau sans fil: &prompt.root; ifconfig -a wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7 inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255 ether 00:09:2d:2d:c9:50 media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps) status: no carrier ssid "" stationname "FreeBSD Wireless node" channel 10 authmode OPEN powersavemode OFF powersavesleep 100 wepmode OFF weptxkey 1 Ne vous préoccupez pas des détails, verifiez juste que s'affiche quelque chose qui vous indique qu'une carte réseau sans fil est installée. Si vous avez des problèmes à voir l'interface réseau sans fil correspondante, et que vous utilisez une carte de type PC Card, vous devriez consultez les pages de manuel &man.pccardc.8; et &man.pccardd.8; pour plus d'information. Ensuite, vous devrez charger un module afin de mettre en place la partie de &os; faisant office de pont pour le point d'accès. Pour charger le module &man.bridge.4;, exécutez la commande suivante: &prompt.root; kldload bridge Vous ne devriez pas voir apparaître de message d'erreur lors du chargement du module. Si ce n'est pas le cas, vous devrez peut-être compiler le support &man.bridge.4; dans votre noyau. La section sur le Bridging de ce manuel devrait pouvoir vous aider dans cette tâche. Maintenant que cette partie est assurée, nous devons dire à &os; entre quelles interface le pont doit être installé. Nous effectuons cette configuration en utilisant &man.sysctl.8;: &prompt.root; sysctl net.link.ether.bridge.enable=1 &prompt.root; sysctl net.link.ether.bridge.config="wi0 xl0" &prompt.root; sysctl net.inet.ip.forwarding=1 Sous les versions antérieures à la 5.2, vous devez utiliser à la place les options suivantes: &prompt.root; sysctl net.link.ether.bridge=1 &prompt.root; sysctl net.link.ether.bridge_cfg="wi0,xl0" &prompt.root; sysctl net.inet.ip.forwarding=1 Il est maintenant possible de configurer la carte. La commande suivante positionnera la carte en mode point d'accès: &prompt.root; ifconfig wi0 ssid my_net channel 11 media DS/11Mbps mediaopt hostap up stationname "FreeBSD AP" La ligne &man.ifconfig.8; active l'interface wi0, fixe son paramètre SSID à la valeur my_net, et fixe le nom de station à FreeBSD AP. L'option positionne la carte dans le mode 11Mbps et est nécessaire pour que le paramètre soit pris en compte. L'option place l'interface dans le mode point d'accès. L'option fixe le canal 802.11b à employer. La page de manuel &man.wicontrol.8; donne les options de canaux valides en fonction de votre zone géographique. Vous devez maintenant disposer d'un point d'accès opérationnel et en fonctionnement. Vous êtes encouragés à lire les pages de manuel &man.wicontrol.8;, &man.ifconfig.8;, et &man.wi.4; pour plus d'amples informations. Il est également conseillé de lire la section qui suit sur le chiffrage. Information d'état Une fois que le point d'accès est configuré et opérationnel, les opérateurs voudront voir quels clients sont associés avec le point d'accès. A n'importe quel instant, l'opérateur pourra taper: &prompt.root; wicontrol -l 1 station: 00:09:b7:7b:9d:16 asid=04c0, flags=3<ASSOC,AUTH>, caps=1<ESS>, rates=f<1M,2M,5.5M,11M>, sig=38/15 Ceci nous montre qu'une station est associée, ainsi que son paramétrage. Les informations indiquées concernant le signal devraient être utilisées uniquement comme une indication relative sur sa puissance. Sa conversion en dBm ou tout autre unité varie en fonction des différentes versions de firmware. Clients Un client sans fil est un système qui se connecte à un point d'accès ou un autre client directement. Typiquement, les clients sans fils disposent d'une seule interface réseau, la carte réseau sans fil. Il existe quelques manières différentes de configurer un client sans fil. Elles sont basées sur les différents modes sans fils, généralement les modes BSS (mode infrastructure, qui nécessite un point d'accès), et IBSS (mode ad-hoc, ou mode point à point). Dans notre exemple, nous utiliserons le plus populaire des deux, le mode BSS, pour discuter avec un point d'accès. Pré-requis Il n'y a qu'un seul pré-requis pour configurer &os; comme client sans fil. Vous aurez besoin d'une carte sans fil supportée par &os;. Configurer un client sans fil &os; Avant de commencer, vous aurez besoin de connaître certaines choses concernant le réseau sans fil auquel vous désirez vous connecter. Dans cet exemple, nous rejoignons un réseau ayant pour nom my_net, et avec le chiffrage des liaisons désactivé. Dans cet exemple, nous n'utilisons pas le chiffrage des liaisons, ce qui est une situation dangereuse. Dans la section suivante, nous verrons comment activer le chiffrage, pourquoi il est important de le faire, et pourquoi certaines technologies de chiffrage ne vous protégerons pas complètement. Assurez-vous que votre carte est reconnue par &os;: &prompt.root; ifconfig -a wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7 inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255 ether 00:09:2d:2d:c9:50 media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps) status: no carrier ssid "" stationname "FreeBSD Wireless node" channel 10 authmode OPEN powersavemode OFF powersavesleep 100 wepmode OFF weptxkey 1 Maintenant, nous pouvons configurer la carte suivant les paramètres de notre réseau: &prompt.root; ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_net Remplacez 192.168.0.20 et 255.255.255.0 avec une adresse IP ainsi qu'un masque de sous-réseau valides de votre réseau câblé. Rappelez-vous, notre point d'accès joue le rôle de pont entre le réseau sans fil et le réseau câblé, il apparaîtra aux autres cartes sur votre réseau que vous êtes sur le même réseau câblé. Une fois cela effectué, vous devriez être en mesure d'utiliser &man.ping.8; pour atteindre les machines sur le réseau câblé de la même façon que si vous étiez connecté en utilisant un câble réseau standard. Si vous rencontrez des problèmes avec votre connexion sans fil, vérifiez que vous êtes associé—“associated” (connecté) avec le point d'accès: &prompt.root; ifconfig wi0 devrait retourner un certain nombre d'information; et vous devriez voir s'afficher: status: associated Si associated n'est pas affiché, alors il se peut que vous soyez hors de portée du point d'accès, que vous ayez le chiffrage activé, ou peut-être que vous ayez un problème de configuration. Chiffrement réseau sans fil chiffrement L'utilisation du chiffrement sur un réseau sans fil est important parce que vous n'avez plus la possibilité de conserver le réseau dans une zone protégée. Vos données sans fil - seront diffusées dans tout le voisinnage, et toute + seront diffusées dans tout le voisinage, et toute personne désirant y accéder pourra le faire. C'est ici que le chiffrement entre en jeu. En chiffrant les données qui sont envoyées par les ondes, vous rendez plus difficile l'interception de celles-ci par quiconque d'intéressé. Les deux méthodes les plus courantes de chiffrage des données entre un client et un point d'accès sont le protocol WEP et &man.ipsec.4;. WEP WEP WEP est l'abbrévation de “Wired Equivalency Protocol“. Le protocole de chiffrage - WEP est une tentive de rendre les réseaux sans fils + WEP est une tentative de rendre les réseaux sans fils aussi sûrs et sécurisés qu'un réseau filaire. Malheureusement, il a été craqué, et est relativement simple à déjouer. Cela signifie que l'on ne doit pas lui faire confiance quand il est nécessaire de chiffrer des données sensibles. Cela reste mieux que rien du tout, utilisez ce qui suit pour activer WEP sur votre nouveau point d'accès &os;: &prompt.root; ifconfig wi0 inet up ssid my_net wepmode on wepkey 0x1234567890 media DS/11Mbps mediaopt hostap Et vous pouvez activer WEP sur un client avec la commande: &prompt.root; ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_net wepmode on wepkey 0x1234567890 Notez que vous devriez remplacer 0x1234567890 par une clé plus personnelle. IPsec &man.ipsec.4; est un outil bien plus puissant et - robuste pour chiffer des données sur un + robuste pour chiffrer des données sur un réseau. C'est la méthode à - préferer pour chiffrer les données sur un + préférer pour chiffrer les données sur un réseau sans fil. Vous pouvez obtenir plus de détails concernant &man.ipsec.4; et comment l'implémenter dans la section IPsec de ce manuel. Outils Il existe un petit nombre d'outils disponibles pour le débogage et la configuration d'un réseau sans fil, et nous tenterons ici d'en décrire certains ainsi que leurs fonctionnalités. La suite <application>bsd-airtools</application> La suite bsd-airtools est une trousse à outils complète qui comprend des outils d'audit sans fil pour le craquage du système WEP, la détection de points d'accès, etc. Les utilitaires bsd-airtools peuvent être installés à partir du logiciel porté net-mgmt/bsd-airtools. Des instructions sur l'installation des logiciels portés peuvent être trouvées dans le de ce manuel. Le programme dstumbler est l'outil qui permet la recherche de points d'accès et la mesure du rapport signal sur bruit. Si vous avez des difficultés à mettre en place et à faire fonctionner votre point d'accès, dstumbler pourra vous aider dans ce sens. Pour tester la sécurité de votre réseau sans fil, vous pouvez choisir d'employer les outils “dweputils” (dwepcrack, dwepdump et dwepkeygen) pour vous aider à déterminer si WEP répond à vos besoins en matière de sécurité au niveau de votre réseau sans fil. Les utilitaires <command>wicontrol</command>, <command>ancontrol</command> et <command>raycontrol</command> Il existe des outils que vous pouvez utiliser pour contrôler le comportement de votre carte réseau sans fil sur le réseau sans fil. Dans les exemples précédents, nous avons choisi d'employer &man.wicontrol.8; puisque notre carte sans fil utilise l'interface wi0. Si vous avez une carte sans fil Cisco, elle apparaîtrait comme an0, et vous utiliseriez alors le programme &man.ancontrol.8;. La commande <command>ifconfig</command> ifconfig La commande &man.ifconfig.8; propose plusieurs options identiques à celles de &man.wicontrol.8;, cependant il manque quelques options. Consultez la page de manuel d'&man.ifconfig.8; pour les différents paramètres et options en ligne de commande. Cartes supportées Points d'accès Les seules cartes actuellement supportées pour le mode BSS (points d'accès) sont celles basées sur les circuits Prism 2, 2.5, ou 3. Pour une liste complète, consultez la page de manuel de &man.wi.4;. Clients 802.11b Presque toutes les cartes réseaux sans fil 802.11b sont supportées sous &os;. La plupart des cartes basées sur les circuits Prism, Spectrum24, Hermes, Aironet, et Raylink fonctionneront dans le mode IBSS (ad-hoc, point à point, et BSS). Clients 802.11a & 802.11g Le pilote de périphérique &man.ath.4; supporte les normes 802.11a et 802.11g. Si votre carte est basée sur un circuit Atheros, vous devriez être en mesure d'utiliser ce pilote. Malheureusement il y a toujours de nombreux fabricants qui ne fournissent pas à la communauté des logiciels libres les informations concernant les pilotes pour leurs cartes considérant de telles informations comme des secrets industriels. Par conséquent, il ne reste aux développeurs de &os; et d'autres systèmes d'exploitation libres que deux choix: développer les pilotes en passant par un long et pénible processus de reverse engineering ou utiliser les pilotes binaires existants disponibles pour la plateforme µsoft.windows;. La plupart des développeurs, y compris ceux impliqués dans &os;, ont choisi cette dernière approche. Grâce aux contributions de Bill Paul (wpaul), depuis &os; 5.3-RELEASE, il existe un support natif pour la spécification d'interface des pilotes de périphérique réseau (Network Driver Interface Specification—NDIS). Le NDISulator &os; (connu également sous le nom de Project Evil) prend un pilote binaire réseau &windows; et lui fait penser qu'il est en train de tourner sous &windows;. Cette fonctionnalité est relativement nouvelle, mais semble fonctionner correctement dans la plupart des tests. NDIS NDISulator pilotes de périphériques &windows; Microsoft Windows Microsoft Windows pilotes de périphériques KLD (kernel loadable object) Pour utiliser le NDISulator, vous avez besoin de trois choses: les sources du noyau; le pilote binaire &windowsxp; (extension .SYS); le fichier de configuration du pilote &windowsxp; (extension .INF). Vous aurez besoin de compiler le module d'interface du mini-pilote &man.ndis.4;. En tant que root: &prompt.root; cd /usr/src/sys/modules/ndis &prompt.root; make && make install Recherchez les fichiers spécifiques à votre carte. Généralement, ils peuvent être trouvés sur les CDs livrés avec la carte ou sur le site du fabricant. Dans les exemples qui suivent nous utiliseront les fichiers W32DRIVER.SYS et W32DRIVER.INF. L'étape suivante est de compiler le pilote binaire dans un module chargeable du noyau. Pour effectuer cela, en tant que root, rendez vous dans le répertoire du module if_ndis et copiez-y les fichiers du pilote &windows;: &prompt.root; cd /usr/src/sys/modules/if_ndis &prompt.root; cp /path/to/driver/W32DRIVER.SYS ./ &prompt.root; cp /path/to/driver/W32DRIVER.INF ./ Nous utiliserons maintenant l'utilitaire ndiscvt pour générer le fichier d'entête ndis_driver_data.h du pilote pour la compilation du module: &prompt.root; ndiscvt -i W32DRIVER.INF -s W32DRIVER.SYS -o ndis_driver_data.h Les options et précisent respectivement le fichier de configuration et le fichier binaire. Nous utilisons l'option car le Makefile recherchera ce fichier lors de la compilation du module. Certains pilotes &windows; nécessitent des fichiers supplémentaires pour fonctionner. Vous pouvez les ajouter avec ndiscvt en utilisant l'option . Consultez la page de manuel &man.ndiscvt.8; pour plus d'information. Nous pouvons enfin compiler et installer le module du pilote: &prompt.root; make && make install Pour utiliser le pilote, vous devez charger les modules appropriés: &prompt.root; kldload ndis &prompt.root; kldload if_ndis La première commande charge le pilote d'interface NDIS, la seconde charge l'interface réseau. Contrôlez la sortie de &man.dmesg.8; à la recherche d'une quelconque erreur au chargement. Si tout s'est bien passé, vous devriez obtenir une sortie ressemblant à ce qui suit: ndis0: <Wireless-G PCI Adapter> mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1 ndis0: NDIS API version: 5.0 ndis0: Ethernet address: 0a:b1:2c:d3:4e:f5 ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps A partir de là, vous pouvez traiter le périphérique ndis0 comme n'importe quel périphérique sans fil (e.g. wi0) et consulter les premières sections de ce chapitre. Pav Lucistnik Ecrit par
pav@FreeBSD.org
Bluetooth Bluetooth Introduction &bluetooth; est une technologie sans fil pour créer des réseaux personnels sans fils fonctionnant dans la bande 2.4 GHz ne nécessitant pas d'autorisation, avec une portée de 10 mètres. Les réseaux étant généralement composés de périphériques nomades comme les téléphones portables, les assistants personnels et les ordinateurs portables. Contrairement à l'autre technologie sans fil, Wi-Fi, &bluetooth; offre un niveau plus élevé de profils de service, par exemple des serveurs de fichiers semblables à FTP, “file pushing”, transport de la voix, émulation de lignes séries, et bien plus. La pile &bluetooth; sous &os; utilise le système Netgraph (voir &man.netgraph.4;). Une large gamme d'adaptateurs USB &bluetooth; sont supportés par le pilote &man.ng.ubt.4;. Les périphériques &bluetooth; basés sur le circuit Broadcom BCM2033 sont supportés par les pilotes &man.ubtbcmfw.4; et &man.ng.ubt.4;. La carte 3Com &bluetooth; PC Card 3CRWB60-A demande le pilote &man.ng.bt3c.4;. Les périphériques &bluetooth; de type série et UART sont supportés via les pilotes &man.sio.4;, &man.ng.h4.4; et &man.hcseriald.8;. Cette section décrit l'utilisation d'un adaptateur USB &bluetooth;. Le support &bluetooth; est disponible sur les systèmes 5.0 et suivants. Branchement du périphérique Par défaut les pilotes de périphériques &bluetooth; sont disponibles sous la forme de modules du noyau. Avant de brancher le périphérique, vous devrez charger le pilote dans le noyau: &prompt.root; kldload ng_ubt Si le périphérique &bluetooth; est présent au démarrage du système, chargez le module à partir de /boot/loader.conf: ng_ubt_load="YES" Branchez votre clé USB. Une sortie semblable à celle-ci devrait s'afficher sur la console (ou dans les journaux du système): ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2 ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2 ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3, wMaxPacketSize=49, nframes=6, buffer size=294 La pile Bluetooth doit être lancée manuellement sous &os; 6.0, et sous les versions 5.0 antérieures à la 5.5. Ce lancement est automatique à partir de &man.devd.8; sous &os; 5.5, 6.1 et versions suivantes. Copiez /usr/share/examples/netgraph/bluetooth/rc.bluetooth à un emplacement adapté, comme /etc/rc.bluetooth. Cette procédure est utilisée pour démarrer et arrêter la pile &bluetooth;. C'est une bonne idée d'arrêter la pile avant de débrancher le périphérique, mais ce n'est pas (généralement) fatal. Quand la pile démarre, vous devriez avoir des messages similaires aux suivants: &prompt.root; /etc/rc.bluetooth start ubt0 BD_ADDR: 00:02:72:00:d4:1a Features: 0xff 0xff 0xf 00 00 00 00 00 <3-Slot> <5-Slot> <Encryption> <Slot offset> <Timing accuracy> <Switch> <Hold mode> <Sniff mode> <Park mode> <RSSI> <Channel quality> <SCO link> <HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD> <Paging scheme> <Power control> <Transparent SCO data> Max. ACL packet size: 192 bytes Number of ACL packets: 8 Max. SCO packet size: 64 bytes Number of SCO packets: 8 HCI Interface de contrôle de l'hôte (HCI) L'interface de contrôle de l'hôte (HCI) fournit une interface de commande pour le contrôleur de la bande de base et le gestionnaire de liaisons, et l'accès à l'état du matériel et aux registres de contrôle. Cette interface offre une méthode uniforme d'accès aux fonctions de la bande de base &bluetooth;. La couche HCI de l'hôte échange des données et des commandes avec le firmware HCI du matériel &bluetooth;. Le pilote de la couche de transport du contrôleur d'hôte (i.e. le bus physique) fournit aux deux couches HCI la possibilité d'échanger des informations entre elles. Un seul noeud Netgraph de type hci est créé pour un périphérique &bluetooth;. Le noeud HCI est normalement connecté au noeud du pilote &bluetooth; (flux descendant) et au noeud L2CAP (flux montant). Toutes les opérations HCI doivent être effectuées sur le noeud HCI et non pas sur le noeud du pilote de périphérique. Le nom par défaut pour le noeud HCI est “devicehci”. Pour plus de détails consultez la page de manuel &man.ng.hci.4;. Une des tâches les plus courantes est la recherche de périphériques &bluetooth; dans le voisinage hertzien. Cette opération est appelée inquiry (enquête, recherche). Cette recherche et les autres opérations relatives à HCI sont effectuées par l'utilitaire &man.hccontrol.8;. L'exemple ci-dessous montre comment déterminer quels périphériques - &bluetooth; sont dans le voisinnage. Vous devriez obtenir une + &bluetooth; sont dans le voisinage. Vous devriez obtenir une listes de périphériques au bout de quelques secondes. Notez qu'un périphérique distant ne répondra à la recherche que s'il est placé dans le mode discoverable. &prompt.user; hccontrol -n ubt0hci inquiry Inquiry result, num_responses=1 Inquiry result #0 BD_ADDR: 00:80:37:29:19:a4 Page Scan Rep. Mode: 0x1 Page Scan Period Mode: 00 Page Scan Mode: 00 Class: 52:02:04 Clock offset: 0x78ef Inquiry complete. Status: No error [00] BD_ADDR est l'adresse unique d'un périphérique &bluetooth;, similaire à l'adresse MAC d'une carte réseau. Cette adresse est nécessaire pour communiquer avec un périphérique. Il est possible d'assigner un nom humainement compréhensible à l'adresse BD_ADDR. Le fichier /etc/bluetooth/hosts contient des informations concernant les hôtes &bluetooth; connus. L'exemple suivant montre comment obtenir le nom qui a été assigné au périphérique distant: &prompt.user; hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4 BD_ADDR: 00:80:37:29:19:a4 Name: Pav's T39 Si vous effectuez une recherche sur un périphérique &bluetooth; distant, vous devriez trouver votre ordinateur en tant que “votre.machine.nom (ubt0)”. Le nom affecté au périphérique local peut être modifié à tout moment. Le système &bluetooth; fournit une connexion point à point (seules deux matériels &bluetooth; sont concernés), ou une connexion point à multipoints. Dans le cas d'une connexion point à multipoints, la connexion est partagés entre plusieurs périphériques &bluetooth;. L'exemple suivant montre comment obtenir la liste des connexions en bande de base actives pour le périphérique local: &prompt.user; hccontrol -n ubt0hci read_connection_list Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State 00:80:37:29:19:a4 41 ACL 0 MAST NONE 0 0 OPEN Une manipulation de la connexion est utile quand la fin d'une connexion en bande de base est nécessaire. Notez qu'il n'est normalement pas nécessaire de le faire à la main. La pile mettra fin automatiquement aux connexions en bande de base inactives. &prompt.root; hccontrol -n ubt0hci disconnect 41 Connection handle: 41 Reason: Connection terminated by local host [0x16] Référez-vous à la commande hccontrol help pour une liste complète des commandes HCI disponibles. La plupart des commandes HCI ne nécessitent pas les privilèges du super-utilisateur. L2CAP Protocole d'adaptation et de contrôle de lien logique (L2CAP) Le protocole d'adaptation et de contrôle de lien logique (L2CAP) fournit des services orientés connexion ou non aux protocoles de niveaux supérieurs, et cela avec des possibilités de multiplexage de protocoles, de segmentation et de réassemblage. L2CAP permet aux applications et aux protocoles de niveaux supérieurs de transmettre et recevoir des paquets L2CAP d'une taille allant jusqu'à 64 Ko. L2CAP est basé sur le concept de canaux. Un canal est une connexion logique au sommet de la connexion en bande de base. Chaque canal est attaché à un protocole suivant le schéma plusieurs-vers-un. Plusieurs canaux peuvent être attachés au même protocole, mais un canal ne peut être attachés à plusieurs protocoles. Chaque paquet L2CAP reçu sur un canal est dirigé vers le protocole de niveau supérieur approprié. Plusieurs canaux peuvent partager la même connexion en bande de base. Un seul noeud Netgraph de type l2cap est créé pour un périphérique &bluetooth;. Le noeud L2CAP est normalement connecté au noeud HCI &bluetooth; (flux descendant) et aux noeuds des “sockets” &bluetooth; (flux montant). Le nom par défaut pour le noeud L2CAP est “device2cap”. Pour plus de détails consultez la page de manuel &man.ng.l2cap.4;. Une commande utile est &man.l2ping.8;, qui peut être utilisée pour “pinguer” les autres périphériques. Certaines implémentations de &bluetooth; peuvent ne pas renvoyer toutes les données qui leur sont envoyées, aussi 0 bytes dans ce qui suit est normal. &prompt.root; l2ping -a 00:80:37:29:19:a4 0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0 0 bytes from 0:80:37:29:19:a4 seq_no=1 time=37.551 ms result=0 0 bytes from 0:80:37:29:19:a4 seq_no=2 time=28.324 ms result=0 0 bytes from 0:80:37:29:19:a4 seq_no=3 time=46.150 ms result=0 L'utilitaire &man.l2control.8; est employé pour effectuer diverses opérations sur les noeuds L2CAP. Cet exemple montre comment obtenir la liste des connexions logiques (canaux) et la liste des connexions en bande de base pour le périphérique local: &prompt.user; l2control -a 00:02:72:00:d4:1a read_channel_list L2CAP channels: Remote BD_ADDR SCID/ DCID PSM IMTU/ OMTU State 00:07:e0:00:0b:ca 66/ 64 3 132/ 672 OPEN &prompt.user; l2control -a 00:02:72:00:d4:1a read_connection_list L2CAP connections: Remote BD_ADDR Handle Flags Pending State 00:07:e0:00:0b:ca 41 O 0 OPEN Un autre outil de diagnostic est &man.btsockstat.1;. Il effectue un travail similaire à celui de &man.netstat.1;, mais relatif aux structures de données réseau &bluetooth;. L'exemple ci-dessous montre la même connexion logique que &man.l2control.8; ci-dessus. &prompt.user; btsockstat Active L2CAP sockets PCB Recv-Q Send-Q Local address/PSM Foreign address CID State c2afe900 0 0 00:02:72:00:d4:1a/3 00:07:e0:00:0b:ca 66 OPEN Active RFCOMM sessions L2PCB PCB Flag MTU Out-Q DLCs State c2afe900 c2b53380 1 127 0 Yes OPEN Active RFCOMM sockets PCB Recv-Q Send-Q Local address Foreign address Chan DLCI State c2e8bc80 0 250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3 6 OPEN RFCOMM Protocole RFCOMM Le protocole RFCOMM permet l'émulation du port série au-dessus du protocole L2CAP. Le protocole est basé sur la norme ETSI TS 07.10. RFCOMM est un protocole de transport simple, avec les dispositions supplémentaires pour émuler les 9 circuits (signaux) d'un port série RS232 (EIATIA-232-E). Le protocole RFCOMM supporte jusqu'à 60 connexions simultanées (canaux RFCOMM) entre deux périphériques &bluetooth;. Dans le cas de RFCOMM, l'établissement d'une communication implique deux applications tournant sur des périphériques différents (les extrémités de la communication) avec un segment de communication entre eux. RFCOMM est prévu pour couvrir les applications faisant usage des ports séries des périphériques sur lesquels elles résident. Le segment de communication est une liaison &bluetooth; d'un périphérique vers un autre (connexion directe). RFCOMM est seulement concerné par la connexion entre périphériques dans le cas d'un raccordement direct, ou entre le périphérique et un modem dans le cas d'un réseau. RFCOMM peut supporter d'autres configurations, comme les modules qui communiquent par l'intermédiaire de la technologie sans fil &bluetooth; d'un côté et utilise une interface câblée de l'autre côté. Sous &os;, le protocole RFCOMM est implémenté au niveau de la couche des “sockets” &bluetooth;. couplage Couplage des périphériques Par défaut, une communication &bluetooth; n'est pas authentifiée, et n'importe quel périphérique peut parler avec n'importe quel autre périphérique. Un périphérique &bluetooth; (par exemple un téléphone portable) peut choisir de demander une authentification pour fournir un service particulier (par exemple un service de connexion téléphonique). L'authentification &bluetooth; est généralement effectuée avec des codes PIN. Un code PIN est une chaîne ASCII d'une longueur de 16 caractères. L'utilisateur doit entrer le même code PIN sur les deux périphériques. Une fois que l'utilisateur a entré le code PIN, les deux périphériques génèrent une clé de liaison (link key). Ensuite la clé peut être enregistrée soit dans les périphériques eux-mêmes ou sur un moyen de stockage non-volatile. La fois suivante les deux périphériques utiliseront la clé précédemment générée. La procédure décrite est appelée couplage. Si la clé de liaison est perdue par un des périphériques alors l'opération de couplage doit être répétée. Le “daemon” &man.hcsecd.8; est responsable de la gestion de toutes les requêtes d'authentification &bluetooth;. Le fichier de configuration par défaut est /etc/bluetooth/hcsecd.conf. Un exemple de section pour un téléphone portable avec un code PIN arbitraire de “1234” est donné ci-dessous: device { bdaddr 00:80:37:29:19:a4; name "Pav's T39"; key nokey; pin "1234"; } Il n'y pas de limitation sur les codes PIN (en dehors de la longueur). Certains périphériques (comme les casques-micro &bluetooth;) peuvent avoir un code PIN définitivement fixé. Le paramètre force le “daemon” &man.hcsecd.8; à rester en tâche de fond, il est donc aisé de voir ce qu'il se passe. Configurez le périphérique distant pour recevoir le couplage et initier la connexion &bluetooth; vers le périphérique distant. Le périphérique distant devrait annoncer que le couplage a été accepté, et demander le code PIN. Entrez le même code PIN que celui que vous - avez dand le fichier hcsecd.conf. + avez dans le fichier hcsecd.conf. Maintenant votre PC et le périphérique distant sont couplés. Alternativement, vous pouvez initier le couplage sur le périphérique distant. Sous &os; 5.5, 6.1 et versions suivantes, la ligne suivante peut être ajoutée au fichier /etc/rc.conf pour obtenir un lancement automatique de hcsecd au démarrage du système: hcsecd_enable="YES" Ce qui suit est une partie de la sortie du “daemon” hcsecd: hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4 hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4 hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4 hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4 SDP Le protocole de découverte de service (SDP) Le protocole de découverte de service (SDP) offre aux applications clientes les moyens de découvrir l'existence des services fournis par les applications serveurs ainsi que les propriétés (attributs) de ces services. Les attributs d'un service comprennent le type ou la classe du service offert et le mécanisme ou l'information sur le protocole nécessaire pour utiliser le service. Le SDP implique la communication entre un serveur SDP et un client SDP. Le serveur maintient une liste d'enregistrements de services qui décrit les caractéristiques des services associés avec le serveur. Chaque enregistrement de service contient l'information sur un seul serveur. Un client peut récupérer l'information à partir d'un enregistrement de service maintenu par le serveur SDP en émettant une requête SDP. Si le client, ou une application associée avec le client, décide d'utiliser un service, il doit ouvrir une connexion séparée avec le fournisseur du service afin d'utiliser ce service. Le SDP fournit un mécanisme pour découvrir les services et leur attributs, mais n'offre pas de mécanisme pour utiliser ces services. Généralement, un client SDP recherche les services sur la base de caractéristiques de services désirées. Cependant, il est parfois désirable de découvrir quel type de services sont décrits par les enregistrements de services d'un serveur SDP sans aucune information préalable sur les services. Ce processus de recherche des services offerts est appelé navigation (“browsing”). Le serveur SDP &bluetooth; &man.sdpd.8; et le client en ligne de commande &man.sdpcontrol.8; font partie de l'installation &os; standard. L'exemple suivant montre comment effectuer un requête de navigation (“browse”) SDP: &prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec browse Record Handle: 00000000 Service Class ID List: Service Discovery Server (0x1000) Protocol Descriptor List: L2CAP (0x0100) Protocol specific parameter #1: u/int/uuid16 1 Protocol specific parameter #2: u/int/uuid16 1 Record Handle: 0x00000001 Service Class ID List: Browse Group Descriptor (0x1001) Record Handle: 0x00000002 Service Class ID List: LAN Access Using PPP (0x1102) Protocol Descriptor List: L2CAP (0x0100) RFCOMM (0x0003) Protocol specific parameter #1: u/int8/bool 1 Bluetooth Profile Descriptor List: LAN Access Using PPP (0x1102) ver. 1.0 ... et ainsi de suite. Remarquez que chaque service a une liste d'attributs (canal RFCOMM par exemple). En fonction du service vous pourrez avoir besoin de prendre note de certains de ces attributs. Certaines implémentations &bluetooth; ne supportent pas les requêtes de navigation et peuvent renvoyer une liste vide. Dans ce cas il est possible de chercher un service spécifique. L'exemple ci-dessous montre comment chercher le service OBEX Object Push (OPUSH): &prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec search OPUSH Offrir des services sous &os; aux clients &bluetooth; se fait à l'aide du serveur &man.sdpd.8;. Sous les versions de &os; 5.5, 6.1 et plus récentes, la ligne suivante peut être ajoutée au fichier /etc/rc.conf: sdpd_enable="YES" Ensuite, le démon sdpd peut être démarré avec: &prompt.root; /etc/rc.d/sdpd start Sous &os; 6.0, et sous les versions &os; 5.X antérieures à 5.5, sdpd n'est pas intégré aux procédures de démarrage du système. Il doit être lancé manuellement: &prompt.root; sdpd L'application serveur locale qui désire offrir un service &bluetooth; à des clients distants enregistrera le service auprès du “daemon” SDP local. Un exemple d'une telle application est &man.rfcomm.pppd.8;. Une fois démarré, il enregistrera un service de réseau local &bluetooth; auprès du serveur SDP local. La liste des services enregistrés auprès du serveur SDP local peut être obtenue en émettant une requête de navigation (“browse”) SDP par l'intermédiaire du canal de contrôle: &prompt.root; sdpcontrol -l browse Les profils Dial-Up Networking (DUN) et accès au réseau local avec PPP (LAN) Le profil Dial-Up Networking (DUN) est principalement utilisé avec les modems et les téléphones portables. Les cas de figure couverts par ce profil sont les suivants: Utilisation d'un téléphone portable ou d'un modem par un ordinateur comme modem sans fil pour se connecter à un serveur d'accès Internet, ou pour l'utilisation de services accessibles par téléphone; Utilisation d'un téléphone portable ou d'un modem par un ordinateur pour recevoir des appels avec transmission de données. Le profil d'accès au réseau local avec PPP (LAN) peut être utilisé dans les situations suivantes: Accès au réseau local pour un périphérique &bluetooth;; Accès au réseau local pour plusieurs périphériques &bluetooth;; Liaison PC à PC (en utilisant le protocole PPP sur une émulation de câble série). Sous &os; les deux profils sont implémentés par &man.ppp.8; et &man.rfcomm.pppd.8;—un “wrapper” convertit la connexion &bluetooth; RFCOMM en quelque chose d'utilisable par PPP. Avant qu'un profil ne soit utilisable, un nouveau label doit être créé dans le fichier /etc/ppp/ppp.conf. Consultez la page de manuel &man.rfcomm.pppd.8; pour des exemples. Dans l'exemple suivant &man.rfcomm.pppd.8; sera employé pour ouvrir un connexion RFCOMM avec le périphérique distant avec une adresse BD_ADDR 00:80:37:29:19:a4 sur un canal DUN RFCOMM. Le numéro de canal RFCOMM réel sera obtenu du périphérique distant par l'intermédiaire de SDP. Il est possible de préciser le canal RFCOMM à la main, dans ce cas &man.rfcomm.pppd.8; n'émettra pas de requête SDP. Utilisez &man.sdpcontrol.8; pour trouver le canal RFCOMM sur le périphérique distant. &prompt.root; rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialup Afin de fournir un service d'accès au réseau local avec PPP, le serveur &man.sdpd.8; doit être en fonctionnement. Une nouvelle entrée pour les clients du réseau local doit être créée dans le fichier /etc/ppp/ppp.conf. Consultez la page de manuel &man.rfcomm.pppd.8; pour des exemples. Enfin, lancez le serveur RFCOMM PPP sur un numéro de canal RFCOMM valide. Le serveur RFCOMM PPP enregistrera automatiquement un service &bluetooth; LAN auprès du “daemon” SDP local. L'exemple ci-dessous montre comment démarrer le serveur RFCOMM PPP: &prompt.root; rfcomm_pppd -s -C 7 -l rfcomm-server OBEX Le profil OBEX Object Push (OPUSH) OBEX (échange d'objets) est un protocole - très largement utilisé pour les tranferts de + très largement utilisé pour les transferts de fichiers entre périphériques mobiles. Son utilisation principale se trouve dans les communications par - infrarouge, où il est utilisé pour le tranfert + infrarouge, où il est utilisé pour le transfert des fichiers entre ordinateurs portables ou PDAs, et pour envoyer des cartes de visite électronique ou des éléments d'agenda entre téléphones portables et d'autres périphériques disposant d'applications de gestion d'informations personnelles (PIM). Le serveur et le client OBEX sont implémentés dans le logiciel tierce-partie obexapp, qui est disponible sous la forme du logiciel porté comms/obexapp. Le client OBEX est employé pour “pousser” et/ou “tirer” des objets du serveur OBEX. Un objet peut être, par exemple, une carte de visite ou un rendez-vous. Le client OBEX peut obtenir un numéro de canal RFCOMM d'un périphérique distant par l'intermédiaire de SDP. Cela peut être fait en spécifiant le nom du service plutôt que le numéro du canal RFCOMM. Les noms de service supportés sont: IrMC, FTRN et OPUSH. Il est possible de préciser le canal RFCOMM par un nombre. Un exemple de session OBEX est présenté ci-dessous, où l'objet information du périphérique d'un téléphone portable est récupéré, et un nouvel objet (carte de visite) est envoyé dans le répertoire du téléphone. &prompt.user; obexapp -a 00:80:37:29:19:a4 -C IrMC obex> get telecom/devinfo.txt devinfo-t39.txt Success, response: OK, Success (0x20) obex> put new.vcf Success, response: OK, Success (0x20) obex> di Success, response: OK, Success (0x20) Afin de fournir le service OBEX Object Push, le serveur &man.sdpd.8; doit tourner. Un dossier racine où tous les objets entrant seront stockés doit être créé. Le chemin d'accès par défaut du répertoire racine est /var/spool/obex. Le serveur OBEX enregistrera automatiquement le service OBEX Object Push auprès du “daemon” SDP local. L'exemple ci-dessous montre comment démarrer le serveur OBEX: &prompt.root; obexapp -s -C 10 Le profil port série (SPP) Le profil port série (SPP) permet aux périphériques &bluetooth; d'émuler un câble série RS232 (ou similaire). Ce profil traite avec les applications classiques en utilisant &bluetooth; comme un câble de remplacement, à travers une abstraction de port série virtuel. L'utilitaire &man.rfcomm.sppd.1; implémente le profil port série. Un pseudo terminal est utilisé comme abstraction de port série virtuel. L'exemple ci-dessous montre comment se connecter à un service port série d'un périphérique distant. Notez que vous n'avez pas besoin d'indiquer un canal RFCOMM — &man.rfcomm.sppd.1; peut l'obtenir auprès du périphérique distant via SDP. Si vous désirez forcer cela, spécifiez un canal RFCOMM sur la ligne de commande. &prompt.root; rfcomm_sppd -a 00:07:E0:00:0B:CA -t /dev/ttyp6 rfcomm_sppd[94692]: Starting on /dev/ttyp6... Une fois connecté, le pseudo-terminal peut être utilisé comme un port série: &prompt.root; cu -l ttyp6 Dépannage Un périphérique distant ne peut pas se connecter Certains anciens périphériques &bluetooth; ne supportent pas de changement de rôle. Par défaut, quand &os; accepte une nouvelle connexion, il tente d'effectuer un changement de rôle et de devenir maître. Les périphériques qui ne supportent pas cela ne seront pas en mesure de se connecter. Notez qu'un changement de rôle est effectué quand une nouvelle connexion est établie, il n'est donc pas possible de demander au périphérique distant s'il supporte le changement de rôle. Il existe une option HCI pour désactiver le changement de rôle au niveau local: &prompt.root; hccontrol -n ubt0hci write_node_role_switch 0 Quelque chose ne va pas, puis-je voir ce qui se passe exactement? Bien sûr. Utilisez le logiciel tierce-partie hcidump qui est disponible sous comms/hcidump dans le catalogue des logiciels portés. L'utilitaire hcidump est similaire à &man.tcpdump.1;. Il peut être utilisé pour afficher le contenu des paquets &bluetooth; à l'écran et les sauvegarder dans un fichier.
Steve Peterson Ecrit par Bridging Introduction sous-réseau IP bridge/pont Il est parfois utile de diviser un réseau physique (comme un réseau Ethernet) en deux réseaux séparés sans avoir à créer de sous-réseaux IPs et à utiliser un routeur pour connecter ces réseaux entre eux. Le périphérique qui connecte ensemble deux réseaux de cette manière est appelé “bridge”—pont. Un système &os; avec deux cartes réseaux peut faire fonction de pont. Le pont apprend les adresses MAC (adresses Ethernet) des périphériques branchés sur chacune de ses interfaces réseaux. Il transmet le trafic entre deux réseaux uniquement quand la source et la destination sont sur des réseaux différents. Sous de nombreux aspects, un pont ressemble à un switch (commutateur) Ethernet avec très peu de ports. Situations où l'utilisation d'un pont est appropriée Il existe deux situations dans lesquelles un pont est de nos jours utilisé. Trafic important sur un segment La première situation apparaît quand un segment physique d'un réseau est submergé par le trafic, mais vous ne voulez pas, pour différentes raisons, subdiviser le réseau et interconnecter les sous-réseaux à l'aide d'un routeur. Prenons comme exemple un journal où les bureaux de la rédaction et de la production sont sur le même sous-réseau. Les utilisateurs de la rédaction utilisent tous le serveur de fichiers A, et les utilisateurs de la production le serveur B. Un réseau Ethernet est utilisé pour connecter ensemble les utilisateurs, et des surcharges du réseau ralentissent les échanges. Si les utilisateurs de la rédaction peuvent être cantonné sur un segment, et les utilisateurs de la production sur un autre, les deux réseaux pourront être connectés par un pont. Seul le trafic réseau destiné aux interfaces réseaux situées de l'“autre” côté du pont sera transmis à l'autre réseau, réduisant ainsi les congestions sur chaque segment. Coupe-feu filtrant/régulant le trafic coupe-feu NAT La deuxième situation est quand un coupe-feu est nécessaire mais sans translation d'adresses (NAT). Un exemple est une compagnie qui est connectée à son fournisseur d'accès internet par l'intermédiaire d'une connexion ISDN ou DSL. Elle dispose de 13 adresses IP routables fournies par le fournisseur d'accès et dispose de 10 PCs sur son réseau. Dans cette situation, utiliser un coupe-feu/routeur est complexe en raison des problèmes de sous-réseaux. routeur DSL ISDN Un coupe-feu basé sur un pont peut être configuré et positionné dans le flux juste en aval de leur routeur DSL/ISDN sans aucun problème d'adressage IP. Configuration d'un pont Choix des cartes réseaux Un pont nécessite au moins deux cartes réseaux pour fonctionner. Malheureusement toutes les cartes réseaux ne supportent pas le mode bridging. Lisez la page de manuel &man.bridge.4; pour des détails sur les cartes supportées. Installez et testez les deux cartes réseaux avant de poursuivre. Modification de la configuration du noyau options du noyau BRIDGE Pour activer le support nécessaire pour mettre en place un pont ajouter la ligne suivante: options BRIDGE à votre fichier de configuration du noyau, et recompilez votre noyau. Support du coupe-feu coupe-feu Si vous projetez d'utiliser un pont en tant que coupe-feu, vous devrez également ajouter l'option IPFIREWALL. Lisez la pour des informations générales sur la configuration d'un pont en tant que coupe-feu. Si vous avez besoin de permettre le passage à travers le pont des paquets non-IP (comme ARP), il existe une option du coupe-feu qui doit être activée. Cette option est IPFIREWALL_DEFAULT_TO_ACCEPT. Prennez note que cela modifie le fonctionnement par défaut du coupe-feu, ce dernier acceptera alors tous les paquets. Assurez-vous de savoir ce que ce changement signifie pour votre ensemble de règles de filtrage avant de l'effectuer. Support de la régulation du trafic Si vous désirez utiliser le pont comme régulateur de trafic, vous devrez ajouter l'option DUMMYNET à votre fichier de configuration du noyau. Consultez la page de manuel &man.dummynet.4; pour plus d'information. Activer le pont Ajoutez la ligne: net.link.ether.bridge.enable=1 au fichier /etc/sysctl.conf pour activer le pont au démarrage, et la ligne: net.link.ether.bridge.config=if1,if2 pour activer le mode bridging sur les interfaces spécifiées (remplacez if1 et if2 par les noms de vos interfaces réseaux). Si vous désirez que les paquets traversant le pont soient filtrés par &man.ipfw.8;, vous devrez ajouter également la ligne: net.link.ether.bridge.ipfw=1 Pour les versions antérieures à &os; 5.2-RELEASE, utilisez les lignes suivantes: net.link.ether.bridge=1 net.link.ether.bridge_cfg=if1,if2 net.link.ether.bridge_ipfw=1 Informations supplémentaires Si vous désirez être en mesure de vous connecter au pont par l'intermédiaire de &man.ssh.1;, il est correct d'ajouter à l'une des cartes réseaux une adresse IP. Il existe un consensus sur le fait qu'assigner une adresse aux deux cartes est une mauvaise idée. Si vous avez plusieurs ponts sur votre réseau, il ne peut y en avoir plus d'un sur le chemin qui sera emprunté par le trafic entre deux stations de travail. Techniquement, cela signifie qu'il n'y a pas de support pour la gestion du “spanning tree”. Un pont peut ajouter des temps de latence lors de l'utilisation de &man.ping.8;, et tout particulièrement dans le cas du trafic d'un segment vers un autre. Jean-François Dockès Mis à jour par Alex Dupre Réorganisé et augmenté par Système sans disque dur station de travail sans disque dur système sans disque dur Une machine &os; peut démarrer via le réseau et fonctionner sans disque dur local, en utilisant des systèmes de fichiers montés à partir d'un serveur NFS. Aucune modification du système n'est nécessaire en dehors des fichiers de configuration standards. Un tel système est facile à mettre en oeuvre comme tous les éléments sont directement disponibles: - Il y a au moins deux métodes possibles pour + Il y a au moins deux méthodes possibles pour charger un noyau via le réseau: PXE: l'environnement d'exécution préalable au démarrage d'&intel; (Preboot eXecution Environment) est une sorte de ROM intelligente présente sur certaines cartes réseau ou cartes mère. Consultez la page de manuel &man.pxeboot.8; pour plus de détails. Le logiciel porté Etherboot (net/etherboot) produit un code stockable dans une ROM pour démarrer des noyaux via le réseau. Le code peut être soit implanté dans une PROM de démarrage sur une carte réseau, soit chargé à partir d'une disquette (ou d'un disque dur local), ou à partir d'un système &ms-dos; en fonctionnement. De nombreuses cartes réseau sont supportées. Une procédure d'exemple (/usr/share/examples/diskless/clone_root) facilite la création et la maintenance du système de fichiers racine de la station de travail sur le serveur. La procédure demandera sûrement quelques modifications mais vous permettra de démarrer rapidement. Des fichiers de démarrage du système existent dans le répertoire /etc pour détecter et supporter le démarrage d'un système sans disque dur. La pagination, si nécessaire, peut être faite par l'intermédiaire d'un fichier NFS ou sur un disque local. Il existe plusieurs façons de configurer des stations de travail sans disque dur. Plusieurs éléments entrent en oeuvre, et la plupart peuvent être ajustés en fonction des besoins locaux. Ce qui suit décrit des variations sur la configuration d'un système complet, mettant en avant le simplicité et la compatibilité avec les procédures standards de démarrage de &os;. Le système décrit présente les caractéristiques suivantes: Les stations de travail sans disque dur utilisent des systèmes de fichiers / et /usr partagés et en lecture seule. Le système de fichiers racine est une copie d'une racine &os; standard (généralement celle du serveur), avec certains fichiers de configuration remplacés par des versions spécifiques à un fonctionnement sans disque dur, et parfois à la station de travail auxquels ils appartiennent. Les parties de la racine qui doivent être inscriptibles sont remplacées par des systèmes de fichiers &man.mfs.8; (&os; 4.X) ou &man.md.4; (&os; 5.X). Toute modification sera perdue au redémarrage du système. Le noyau est transféré et chargé soit à l'aide d'Etherboot soit de PXE comme certaines situations peuvent exiger l'utilisation de l'une ou l'autre méthode. Ainsi décrit, le système n'est pas sécurisé. Il devrait se trouver dans une partie protégée du réseau, et les autres machines ne devraient pas lui faire confiance aveuglément. Toutes les instructions de cette section ont été testées sous &os; 4.9-RELEASE et 5.2.1-RELEASE. Le texte est destiné à l'origine pour une utilisation sous 4.X. Des notes on été insérées aux endroits nécessaires pour indiquer les modifications concernant la branche 5.X. Information de fond Mettre en place des stations de travail sans disque dur est à la fois relativement simple et enclin aux erreurs. Ces dernières sont parfois difficiles à diagnostiquer pour de nombreuses raisons. Par exemple: Des options de compilation peuvent donner lieu à des comportements différents à l'exécution. Les messages d'erreurs sont souvent cachés ou totalement absents. Dans ce contexte, avoir quelques connaissances des - mécanismes sousjacents impliqués est très + mécanismes sous-jacents impliqués est très utile pour résoudre les problèmes qui peuvent surgir. Plusieurs opérations doivent être - effectutées pour un amorçage + effectuées pour un amorçage réussi: La machine doit obtenir des paramètres de base comme son adresse IP, le nom du fichier exécutable, le nom du serveur, l'emplacement de la racine. Ceci est fait en utilisant le protocole DHCP ou le protocole BOOTP. DHCP est une extension compatible de BOOTP, et utilise les mêmes numéros de ports et son format de paquets basic. Il est possible de configurer un système pour n'utiliser que BOOTP. Le programme serveur &man.bootpd.8; fait partie du système de base de &os;. Cependant, DHCP présente plusieurs avantage sur BOOTP (des fichiers de configuration plus lisibles, la possibilité d'utiliser PXE, plus de nombreux autres avantages n'ayant pas de relation directe avec les systèmes sans disque dur), et nous décrirons principalement une configuration DHCP, avec des exemples équivalent utilisant &man.bootpd.8; quand cela est possible. L'exemple de configuration utilisera le logiciel ISC DHCP (la version 3.0.1.r12 était installée sur le serveur de test). La machine a besoin de transférer un ou plusieurs programmes en mémoire locale. TFTP ou NFS sont utilisés. Le choix entre TFTP et NFS est à de nombreux endroits une option sélectionnée lors de la compilation. Une source d'erreur courante est d'indiquer des noms de fichiers pour le mauvais protocole: TFTP transfère généralement tous les fichiers à partir d'un seul répertoire sur le serveur, et attendra des noms de fichiers relatifs à ce répertoire. NFS a besoin de chemins d'accès absolus. Les éventuels programmes d'amorce intermédiaires et le noyau doivent être initialisés et exécutés. Il existe plusieurs variations à ce niveau: PXE chargera &man.pxeboot.8;, qui est une version modifiée du chargeur. Le chargeur (&man.loader.8;) récupérera la plupart des paramètres nécessaires au démarrage du système, et les transmettra au noyau avant de lui abandonner le contrôle du système. Dans ce cas il est possible d'utiliser un noyau GENERIC. Etherboot, chargera directement le noyau avec moins de préparation. Vous devrez compiler un noyau avec des options particulières. PXE et Etherboot fonctionnent aussi bien l'un que l'autre avec des systèmes 4.X. Comme le noyau des systèmes 5.X laisse au chargeur (&man.loader.8;) un peu plus de travail à effectuer, PXE est préféré pour les systèmes 5.X. Si votre BIOS et vos cartes réseau supportent PXE, vous devriez probablement l'utiliser. Cependant, il est toujours possible de démarrer un système 5.X à l'aide d'Etherboot. Et enfin, la machine a besoin d'accéder à ses systèmes de fichiers. NFS est utilisé dans tous les cas. Consultez également la page de manuel &man.diskless.8;. Configuration Configuration utilisant <application>ISC DHCP</application> DHCP système sans disque dur Le serveur ISC DHCP peut répondre aux requêtes BOOTP et DHCP. Avec la version 4.9, ISC DHCP 3.0 ne fait pas partie du système de base. Vous devrez installer le logiciel porté net/isc-dhcp3-server ou la version pré-compilée correspondante. Une fois ISC DHCP installé, il nécessite un fichier de configuration pour fonctionner (normalement appelé /usr/local/etc/dhcpd.conf). Voici un exemple commenté, où la machine margaux utilise Etherboot et où la machine corbieres emploie PXE: default-lease-time 600; max-lease-time 7200; authoritative; option domain-name "example.com"; option domain-name-servers 192.168.4.1; option routers 192.168.4.1; subnet 192.168.4.0 netmask 255.255.255.0 { use-host-decl-names on; option subnet-mask 255.255.255.0; option broadcast-address 192.168.4.255; host margaux { hardware ethernet 01:23:45:67:89:ab; fixed-address margaux.example.com; next-server 192.168.4.4; filename "/data/misc/kernel.diskless"; option root-path "192.168.4.4:/data/misc/diskless"; } host corbieres { hardware ethernet 00:02:b3:27:62:df; fixed-address corbieres.example.com; next-server 192.168.4.4; filename "pxeboot"; option root-path "192.168.4.4:/data/misc/diskless"; } } Cette option dit à dhcpd d'envoyer le paramètre des déclarations host comme nom de machine pour la machine sans disque dur. Une autre méthode aurait été d'ajouter option host-name margaux à l'intérieur des déclarations host. La directive next-server désigne le serveur TFTP ou NFS à utiliser pour télécharger le chargeur ou le noyau (le comportement par défaut étant d'utiliser la même machine que le serveur DHCP). La directive filename précise le fichier que chargera Etherboot ou PXE à la prochaine étape. Il doit être défini en fonction de la méthode de transfert utilisée. Etherboot peut être compilé pour utiliser NFS ou TFTP. Le logiciel porté pour &os; utilisera NFS par défaut. PXE emploie TFTP, c'est pourquoi un chemin d'accès relatif est utilisé ici (cela peut dépendre de la configuration du serveur TFTP, mais devrait être plutôt classique). De plus, PXE charge pxeboot, et non pas le noyau. Il existe d'autres possibilités intéressantes, comme le chargement de pxeboot à partir du répertoire /boot d'un CD-ROM &os; (comme &man.pxeboot.8; peut charger un noyau GENERIC cela rend possible l'utilisation de PXE pour démarrer à partir d'un lecteur de CD-ROM distant). L'option root-path définie le chemin d'accès au système de fichiers racine, suivant la notation classique de NFS. En utilisant PXE, il est possible de ne pas préciser l'adresse IP de la machine dès lors que vous n'activez pas l'option BOOTP du noyau. Le serveur NFS sera alors le même que le serveur TFTP. Configuration utilisant BOOTP BOOTP système sans disque dur Ce qui suit présente une configuration bootpd équivalente (réduite à un seul client). Elle se trouverait sous /etc/bootptab. Veuillez noter qu'Etherboot doit être compilé avec l'option NO_DHCP_SUPPORT (qui n'est pas activée par défaut) afin d'utiliser BOOTP et que PXE nécessite DHCP. The seul avantage évident de bootpd est qu'il est disponible dans le système de base. .def100:\ :hn:ht=1:sa=192.168.4.4:vm=rfc1048:\ :sm=255.255.255.0:\ :ds=192.168.4.1:\ :gw=192.168.4.1:\ :hd="/tftpboot":\ :bf="/kernel.diskless":\ :rp="192.168.4.4:/data/misc/diskless": margaux:ha=0123456789ab:tc=.def100 Préparation d'un programme de démarrage avec <application>Etherboot</application> Etherboot Le site Web d'Etherboot propose une documentation importante principalement destinée aux systèmes Linux, mais contenant néamoins des informations utiles. Ce qui suit présente comment vous utiliseriez Etherboot sur un système &os;. Vous devez tout d'abord installer le logiciel porté net/etherboot ou sa version pré-compilée. Vous pouvez modifier la configuration d'Etherboot (i.e. pour utiliser TFTP au lieu de NFS) en éditant le fichier Config dans le répertoire des sources d'Etherboot. Pour notre configuration nous utiliserons une disquette de démarrage. Pour d'autres méthodes (PROM, ou un programme &ms-dos;), consultez la documentation d'Etherboot. Pour créer une disquette de démarrage, insérez une disquette dans le lecteur de la machine où vous avez installé Etherboot, puis rendez-vous dans le répertoire src de l'arborescence Etherboot et tapez: &prompt.root; gmake bin32/devicetype.fd0 devicetype dépend du type de carte Ethernet se trouvant dans la station de travail sans disque dur. Référez-vous au fichier NIC dans le même répertoire pour déterminer la valeur devicetype correcte. Démarrer avec <acronym>PXE</acronym> Par défaut le chargeur &man.pxeboot.8; charge le noyau via NFS. Il peut être compilé pour utiliser TFTP à la place en spécifiant l'option LOADER_TFTP_SUPPORT dans le fichier /etc/make.conf. Lisez les commentaires dans le fichier /etc/defaults/make.conf (ou /usr/share/examples/etc/make.conf pour les systèmes 5.X) pour plus de détails. Il existe deux autres options de make.conf non-documentées qui peuvent être utiles pour la configuration d'une machine faisant fonction de console série sans disque dur: BOOT_PXELDR_PROBE_KEYBOARD, et BOOT_PXELDR_ALWAYS_SERIAL (cette dernière n'existe que sous &os; 5.X). Pour utiliser PXE quand la machine démarre, vous aurez normalement besoin de sélectionner l'option Boot from network dans votre BIOS, ou d'appuyer sur une touche de fonction lors de l'initialisation du PC. Configuration des serveurs <acronym>TFTP</acronym> et <acronym>NFS</acronym> TFTP système sans disque dur NFS système sans disque dur Si vous utilisez PXE ou Etherboot configurés pour employer TFTP, vous devez activer tftpd sur le serveur de fichier: Créez un répertoire à partir duquel tftpd proposera les fichiers, e.g. /tftpboot. Ajoutez la ligne suivante à votre fichier /etc/inetd.conf: tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot Il apparaît que certaines versions de PXE veulent la version TCP de TFTP. Dans ce cas, ajoutez une seconde ligne, en remplaçant dgram udp par stream tcp. Demandez à inetd de relire son fichier de configuration: &prompt.root; kill -HUP `cat /var/run/inetd.pid` Le répertoire tftpboot peut être placé n'importe où sur le serveur. Assurez-vous que son emplacement est défini dans les fichiers inetd.conf et dhcpd.conf. Dans tous les cas, vous devez également activer NFS et exporter le système de fichiers approprié sur le serveur NFS. Ajoutez ce qui suit au fichier /etc/rc.conf: nfs_server_enable="YES" Exportez le système de fichiers contenant le répertoire racine du système sans disque dur en ajoutant ce qui suit au fichier /etc/exports (ajustez le point de montage et remplacez margaux corbieres avec les noms des stations de travail sans disque dur): /data/misc -alldirs -ro margaux corbieres Demandez à mountd de relire son fichier de configuration. Si vous avez eu besoin d'activer NFS dans /etc/rc.conf lors du premier point, vous voudrez probablement plutot redémarrer la machine. &prompt.root; kill -HUP `cat /var/run/mountd.pid` Compilation d'un noyau pour système sans disque dur système sans disque dur configuration du noyau Si vous utilisez Etherboot, vous devez créer un fichier de configuration du noyau pour le client sans disque dur avec les options suivantes (en plus des options habituelles): options BOOTP # Use BOOTP to obtain IP address/hostname options BOOTP_NFSROOT # NFS mount root filesystem using BOOTP info Vous pouvez vouloir également employer les options BOOTP_NFSV3, BOOT_COMPAT et - BOOTP_WIRED_TO (réferez-vous au + BOOTP_WIRED_TO (référez-vous au fichier LINT sous 4.X ou NOTES sous 5.X). Les noms de ces options sont historiques et légèrement trompeur comme elles activent indifférement l'utilisation de DHCP et BOOTP dans le noyau (il est également possible de forcer une utilisation stricte de BOOTP ou DHCP). Compilez le noyau (voir ), et copiez-le à l'emplacement indiqué dans dhcpd.conf. Quand on utilise PXE, la compilation d'un noyau avec les options précédentes n'est pas strictement nécessaire (bien que conseillé). Les activer causera un plus grand nombre de requêtes DHCP générées lors du démarrage du noyau, avec un petit risque - d'inconsistence entre les nouvelles valeurs et celles + d'inconsistance entre les nouvelles valeurs et celles récupérées par &man.pxeboot.8; dans certains cas particuliers. L'avantage de leur utilisation est que le nom de la machine sera forcément défini. Sinon vous devrez définir le nom de la machine par une autre méthode, par exemple dans un fichier rc.conf particulier au client. Afin d'être chargeable par Etherboot, un noyau 5.X doit être compilé avec les “device hints”. Vous définirez normalement l'option suivante dans le fichier de configuration (voir le fichier de commentaires sur la configuration: NOTES): hints "GENERIC.hints" Préparer le système de fichiers racine système de fichiers racine système sans disque dur Vous devez créer un système de fichiers racine pour les stations de travail sans disque dur, à l'emplacement défini par root-path dans le fichier dhcpd.conf. Les sections suivantes décrivent deux manières de le faire. Utilisation de la procédure <filename>clone_root</filename> C'est la méthode la plus rapide pour créer un système de fichiers racine, mais elle est, pour le moment, uniquement supportée sous &os; 4.X.. Cette procédure est située à l'emplacement /usr/share/examples/diskless/clone_root et demande quelques modifications, pour au moins ajuster l'emplacement du système de fichiers à créer (la variable DEST). Référez-vous aux commentaires situés en début de la procédure pour information. Ils expliquent comment le système de fichiers de base est construit, et comment les fichiers peuvent être remplacés de façon sélective par des versions spécifiques à un fonctionnement sans disque dur, ou à un sous-réseau, ou encore à une station de travail particulière. Ils donnent également des exemples de fichiers /etc/fstab et /etc/rc.conf pour un fonctionnement sans disque dur. Les fichiers README dans le répertoire /usr/share/examples/diskless contiennent beaucoup d'information de fond, mais, avec les autres exemples du répertoire diskless, ils documentent une méthode de configuration qui est distincte de celle utilisée par clone_root et les procédures de démarrage du système de /etc, ce qui est un peu à l'origine de confusions. Utilisez-les comme référence uniquement, à moins que vous préfériez la méthode qu'ils décrivent, dans quel cas vous devrez modifier les procédures rc. Utilisation de la procédure <command>make world</command> standard Cette méthode s'applique aussi bien à &os; 4.X qu'à &os; 5.X et installera un système complet (et non pas uniquement le système de fichiers racine) dans le répertoire défini par DESTDIR. Tout ce dont vous avez besoin de faire est d'exécuter la procédure suivante: #!/bin/sh export DESTDIR=/data/misc/diskless mkdir -p ${DESTDIR} cd /usr/src; make world && make kernel cd /usr/src/etc; make distribution Une fois cela terminé, vous devrez personaliser vos fichiers /etc/rc.conf et /etc/fstab situés dans DESTDIR en fonction de vos besoins. Configuration de l'espace de pagination Si nécessaire, un fichier de pagination situé sur le serveur peut être utilisé via NFS. Une des méthodes couramment utilisées pour cela n'est plus supportée sous 5.X. Pagination via <acronym>NFS</acronym> sous &os; 4.X L'emplacement et la taille du fichier de pagination peuvent être spécifiés avec les options BOOTP/DHCP 128 et 129 spécifiques à &os;. Des exemples de fichiers de configuration pour ISC DHCP 3.0 ou bootpd suivent: Ajoutez les lignes suivantes au fichier dhcpd.conf: # Global section option swap-path code 128 = string; option swap-size code 129 = integer 32; host margaux { ... # Standard lines, see above option swap-path "192.168.4.4:/netswapvolume/netswap"; option swap-size 64000; } swap-path est le chemin d'accès vers un répertoire où les fichiers de pagination sont situés. Chaque fichier sera nommé swap.ip-client. Les anciennes version de dhcpd utilisaient une syntaxe du type option option-128 "..., qui n'est plus supportée. /etc/bootptab utiliserait la syntaxe suivante à la place: T128="192.168.4.4:/netswapvolume/netswap":T129=0000fa00 Dans le fichier /etc/bootptab, la taille de l'espace de pagination doit être exprimée en hexadécimal. Sur le serveur du fichier de pagination par NFS, créez le(s) fichier(s) de pagination: &prompt.root; mkdir /netswapvolume/netswap &prompt.root; cd /netswapvolume/netswap &prompt.root; dd if=/dev/zero bs=1024 count=64000 of=swap.192.168.4.6 &prompt.root; chmod 0600 swap.192.168.4.6 192.168.4.6 est l'adresse IP du client sans disque dur. Sur le serveur du fichier de pagination par NFS, ajoutez la ligne suivante au fichier /etc/exports: /netswapvolume -maproot=0:10 -alldirs margaux corbieres Ensuite demandez à mountd à relire le fichier exports, comme plus haut. Pagination via <acronym>NFS</acronym> sous &os 5.X Le noyau ne supporte pas l'activation de la pagination par NFS au démarrage. L'espace de pagination doit être activé par les procédures de démarrage, en montant un système de fichiers accessible en écriture et en créant et en activant un fichier de pagination. Pour créer un fichier de pagination de la taille appropriée, vous pouvez effectuer ce qui suit: &prompt.root; dd if=/dev/zero of=/path/to/swapfile bs=1k count=1 oseek=100000 Pour ensuite l'activer, vous devez ajouter la ligne suivante à votre fichier rc.conf: swapfile=/path/to/swapfile Problèmes divers Utilisation d'un <filename>/usr</filename> en lecture seule système sans disque dur /usr en lecture seule Si la station de travail sans disque dur est configurée pour exécuter X, you devrez ajuster le fichier de configuration de XDM, qui envoie le journal d'erreurs sur /usr par défaut. Utilisation d'un serveur non-&os; Quand le serveur pour le système de fichiers racine ne fait pas tourner &os;, vous devrez créer le système de fichiers racine sur une machine &os;, puis le copier vers sa destination en utilisant tar ou cpio. Dans cette situation, il y a parfois des problèmes avec les fichiers spéciaux de périphériques dans /dev, en raison de différences de taille sur les entiers. Une solution à ce problème est d'exporter un répertoire à partir du serveur non-&os;, de monter ce répertoire sur une machine &os;, et exécuter MAKEDEV sur la machine &os; pour créer les entrées de périphériques correctes (&os; 5.X et les versions suivantes utilisent &man.devfs.5; pour l'allocation des fichiers spéciaux de périphériques de manière transparente pour l'utilisateur, exécuter MAKEDEV sur ces versions est inutile). ISDN ISDN—(RNIS) Une bonne source d'information sur la technologie et le matériel ISDN (RNIS) est la page ISDN de Dan Kegel. Voici un rapide aperçu à propos de l'ISDN: Si vous résidez en Europe, vous devriez étudier la section sur les cartes ISDN. Si vous envisagez d'utiliser l'ISDN avant tout pour vous connecter à l'Internet par l'intermédiaire d'un fournisseur d'accès Internet et d'une ligne - téléphoniaue non dédiée, vous + téléphonique non dédiée, vous devriez vous intéresser aux Adaptateurs Terminaux. C'est la solution la plus souple, qui vous posera le moins de problèmes si vous changez de fournisseur d'accès. Si vous interconnectez deux réseaux locaux, ou si vous vous connectez à l'Internet avec une liaison ISDN - dédieé, vous devriez envisager un pont/routeur + dédiée, vous devriez envisager un pont/routeur autonome. Le coût est un facteur déterminant de la solution que vous choisirez. Les options suivantes sont listées de la moins chère à la plus chère. Hellmuth Michaelis Contribution de Cartes ISDN ISDN cartes L'implémentation ISDN de &os; ne supporte que la norme DSS1/Q.931 (ou Euro-ISDN) utilisant des cartes passives. Depuis &os; 4.4, quelques cartes actives sont supportées où le firmware supporte également d'autres protocoles au niveau des signaux, cela inclut les premières cartes supportées du type “Primary Rate ISDN” (PRI). Le logiciel isdn4bsd vous permet de vous connecter à d'autres routeurs ISDN soit en utilisant l'IP sur de l'HDLC de base, soit en utilisant PPP synchrone: en employant PPP intégré au noyau avec isppp, une version modifiée du pilote de périphérique &man.sppp.4;, ou en employant &man.ppp.8; en mode utilisateur. L'utilisation de &man.ppp.8; en mode utilisateur rend possible l'agrégation de deux ou plus canaux ISDN de type B. Une application capable de répondre aux appels téléphoniques est également disponible, tout comme de nombreux utilitaires comme un modem logiciel 300 bauds. Un nombre croissant de cartes ISDN pour PC sont supportées sous &os; et les retours montrent qu'elles sont utilisées avec succès dans toute l'Europe et dans de nombreuses autres parties du monde. Les cartes ISDN passives supportées sont principalement celles avec le circuit ISDN ISAC/HSCX/IPAC d'Infineon (précédemment Siemens), mais également les cartes avec des circuits en provenance de Cologne Chip (cartes ISA uniquement), les cartes PCI avec les circuits Winbond W6692, quelques cartes avec les circuits Tiger300/320/ISAC et quelques cartes avec des circuits spécifiques comme l'AVM Fritz!Card PCI V.1.0 de l'AVM Fritz!Card PnP. Actuellement les cartes ISDN actives supportées sont les cartes AVM B1 (ISA et PCI) BRI et les cartes PCI AVM T1 PRI. Pour de la documentation sur isdn4bsd, consultez le répertoire /usr/share/examples/isdn/ sur votre système &os; ou sur la page web d'isdn4bsd qui propose également des astuces, des erratas et bien plus de documentation que le manuel d'isdn4bsd. Au cas où vous seriez intéressé par l'ajout du support pour un protocole ISDN différent, d'une carte ISDN pour PC non encore supportée ou par l'amélioration d'isdn4bsd, veuillez contacter &a.hm;. Pour les questions concernant l'installation, la configuration et le dépannage d'isdn4bsd, une liste de diffusion &a.isdn.name; est disponible. Adaptateurs terminaux ISDN Les adaptateurs terminaux—“Terminal adapters (TA)”; sont l'équivalent ISDN des modems pour les lignes téléphoniques ordinaires. modem La plupart des TA utilisent le jeu de commandes standard des modems Hayes, et peuvent être utilisés en remplacement d'un modem. Un TA fonctionne essentiellement de la même manière qu'un modem à la différence que la vitesse de la connexion sera plus élevée qu'avec votre vieux modem. Vous devrez configurer PPP de façon exactement identique que pour un modem classique. Assurez-vous de fixer la vitesse de votre port série la plus haute possible. PPP Le principal avantage d'utiliser un TA pour vous connecter à votre fournisseur d'accès Internet est de pouvoir utiliser PPP en mode dynamic. Comme l'espace d'adressage IP disponible devient de plus en plus restreint, la plupart des fournisseurs d'accès ne désirent plus vous fournir d'adresse IP statique. La plupart des routeurs autonomes ne peuvent pas fonctionner avec une allocation dynamique d'adresse IP. Les fonctionnalités et la stabilité de la connexion des adaptateurs terminaux reposent complètement sur le “daemon” PPP. Cela vous permet de passer facilement d'un modem classique à l'ISDN sur une machine &os;, si vous avez déjà configuré PPP. Cependant, les problèmes que vous avez éventuellement rencontrés avec PPP persisteront. Si vous désirez un maximum de stabilité, utilisez PPP intégré au noyau, à la place du PPP en mode utilisateur. Les adaptateurs suivants sont connus pour fonctionner avec &os;: Motorola BitSurfer et Bitsurfer Pro Adtran La plupart des adaptateurs terminaux fonctionneront probablement également, les fabricants de TA font en sorte que leurs produits acceptent la plupart du jeu de commandes AT des modems. Le vrai problème avec les adaptateurs terminaux est que comme pour les modems, il vous faudra une bonne interface série dans votre ordinateur. Vous devriez lire le document sur les ports série sous &os; pour comprendre en détail le fonctionnement des périphériques série et les différences entre les ports séries asynchrones et synchrones. Un adaptateur terminal sur un port série PC standard (asynchrone) vous limite à 115.2 Kbs, même si vous disposez d'une connexion à 128 Kbs. Pour utiliser complètement les 128 Kbs offert par l'ISDN, vous devez brancher l'adaptateur sur une carte série synchrone. Ne vous imaginez pas qu'il suffit d'acheter un adaptateur terminal interne pour s'affranchir du problème synchrone/asynchrone. Les adaptateurs internes disposent simplement d'un port série PC standard. Tout ce que vous y gagnerez sera d'économiser un câble série et de libérer une prise électrique. Une carte synchrone avec un adaptateur terminal est au moins aussi rapide qu'un routeur autonome, piloté par une simple machine &os;, et probablement plus souple. Le choix entre carte synchrone/adaptateur ou routeur autonome est une question de goût. Ce sujet a - été aborbé dans les listes de diffusion. - Nous vous suggerons de chercher dans les archives pour obtenir l'intégralité de la discussion. Ponts/Routeurs ISDN autonomes ISDN ponts/routeurs autonomes Les ponts ou routeurs ISDN ne sont pas spécifiques à &os; ou à tout autre système d'exploitation. Pour une description complète de la technologie du routage et des ponts, veuillez vous reportez à un ouvrage de référence sur les réseaux. Dans le contexte de cette section, les termes de routeur et de pont seront utilisés indifféremment. Comme le prix des routeurs/ponts ISDN d'entrée de gamme baissent, il est probable qu'ils deviennent un choix de plus en plus populaire. Un routeur ISDN est une petite boîte qui se branche directement sur votre réseau Ethernet, et gère sa propre connexion aux autres ponts/routeurs. Il intègre le logiciel nécessaire au support du protocole PPP et d'autres protocoles. Un routeur vous offrira un débit plus élevé qu'un adaptateur terminal standard, puisqu'il utilisera une connexion ISDN synchrone. Le principal problème avec les routeurs et ponts ISDN est que l'intéropérabilité entre les - matériels des différents contructeurs n'est pas + matériels des différents constructeurs n'est pas toujours garantie. Si vous projetez de vous connecter à un fournisseur d'accès Internet, vous devriez discuter de vos besoins avec ce dernier. Si vous envisagez de connecter ensemble deux réseaux locaux, comme le réseau de votre domicile et celui de votre bureau, c'est la solution la plus simple et celle qui demande le moins de maintenance. Etant donné que vous êtes la personne qui achète les équipements pour les deux extrémités, vous êtes sûr que cela fonctionnera. Par exemple pour connecter un ordinateur personnel situé à son domicile ou le réseau d'une agence à celui du siège social, la configuration suivante pourra être utilisée: Réseau d'agence ou à domicile 10 base 2 Le réseau utilise une topologie en bus avec une connectique Ethernet 10 base 2 (“thinnet”). Connectez le routeur au réseau à l'aide d'un émetteur/récepteur AUI/10BT si nécessaire. ---Station de travail Sun | ---Machine FreeBSD | ---Windows 95 | Routeur autonome | Liaison ISDN BRI Ethernet 10 Base 2 Si votre réseau de domicile/d'agence n'est constitué que d'un seul ordinateur, vous pouvez utiliser une paire torsadée croisée pour le connecter directement au routeur autonome. Siège social ou autre réseau 10 base T Le réseau utilise une topologie en étoile avec une connectique Ethernet 10 base T (“paire torsadée”). -------Serveur Novell | H | | ---Sun | | | U ---FreeBSD | | | ---Windows 95 | B | |___---Routeur autonome | Liaison ISDN BRI Architecture du Réseau ISDN Un des principaux avantages de la plupart des routeurs/ponts est le fait qu'ils permettent d'avoir deux connexions PPP séparées et indépendantes vers deux sites différents et cela en même temps. Ceci n'est pas supporté par la plupart des adaptateurs terminaux, en dehors de modèles spécifiques (en général coûteux) qui disposent de deux ports série. Ne confondez pas cette possibilité avec l'agrégation de canaux, MPP, etc. Ceci peut être une fonctionnalité très utile si, par exemple, vous disposez d'une connexion ISDN dédiée au bureau et vous voudriez en profiter mais vous ne voulez pas acquérir une nouvelle ligne ISDN. Un routeur au bureau peut gérer un canal B dédié (64 Kbps) vers l'Internet et utiliser l'autre canal B pour une autre connexion. Le deuxième canal B peut être utilisé pour les connexions entrantes, sortantes ou pour l'agrégation de canaux (MPP, etc.) avec le premier canal B pour augmenter la bande passante. IPX/SPX Un pont Ethernet vous permettra de transmettre autre chose que juste du trafic IP. Vous pouvez également faire passer de l'IPX/SPX ou tout autre protocole que vous utilisez. Chern Lee Contribution de Translation d'adresses Généralités natd Le “daemon” de translation d'adresses (“Network Address Translation”—NAT) de &os;, généralement connu sous le nom de &man.natd.8; est un “daemon” qui accepte les paquets IP entrants, change l'adresse de la source par celle de la machine locale et ré-injecte les paquets dans le flux sortant des paquets IP. Le programme &man.natd.8; effectue cela en changeant l'adresse IP et le port source de sorte quand les données réponse arrivent il soit en mesure de déterminer la provenance des données d'origine et les transférer à l'émetteur original. Partage de connexion Internet NAT L'utilisation classique de NAT est le partage de connexion Internet. Architecture du réseau En raison de la diminution du nombre d'adresses IP libres sous IPv4, et de l'augmentation du nombre d'utilisateurs de lignes haut-débit comme le câble ou l'ADSL, le besoin d'utiliser une solution de partage de connexion est donc en constante augmentation. La possibilité de connecter plusieurs ordinateurs par l'intermédiaire d'une connexion et d'une adresse IP fait de &man.natd.8; une solution de choix. Plus généralement, un utilisateur dispose d'une machine connecté sur la câble ou une ligne ADSL avec une adresse IP et désire utiliser cet ordinateur connecté pour fournir un accès Internet à d'autres machines du réseau local. Pour cela, la machine &os; sur Internet doit jouer le rôle de passerelle. Cette machine passerelle doit avoir deux cartes réseaux—l'une pour se connecter au routeur Internet, l'autre est connectée au réseau local. Toutes les machines du réseau local sont connectées par l'intermédiaire d'un hub ou d'un switch. Il existe plusieurs manières pour connecter un réseau local à l'Internet à travers une passerelle &os;. Cet exemple n'abordera que le cas d'une passerelle avec au moins deux cartes réseaux. _______ __________ _________ | | | | | | | Hub |-----| Client B |-----| Routeur |----- Internet |_______| |__________| |_________| | ____|_____ | | | Client A | |__________| Organisation du réseau Une telle configuration est communément utilisée pour partager une connexion Internet. Une des machines du réseau local est connectée à Internet. Le reste des machines accède à Internet par l'intermédiaire de cette machine “passerelle”. noyau configuration Configuration Les options suivantes doivent être présentes dans le fichier de configuration du noyau: options IPFIREWALL options IPDIVERT De plus, les options suivantes peuvent également être utiles: options IPFIREWALL_DEFAULT_TO_ACCEPT options IPFIREWALL_VERBOSE Ce qui suit doit figurer dans le fichier /etc/rc.conf: gateway_enable="YES" firewall_enable="YES" firewall_type="OPEN" natd_enable="YES" natd_interface="fxp0" natd_flags="" Configure la machine comme passerelle. Exécuter sysctl net.inet.ip.forwarding=1 aurait le même effet. Active au démarrage les règles du coupe-feu se trouvant dans le fichier /etc/rc.firewall. Cela spécifie un ensemble de règles prédéfinies pour le coupe-feu qui autorise tous les paquets entrant. Consultez le fichier /etc/rc.firewall pour d'autres ensembles de régles. Indique à travers quelle interface transférer les paquets (l'interface connectée à l'Internet). Toutes options de configuration supplémentaires passées à &man.natd.8; au démarrage. Le fait d'avoir les options précédentes définies dans le fichier /etc/rc.conf lancera la commande /etc/rc.conf au démarrage. Cette commande peut être également exécutée à la main. Il est également possible d'utiliser un fichier de configuration pour &man.natd.8; quand il y a trop d'options à passer. Dans ce cas, le fichier de configuration doit être défini en ajoutant la ligne suivante au fichier /etc/rc.conf: natd_flags="-f /etc/natd.conf" Le fichier /etc/natd.conf contiendra une liste d'options de configuration, une par ligne. Par exemple le cas de figure de la section suivante utiliserait le fichier suivant: redirect_port tcp 192.168.0.2:6667 6667 redirect_port tcp 192.168.0.3:80 80 Pour plus d'information concernant le fichier de configuration, consultez la page de manuel de &man.natd.8; au sujet de l'option . A chaque machine et interface derrière le réseau local doit être assigné une adresse IP de l'espace d'adresses privées comme défini par la RFC 1918 et doit disposer d'une passerelle par défaut qui est l'adresse IP interne de la machine &man.natd.8;. Par exemple, les clients A et B du réseau local ont les adresses IP 192.168.0.2 et 192.168.0.3, tandis que l'interface sur le réseau local de la machine natd a pour adresse IP 192.168.0.1. La passerelle par défaut des clients A et B doit être l'adresse 192.168.0.1 de la machine natd. L'interface externe ou Internet de cette dernière ne demande aucune modification spécifique pour que &man.natd.8; puisse fonctionner. Redirection de ports L'inconvénient avec &man.natd.8; est que les clients du réseau local ne sont pas accessibles depuis l'Internet. Les clients sur le réseau local peuvent établir des connexions sortantes vers le monde extérieur mais ne peuvent recevoir de connexions entrantes. Cela présente un problème si l'on tente de faire tourner des services Internet sur une des machines du réseau local. Une solution simple à ce problème est de rediriger les ports Internet sélectionnés de la machine natd vers le client sur le réseau local. Par exemple, un serveur IRC tourne sur le client A, et un serveur web sur le client B. Pour que cela fonctionne correctement, les connections reçues sur les ports 6667 (IRC) et 80 (web) doivent être redirigées vers les machines correspondantes. L'option doit être passée à &man.natd.8; avec les autres options adéquates. La syntaxe est la suivante: -redirect_port proto targetIP:targetPORT[-targetPORT] [aliasIP:]aliasPORT[-aliasPORT] [remoteIP[:remotePORT[-remotePORT]]] Dans l'exemple précédent, l'argument passé à la commande devrait être: -redirect_port tcp 192.168.0.2:6667 6667 -redirect_port tcp 192.168.0.3:80 80 Cela va rediriger les ports tcp voulus vers les machines du réseau local. L'option peut être utilisée pour indiquer une plage de ports plutôt que des ports individuels. Par exemple tcp 192.168.0.2:2000-3000 2000-3000 redirigerait toutes les connexions reçues sur les ports 2000 à 3000 vers les ports 2000 à 3000 du client A. Ces options peuvent être utilisées quand on exécute directement &man.natd.8;, placées dans l'option natd_flags="" du fichier /etc/rc.conf, ou passées par l'intermédiaire d'un fichier de configuration. Pour plus d'éléments et d'options de configuration consultez la page de manuel &man.natd.8; Redirection d'adresses redirection d'adresses La redirection d'adresses est utile si plusieurs adresses IP sont disponibles mais doivent se trouver sur une seule machine. Avec cela, &man.natd.8; peut assigner à chaque client du réseau local sa propre adresse IP externe. Le programme &man.natd.8; récrit alors les paquets sortant des clients du réseau local avec l'adresse IP externe correcte et redirige tout le trafic entrant sur une adresse IP particulière vers la machine du réseau local correspondante. Ce principe est également connu sous le nom de translation d'adresses statique. Par exemple, les adresses IP 128.1.1.1, 128.1.1.2, et 128.1.1.3 appartiennent à la passerelle natd. L'adresse 128.1.1.1 peut être utilisée comme adresse IP externe de la passerelle natd, tandis que 128.1.1.2 et 128.1.1.3 sont redirigées vers les machines A et B du réseau local. La syntaxe de l'option est la suivante: -redirect_address localIP publicIP localIP L'adresse IP interne du client sur le réseau local. publicIP L'adresse IP externe correspondant au client sur le réseau local. Dans l'exemple, les arguments passés à la commande seraient: -redirect_address 192.168.0.2 128.1.1.2 -redirect_address 192.168.0.3 128.1.1.3 Comme pour l'option , ces options peuvent être placées dans l'option natd_flags="" du fichier /etc/rc.conf, ou passées par l'intermédiaire d'un fichier de configuration. Avec la redirection d'adresse, il n'y a pas besoin de redirection de ports puisque toutes les données reçues sur une IP particulière sont redirigées. Les adresses IP sur la machine natd doivent être active et pointer sur l'interface externe. Consultez la page de manuel &man.rc.conf.5; pour cela. IP sur liaison parallèle (PLIP) PLIP IP sur liaison parallèle PLIP PLIP nous permet d'utiliser le protocole TCP/IP entre ports parallèles. C'est utile sur des machines sans cartes réseaux, ou pour effectuer une installation sur ordinateur portable. Dans cette section nous aborderons: La fabrication d'un câble parallèle (“laplink”). La connexion de deux ordinateurs via PLIP. Fabriquer un câble parallèle Vous pouvez acheter un câble parallèle auprès de la plupart des vendeurs de matériel informatique. Si ce n'est pas le cas, ou désirez savoir comment est fait un tel câble, le tableau suivant montre comment en faire un à partir d'un câble parallèle d'imprimante. Câblage d'un câble parallèle pour réseau A-name A-End B-End Descr. Post/Bit DATA0 -ERROR 2 15 15 2 Data 0/0x01 1/0x08 DATA1 +SLCT 3 13 13 3 Data 0/0x02 1/0x10 DATA2 +PE 4 12 12 4 Data 0/0x04 1/0x20 DATA3 -ACK 5 10 10 5 Strobe 0/0x08 1/0x40 DATA4 BUSY 6 11 11 6 Data 0/0x10 1/0x80 GND 18-25 18-25 GND -
Configurer PLIP Tout d'abord procurez-vous un câble “laplink”. Vérifiez ensuite que les deux ordinateurs disposent d'un noyau avec le support pour le pilote de périphérique &man.lpt.4;. &prompt.root; grep lp /var/run/dmesg.boot lpt0: <Printer> on ppbus0 lpt0: Interrupt-driven port Le port parallèle doit fonctionner sous interruption, sous &os; 4.X vous devriez avoir une ligne semblable à la ligne suivante dans le fichier de configuration du noyau: device ppc0 at isa? irq 7 Sous &os; 5.X, le fichier /boot/device.hints devrait contenir les lignes suivantes: hint.ppc.0.at="isa" hint.ppc.0.irq="7" Ensuite vérifiez si le fichier de configuration du noyau contient une ligne device plip ou si le module plip.ko est chargé. Dans les deux cas l'interface réseau parallèle devrait apparaître quand vous utilisez la commande &man.ifconfig.8;: &prompt.root; ifconfig plip0 plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500 Branchez le câble “laplink” sur les interfaces parallèles des deux ordinateurs. Configurez les paramètres de l'interface réseau des deux côtés en tant que root. Par exemple, si vous voulez connecter la machine host1 avec la machine host2: host1 <-----> host2 IP Address 10.0.0.1 10.0.0.2 Configurez l'interface sur host1 en tapant: &prompt.root; ifconfig plip0 10.0.0.1 10.0.0.2 Configurez l'interface sur host2 en tapant: &prompt.root; ifconfig plip0 10.0.0.2 10.0.0.1 Vous devriez avoir maintenant une connexion qui fonctionne. Veuillez consulter les pages de manuel &man.lp.4; et &man.lpt.4; pour plus de détails. Vous devriez également ajouter les deux noms de machines dans le fichier /etc/hosts: 127.0.0.1 localhost.my.domain localhost 10.0.0.1 host1.my.domain host1 10.0.0.2 host2.my.domain Pour vérifier le bon fonctionnement de la connexion, aller sur les deux machines et effectuez un “ping” vers l'autre machine. Par exemple, sur host1: &prompt.root; ifconfig plip0 plip0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000 &prompt.root; netstat -r Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire host2 host1 UH 0 0 plip0 &prompt.root; ping -c 4 host2 PING host2 (10.0.0.2): 56 data bytes 64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms 64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms 64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms 64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms --- host2 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms
Aaron Kaplan Ecrit original de Tom Rhodes Restructuré et ajouté par Brad Davis Complété par IPv6 L'IPv6 (également connu sous le nom de IPng “IP nouvelle génération”) est la nouvelle version du très célèbre protocole IP (aussi connu sous le nom d'IPv4). Comme les autres systèmes BSD, &os; utilise l'implémentation IPv6 KAME. Votre système &os; est donc fourni avec tout ce dont vous aurez besoin pour tester l'IPv6. Cette section se concentre sur la configuration et l'utilisation d'IPv6. Au début des années 90, on a pris conscience de la diminution rapide de l'espace d'adresses IPv4. Etant donné le taux d'expansion de l'Internet, deux problèmes majeurs apparaissaient: Le manque d'adresses. Aujourd'hui ce n'est plus vraiment un problème puisque les espaces d'adresses privées RFC1918 (10.0.0.0/8, 172.16.0.0/12, et 192.168.0.0/16) et la translation d'adresses (NAT) sont utilisés. Les tables des routeurs devenaient trop importantes. C'est toujours un problème actuellement. - L'IPv6 rémédie à ces problèmes + L'IPv6 remédie à ces problèmes et à de nombreux autres: Espace d'adressage sur 128 bits. Ou plus précisément, il y a 340 282 366 920 938 463 463 374 607 431 768 211 456 adresses disponibles. Cela équivaut à approximativement 6.67 * 10^27 adresses IPv6 par kilomètre-carré de surface de notre planète. Les routeurs ne stockeront que des regroupements d'adresses dans leurs tables de routage réduisant donc l'espace moyen d'une table de routage à 8192 entrées. IPv6 présente également de nombreuses autres intéressantes fonctionnalités telles que: L'autoconfiguration des adresses (RFC2462) Adresses unicast (“une parmi plusieurs”) Adresses multicast (multidestinataires) obligatoires IPsec (protocole de sécurité IP) Struture d'entête simplifiée IP mobile - Mécanismes de transistion IPv6-vers-IPv4 + Mécanismes de transition IPv6-vers-IPv4 Pour plus d'informations consultez les références suivantes: Généralités sur l'IPv6 à playground.sun.com KAME.net 6bone.net Les adresses IPv6 Il existe différent types d'adresses IPv6: unicast, anycast et multicast. Les adresses unicast (mono-destinataire) sont les adresses classiques. Un paquet envoyé à une adresse unicast arrive à l'interface correspondant à l'adresse. Les adresses anycast ne sont normalement pas distinguables des adresses unicast mais correspondent à un groupe d'interfaces. Un paquet destiné à une adresse anycast arrivera à l'interface la plus proche (en terme d'unité de distance du protocole de routage). Les adresses anycast devraient n'être utilisées que par les routeurs. Les adresses multicast identifient un groupe d'interfaces. Un paquet destiné à une adresse multicast arrivera sur toutes les interfaces appartenant au groupe multicast. L'adresse de diffusion IPv4 (généralement xxx.xxx.xxx.255) est exprimée par des adresses multicast en IPv6. Adresses IPv6 réservées Adresse IPv6 Longueur du préfixe (bits) Description Notes :: 128 bits non-spécifiée similaire à 0.0.0.0 sous IPv4 ::1 128 bits adresse de boucle similaire à 127.0.0.1 sous IPv4 ::00:xx:xx:xx:xx 96 bits IPv4 encapsulé Les 32 bits de poids faible sont l'adresse IPv4. Egalement appelée “adresse IPv6 compatible IPv4”. ::ff:xx:xx:xx:xx 96 bits adresse IPv6 mappée IPv4 Les 32 bits de poids faible sont l'adresse IPv4. Destinées aux machines ne supportant pas l'IPv6. fe80:: - feb:: 10 bits lien-local similaire à l'interface de boucle sous IPv4 fec0:: - fef:: 10 bits site-local   ff:: 8 bits multicast   001 (base 2) 3 bits unicast globale Toutes les adresses unicast globales sont assignées à partir de ce pool. Les trois premiers bits de l'adresse sont “001”.
Lecture des adresses IPv6 La forme canonique est représentée suivant le schéma: x:x:x:x:x:x:x:x, où chaque “x” est une valeur héxadécimale sur 16 bits. Par exemple FEBC:A574:382B:23C1:AA49:4592:4EFE:9982 Souvent dans une adresse on aura de longues sous-parties constituées de zéros, une telle sous-partie peut être abrégée par “::”. Les trois 0s de poids fort de chaque quartet hexadécimal peuvent également être omis. Par exemple fe80::1 correspond à la forme canonique fe80:0000:0000:0000:0000:0000:0000:0001. Une troisième forme est d'écrire les derniers 32 bits dans le style IPv4 bien connu (décimal) avec des points “.” comme séparateurs. Par exemple 2002::10.0.0.1 correspond à la représentation canonique (hexadécimale) 2002:0000:0000:0000:0000:0000:0a00:0001 qui est à son tour équivalente à l'écriture 2002::a00:1. Maintenant le lecteur devrait être en mesure de comprendre ce qui suit: &prompt.root; ifconfig rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255 inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1 ether 00:00:21:03:08:e1 media: Ethernet autoselect (100baseTX ) status: active fe80::200:21ff:fe03:8e1%rl0 est une adresse de lien local configurée automatiquement. Elle est générée à partir de l'adresse MAC dans le cas de l'autoconfiguration. Pour plus d'informations sur la structure des adresses IPv6 consultez la RFC3513. Se connecter Actuellement, il y a quatre façons de se connecter - à des machines et des réseaux utilisants + à des machines et des réseaux utilisant l'IPv6: Rejoindre le réseau expérimental 6bone Obtenir un réseau IPv6 auprès de votre fournisseur d'accès. Contactez votre fournisseur d'accès Internet pour plus d'informations. Utilisation d'un tunnel 6-vers-4 (RFC3068) Utilisation du logiciel porté net/freenet6 si vous utilisez une connexion par modem. Ici nous ne parlerons que de la manière de se connecter au réseau 6bone puisque cela semble être aujourd'hui la méthode de connexion la plus populaire. Consultez tout d'abord le site 6bone et recherchez une connexion 6bone proche de vous. Contactez le responsable et avec un peu de chance on vous donnera les instructions à suivre pour configurer votre connexion. Généralement cela implique la mise en place d'un tunnel GRE (gif). Voici un exemple typique de configuration d'un tunnel &man.gif.4;: &prompt.root; ifconfig gif0 create &prompt.root; ifconfig gif0 gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280 &prompt.root; ifconfig gif0 tunnel MON_ADR_IPv4 MON_ADR_IPv4_ASSIGNEE_A_LAUTRE_BOUT_DU_TUNNEL &prompt.root; ifconfig gif0 inet6 alias MON_ADR_IPv6_ASSIGNEE_A_LEXTREMITE_DU_TUNNEL MON_ADR_IPv6_ASSIGNEE_A_LAUTRE_BOUT_DU_TUNNEL Remplacez les mots en majuscules par les informations que vous avez reçues du point d'accès 6bone. Ceci établit le tunnel. Vérifiez si le tunnel fonctionne en utilisant &man.ping6.8; sur l'adresse ff02::1%gif0. Vous devriez récevoir les réponses aux requêtes ping. Au cas où vous seriez intrigué par l'adresse ff02:1%gif0, sachez que c'est une adresse multicast. %gif0 précise que l'adresse multicast de l'interface gif0 doit être utilisée. Puisque nous utilisons ping sur une adresse multicast, l'autre bout du tunnel devrait également répondre. Désormais, la mise en place d'une route vers votre lien 6bone devrait être relativement directe: &prompt.root; route add -inet6 default -interface gif0 &prompt.root; ping6 -n MON_LIEN_MONTANT &prompt.root; traceroute6 www.jp.FreeBSD.org (3ffe:505:2008:1:2a0:24ff:fe57:e561) from 3ffe:8060:100::40:2, 30 hops max, 12 byte packets 1 atnet-meta6 14.147 ms 15.499 ms 24.319 ms 2 6bone-gw2-ATNET-NT.ipv6.tilab.com 103.408 ms 95.072 ms * 3 3ffe:1831:0:ffff::4 138.645 ms 134.437 ms 144.257 ms 4 3ffe:1810:0:6:290:27ff:fe79:7677 282.975 ms 278.666 ms 292.811 ms 5 3ffe:1800:0:ff00::4 400.131 ms 396.324 ms 394.769 ms 6 3ffe:1800:0:3:290:27ff:fe14:cdee 394.712 ms 397.19 ms 394.102 ms La sortie pourra être différente d'une machine à une autre. Maintenant vous devriez être en mesure d'atteindre le site IPv6 www.kame.net et de voir la tortue dansante — et cela si vous disposez d'un navigateur supportant l'IPv6 comme www/mozilla, Konqueror qui fait partie du logiciel x11/kdebase3, ou www/epiphany. DNS dans le monde IPv6 A l'origine, il existait deux types d'enregistrement DNS pour l'IPv6. L'organisme IETF a déclaré obsolète l'enregistrement A6. Les enregistrements AAAA sont aujourd'hui le standard. L'utilisation des enregistrements AAAA est assez direct. Assignez votre nom de machine à la nouvelle adresse IPv6 que vous venez d'obtenir en ajoutant: MYHOSTNAME AAAA MYIPv6ADDR à votre fichier de zone DNS primaire. Dans le cas où vous ne gérez pas vos propres zones DNS contactez le responsable de votre DNS. Les versions actuelles de bind (version 8.3 et 9) et dns/djbdns (avec le correctif IPv6) supportent les enregistrements AAAA. Effectuer les changements nécessaires dans le fichier <filename>/etc/rc.conf</filename> Paramétrage du client IPv6 Ces paramètres vous permettront de configurer une machine qui sera sur votre réseau local et sera un client, non pas un routeur. Pour que &man.rtsol.8; configure automatiquement votre interface réseau au démarrage tout ce dont vous avez besoin d'ajouter est: ipv6_enable="YES" Pour assigner une adresse IP statique telle que 2001:471:1f11:251:290:27ff:fee0:2093, à votre interface fxp0, ajoutez: ipv6_ifconfig_fxp0="2001:471:1f11:251:290:27ff:fee0:2093" Pour assigner le routeur par défaut 2001:471:1f11:251::1, ajoutez ce qui suit au fichier /etc/rc.conf: ipv6_defaultrouter="2001:471:1f11:251::1" Paramétrage d'un routeur/passerelle IPv6 Ceci vous aidera à mettre en oeuvre les instructions que votre fournisseur de tunnel, tel que 6bone, vous a donné et à les convertir en paramètres qui seront conservés à chaque démarrage. Pour rétablir votre tunnel au démarrage, utilisez quelque chose comme ce qui suit dans le fichier /etc/rc.conf: Listez les interfaces génériques de tunnel qui seront configurées, par exemple gif0: gif_interfaces="gif0" Pour configurer l'interface avec une adresse (extrémité) locale MY_IPv4_ADDR vers une adresse (extrémité) distante REMOTE_IPv4_ADDR: gifconfig_gif0="MY_IPv4_ADDR REMOTE_IPv4_ADDR" Pour utiliser l'adresse IPv6 que l'on vous a assigné en vue d'être utilisée pour votre extrémité du tunnel IPv6, ajoutez: ipv6_ifconfig_gif0="MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR" Ensuite tout ce qu'il reste à faire est de définir la route par défaut pour l'IPv6. C'est l'autre extrémité du tunnel IPv6: ipv6_defaultrouter="MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR" Paramétrage d'un tunnel IPv6 Si le serveur doit router de l'IPv6 entre votre réseau et le reste du monde, le paramètre suivant sera également nécessaire dans votre fichier /etc/rc.conf: ipv6_gateway_enable="YES" Annonce du routeur et auto-configuration Cette section vous aidera à configurer &man.rtadvd.8; pour l'annonce de la route IPv6 par défaut. Pour activer &man.rtadvd.8;, vous devrez ajouter ce qui suit à votre fichier /etc/rc.conf: rtadvd_enable="YES" Il est important que vous indiquiez l'interface sur laquelle le routeur IPv6 sera sollicité. Par exemple pour que &man.rtadvd.8; utilise fxp0: rtadvd_interfaces="fxp0" Nous devons maintenant créer le fichier de configuration /etc/rtadvd.conf. Voici un exemple: fxp0:\ :addrs#1:addr="2001:471:1f11:246::":prefixlen#64:tc=ether: Remplacez fxp0 avec l'interface que vous allez utiliser. Ensuite remplacez 2001:471:1f11:246:: avec votre préfixe. Si vous êtes un sous-réseau /64 dédié, il ne sera pas nécessaire de modifier quelque chose d'autre. Sinon, vous devrez modifier prefixlen# avec la valeur correcte.
Harti Brandt Contribution de ATM (<quote>Asynchronous Transfer Mode</quote>) Configuration IP conventionnelle sur ATM (PVCs) L'IP conventionnelle sur ATM (“Classical IP over ATM”—CLIP) est la méthode la plus simple pour utiliser ATM (Asynchronous Transfer Mode) avec l'IP. Elle peut être utilisée en mode non connecté (“Switched Virtual Connections”—SVCs) et en mode connecté (“Permanent Virtual Connections”—PVCs). Cette section décrit comment configurer un réseau basé sur les PVCs. Configurations en réseau maillé La première méthode de configuration CLIP avec des PVCs est de connecter entre elles chaque machine du réseau par l'intermédiaire d'une PVC dédiée. Bien que cela soit simple à configurer, cela tend à devenir impraticable avec un nombre important de machines. Notre exemple suppose que nous avons quatre machines sur le réseau, chacune connectée au réseau ATM à l'aide d'une carte réseau ATM. La première étape est d'établir le plan des adresses IP et des connexions ATM entre machines. Nous utilisons le plan suivant: Machine Adresse IP hostA 192.168.173.1 hostB 192.168.173.2 hostC 192.168.173.3 hostD 192.168.173.4 Pour réaliser un réseau maillé, nous avons besoin d'une connexion ATM entre chaque paire de machines: Machines Couple VPI.VCI hostA - hostB 0.100 hostA - hostC 0.101 hostA - hostD 0.102 hostB - hostC 0.103 hostB - hostD 0.104 hostC - hostD 0.105 Les valeurs VPI et VCI à chaque extrémité de la connexion peuvent bien évidemment être différentes, mais par souci de simplicité nous supposerons quelles sont identiques. Ensuite nous devons configurer les interfaces ATM sur chaque machine: hostA&prompt.root; ifconfig hatm0 192.168.173.1 up hostB&prompt.root; ifconfig hatm0 192.168.173.2 up hostC&prompt.root; ifconfig hatm0 192.168.173.3 up hostD&prompt.root; ifconfig hatm0 192.168.173.4 up en supposant que l'interface ATM est hatm0 sur toutes les machines. Maintenant les PVCs doivent être configurées sur hostA (nous supposons qu'elles sont déjà configurées sur les switches ATM, vous devez consulter le manuel du switch sur comment réaliser cette configuration). hostA&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 100 llc/snap ubr hostA&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 101 llc/snap ubr hostA&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 102 llc/snap ubr hostB&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 100 llc/snap ubr hostB&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 103 llc/snap ubr hostB&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 104 llc/snap ubr hostC&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 101 llc/snap ubr hostC&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 103 llc/snap ubr hostC&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 105 llc/snap ubr hostD&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 102 llc/snap ubr hostD&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 104 llc/snap ubr hostD&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 105 llc/snap ubr Bien évidemment des contrats de trafic autres qu'UBR (“Unspecified Bit Rate”) peuvent être utilisés dès que la carte ATM les supportent. Dans ce cas le nom du contrat de trafic est suivi par les paramètres du trafic. De l'aide concernant l'outil &man.atmconfig.8; peut être obtenue avec: &prompt.root; atmconfig help natm add ou dans la page de manuel de &man.atmconfig.8;. La même configuration peut être faite par l'intermédiaire de /etc/rc.conf. Pour la machine hostA cela ressemblerait à: network_interfaces="lo0 hatm0" ifconfig_hatm0="inet 192.168.173.1 up" natm_static_routes="hostB hostC hostD" route_hostB="192.168.173.2 hatm0 0 100 llc/snap ubr" route_hostC="192.168.173.3 hatm0 0 101 llc/snap ubr" route_hostD="192.168.173.4 hatm0 0 102 llc/snap ubr" L'état de toutes les routes CLIP peut être obtenu avec: hostA&prompt.root; atmconfig natm show