Page suivantePage pr�c�denteTable des mati�res

21. Quelques configurations-types

Ci-suivent des exemples de configurations parmi les plus typiques. Il ne s'agit que d'un guide dans la mesure o� il y a autant de fa�ons de configurer un r�seau qu'il y a de r�seaux disponibles mais il peut vous servir de point de d�part.

21.1 Un petit r�seau Ethernet local avec un routeur Linux vers un r�seau radio local

Nombre d'entre vous disposent de petits r�seaux locaux chez eux et d�sirent connecter les stations de ce r�seau � un r�seau radio local. J'ai ce type de configuration chez moi. J'ai r�ussi � obtenir un bloc d'adresses contigu�s que je g�re par une route unique sur mon Ethernet local. Votre coordinateur IP local vous aidera si vous souhaitez proc�der ainsi. Les adresses du r�seau Ethernet local forment un sous-ensemble des adresses radio. Voici ma configuration personnelle avec le routeur Linux :

 .      .   .    .    . .
 -+-                                .
 | Reseau        /---------\     .    Reseau
 | 44.136.8.96/29|         |    .     44.136.8/24        \ | /
 |               | Routeur |   .                          \|/
 |               |         |  .                            |
 |          eth0 |    &    |  .  /-----\    /----------\   |
 +---------------+         +-----| TNC |----| Radio    |---/
 |   44.136.8.97 | serveur |  .  \-----/    \----------/
 |               |         | sl0
 |               |  Linux  | 44.136.8.5
 |               |         |    .
 |               |         |     .
 |               \_________/       .
 -+-                                     .      .   .    .    . .
#!/bin/sh
# /etc/rc.net
# Configuration d'un port AX.25 de type KISS et d'une interface Ethernet
echo "/etc/rc.net"
echo "  Configuring:"
echo -n "    loopback:"
/sbin/ifconfig lo 127.0.0.1
/sbin/route add 127.0.0.1
echo " done."
echo -n "    ethernet:"
/sbin/ifconfig eth0 44.136.8.97 netmask 255.255.255.248 \
 broadcast 44.136.8.103 up
/sbin/route add 44.136.8.97 eth0
/sbin/route add -net 44.136.8.96 netmask 255.255.255.248 eth0
echo " done."
echo -n "    AX.25: "
kissattach -i 44.136.8.5 -m 512 /dev/ttyS1 4800
ifconfig sl0 netmask 255.255.255.0 broadcast 44.136.8.255
route add -host 44.136.8.5 sl0
route add -net 44.136.8.0 window 1024 sl0
echo -n "    Netrom: "
nrattach -i 44.136.8.5 netrom
echo "  Routing:"
/sbin/route add default gw 44.136.8.68 window 1024 sl0
echo "    default route."
echo done.
# end

/etc/ax25/axports

# name  callsign        speed   paclen  window  description
4800    VK2KTJ-0        4800    256     2       144.800 MHz

/etc/ax25/nrports

# name  callsign        alias   paclen  description
netrom  VK2KTJ-9        LINUX   235     Linux Switch Port

/etc/ax25/nrbroadcast

# ax25_name     min_obs def_qual        worst_qual      verbose
4800            1       120             10              1

21.2 Passerelle d'encapsulation IP dans IP

L'emploi de Linux comme passerelle d'encapsulation IP est maintenant courant � travers le monde. Le nouveau gestionnaire de tunnel IP accepte les routes multiples encapsul�es et rend obsol�te l'ancien d�mon ipip.

Un sch�ma classique :

 .      .   .    .    . .
 ---                                .
 | Reseau        /----------\     .    Reseau
 | 154.27.3/24   |          |    .     44.136.16/24       \ | /
 |               |  Linux   |   .                          \|/
 |               |          |  .                            |
 |          eth0 |          |  .  /-----\    /----------\   |
 +---------------+Passerelle+-----| TNC |----| Radio    |---/
 |   154.27.3.20 |          |  .  \-----/    \----------/
 |               |  IPIP    | sl0
 |               |          | 44.136.16.1
 |               |          |    .
 |               |          |     .
 |               \__________/       .
 ---                                     .      .   .    .    . .

Voici les fichiers de configuration int�ressants :

# /etc/rc.net
# This file is a simple configuration that provides one KISS AX.25
# radio port, one Ethernet device, and utilises the kernel tunnel driver
# to perform the IPIP encapsulation/decapsulation
#
echo "/etc/rc.net"
echo "  Configuring:"
#
echo -n "    loopback:"
/sbin/ifconfig lo 127.0.0.1
/sbin/route add 127.0.0.1
echo " done."
#
echo -n "    ethernet:"
/sbin/ifconfig eth0 154.27.3.20 netmask 255.255.255.0 \
 broadcast 154.27.3.255 up
/sbin/route add 154.27.3.20 eth0
/sbin/route add -net 154.27.3.0 netmask 255.255.255.0 eth0
echo " done."
#
echo -n "    AX.25: "
kissattach -i 44.136.16.1 -m 512 /dev/ttyS1 4800
/sbin/ifconfig sl0 netmask 255.255.255.0 broadcast 44.136.16.255
/sbin/route add -host 44.136.16.1 sl0
/sbin/route add -net 44.136.16.0 netmask 255.255.255.0 window 1024 sl0
#
echo -n "    tunnel:"
/sbin/ifconfig tunl0 44.136.16.1 mtu 512 up
#
echo done.
#
echo -n "Routing ... "
source /etc/ipip.routes
echo done.
#
# end.

et :

# /etc/ipip.routes
# This file is generated using the munge script
#
/sbin/route add -net 44.134.8.0 netmask 255.255.255.0 tunl0 gw 134.43.26.1
/sbin/route add -net 44.34.9.0 netmask 255.255.255.0 tunl0 gw 174.84.6.17
/sbin/route add -net 44.13.28.0 netmask 255.255.255.0 tunl0 gw 212.37.126.3
 ...
 ...
 ...

/etc/ax25/axports

# name  callsign        speed   paclen  window  description
4800    VK2KTJ-0        4800    256     2       144.800 MHz

Quelques points � noter :

Le nouveau script tunnel-munge :

#!/bin/sh
#
# From: Ron Atkinson <n8fow@hamgate.cc.wayne.edu>
#
#  This script is basically the 'munge' script written by Bdale N3EUA
#  for the IPIP daemon and is modified by Ron Atkinson N8FOW. It's
#  purpose is to convert a KA9Q NOS format gateways route file
#  (usually called 'encap.txt') into a Linux routing table format
#  for the IP tunnel driver.
#
#        Usage: Gateway file on stdin, Linux route format file on stdout.
#               eg.  tunnel-munge < encap.txt> ampr-routes
#
# NOTE: Before you use this script be sure to check or change the
#       following items:
#
#     1) Change the 'Local routes' and 'Misc user routes' sections
#        to routes that apply to your own area (remove mine please!)
#     2) On the fgrep line be sure to change the IP address to YOUR
#        gateway Internet address. Failure to do so will cause serious
#        routing loops.
#     3) The default interface name is 'tunl0'. Make sure this is
#        correct for your system.
echo "#"
echo "# IP tunnel route table built by $LOGNAME on `date`"
echo "# by tunnel-munge script v960307."
echo "#"
echo "# Local routes"
echo "route add -net 44.xxx.xxx.xxx netmask 255.mmm.mmm.mmm dev sl0"
echo "#"
echo "# Misc user routes"
echo "#"
echo "# remote routes"
fgrep encap | grep "^route" | grep -v " XXX.XXX.XXX.XXX" | \
awk '{
 split($3, s, "/")
 split(s[1], n,".")
 if      (n[1] == "")    n[1]="0"
 if      (n[2] == "")    n[2]="0"
 if      (n[3] == "")    n[3]="0"
 if      (n[4] == "")    n[4]="0"
 if      (s[2] == "1")   mask="128.0.0.0"
 else if (s[2] == "2")   mask="192.0.0.0"
 else if (s[2] == "3")   mask="224.0.0.0"
 else if (s[2] == "4")   mask="240.0.0.0"
 else if (s[2] == "5")   mask="248.0.0.0"
 else if (s[2] == "6")   mask="252.0.0.0"
 else if (s[2] == "7")   mask="254.0.0.0"
 else if (s[2] == "8")   mask="255.0.0.0"
 else if (s[2] == "9")   mask="255.128.0.0"
 else if (s[2] == "10")  mask="255.192.0.0"
 else if (s[2] == "11")  mask="255.224.0.0"
 else if (s[2] == "12")  mask="255.240.0.0"
 else if (s[2] == "13")  mask="255.248.0.0"
 else if (s[2] == "14")  mask="255.252.0.0"
 else if (s[2] == "15")  mask="255.254.0.0"
 else if (s[2] == "16")  mask="255.255.0.0"
 else if (s[2] == "17")  mask="255.255.128.0"
 else if (s[2] == "18")  mask="255.255.192.0"
 else if (s[2] == "19")  mask="255.255.224.0"
 else if (s[2] == "20")  mask="255.255.240.0"
 else if (s[2] == "21")  mask="255.255.248.0"
 else if (s[2] == "22")  mask="255.255.252.0"
 else if (s[2] == "23")  mask="255.255.254.0"
 else if (s[2] == "24")  mask="255.255.255.0"
 else if (s[2] == "25")  mask="255.255.255.128"
 else if (s[2] == "26")  mask="255.255.255.192"
 else if (s[2] == "27")  mask="255.255.255.224"
 else if (s[2] == "28")  mask="255.255.255.240"
 else if (s[2] == "29")  mask="255.255.255.248"
 else if (s[2] == "30")  mask="255.255.255.252"
 else if (s[2] == "31")  mask="255.255.255.254"
 else                    mask="255.255.255.255"
if (mask == "255.255.255.255")
 printf "route add -host %s.%s.%s.%s gw %s dev tunl0\n"\
 ,n[1],n[2],n[3],n[4],$5
else
 printf "route add -net %s.%s.%s.%s gw %s netmask %s dev tunl0\n"\
 ,n[1],n[2],n[3],n[4],$5,mask
 }'
echo "#"
echo "# default the rest of amprnet via mirrorshades.ucsd.edu"
echo "route add -net 44.0.0.0 gw 128.54.16.18 netmask 255.0.0.0 dev tunl0"
echo "#"
echo "# the end"

21.3 Configuration d'une passerelle d'encapsulation AXIP

Nombre de passerelles Radio Amateur avec l'Internet encapsulent AX.25, NetRom et Rose dans IP. Le cas des trames AX.25 rel�ve du RFC 1226 �crit par Brian Kantor. Mike Westerhof a r�alis� un d�mon d'encapsulation AX.25 sous Unix en 1991. Le paquetage des utilitaires ax25-utils en contient une version l�g�rement am�lior�e.

Un programme d'encapsulation AXIP re�oit des trames AX.25 d'un c�t�, examine la destination AX.25 afin d'en d�duire l'adresse IP � laquelle les envoyer et les encapsule dans un datagramme TCP/IP avant de les �mettre. Il accepte �galement les datagrammes TCP/IP qui contiennent des trames AX.25, extrait ces derni�res et les traite comme s'il s'agissait de trames AX.25 re�ues depuis un port AX.25. La distinction des trames IP contenant de l'AX.25 se fait par l'interm�diaire d'un identifiant de protocole �gal � 4 (la valeur 94 est possible quoique d�su�te). Le RFC 1226 d�crit tout �a en d�tail.

L'outil ax25ipd inclus dans le paquetage ax25-utils se pr�sente comme un programme g�rant une interface KISS, au travers de laquelle passeront des trames AX.25, et une interface d'adaptation TCP/IP. Il se configure par l'interm�diaire du fichier /etc/ax25/ax25ipd.conf.

Options de configuration d'AXIP

ax25ipd op�re dans deux modes : "digipeater" et "tnc". En mode "tnc", le d�mon agit comme un TNC kiss. Vous lui fournissez des trames d'encapsulation KISS et il les transmet comme dans la configuration normale. En mode "digipeater", le d�mon agit comme un noeud de transmission AX.25. Les diff�rences entre ces deux modes sont subtiles.

Vous configurez dans le fichier � cet effet les "routes" ou correspondances entre les identifiants AX.25 et les adresses IP des machines auxquelles vous d�sirez �galement transmettre des paquets AX.25. Chaque route dispose d'options qui seront expliqu�es un peu plus tard.

Voici les autres options � configurer :

  • le tty du d�mon ax25ipd ainsi que sa vitesse (en g�n�ral l'extr�mit� d'un tuyau)
  • l'identifiant souhait� pour le mode "digipeat"
  • l'intervalle beacon
  • le choix entre une encapsulation AX.25 dans des datagrammes IP ou bien dans des datagrammes UDP/IP. L'essentiel des passerelles AXIP emploie une encapsulation IP mais certaines sont situ�es derri�re des filtres qui ne laisseront passer que les datagrammes UDP/IP. Le choix doit co�ncider avec ce qui est attendu � l'autre extr�mit�.
  • Un fichier de configuration /etc/ax25/ax25ipd.conftypique

    #
    # fichier de configuration ax25ipd pour la station floyd.vk5xxx.ampr.org
    #
    # Transport axip. 'ip' garantit la compatibilite avec la plupart des
    # autres passerelles.
    #
    socket ip
    #
    # Mode d'operation de ax25ipd (digi ou tnc)
    #
    mode tnc
    #
    # Si digi est selectionne, vous devez definir un identifiant. Si vous avez
    # choisi tnc, l'identifiant est optionnel mais cela pourrait changer dans le
    # futur (2 identifiants pour une kiss double port).
    #
    #mycall vk5xxx-4
    #mycall2 vk5xxx-5
    #
    # En mode digi, on peut definir un alias (2 etc.).
    #
    #myalias svwdns
    #myalias2 svwdn2
    #
    # ident toutes les 540 secondes ...
    #
    #beacon after 540
    #btext ax25ip -- tncmode rob/vk5xxx -- Experimental AXIP gateway
    #
    # Port serie (ou tuyau connecte a kissattach dans mon cas)
    #
    device /dev/ttyq0
    #
    # Vitesse du peripherique
    #
    speed 9600
    #
    # niveau de log 0 - pas de sortie
    # niveau de log 1 - informations de configuration
    # niveau de log 2 - evenements majeurs et erreurs
    # niveau de log 3 - evenements majeurs, erreurs et suivi des trames AX.25
    # niveau de log 4 - tout
    # niveau de log 0 pour le moment
    #
    loglevel 2
    #
    # En mode digi, on peut avoir un veritable tnc. param permet de passer les
    # parametres tnc.
    #
    #param 1 20
    #
    # Adresses de broadcast. Chaque adresse figurant dans la liste sera relayee
    # vers une des routes munies de l'indicateur idoine.
    #
    broadcast QST-0 NODES-0
    #
    # Definition des routes AX.25. Autant que necessaires
    # Format :
    # route <id destination> <ip destination> [indicateur]
    #
    # Indicateurs valides :
    #         b  - broadcast
    #         d  - route par defaut
    #
    route vk2sut-0 44.136.8.68 b
    route vk5xxx 44.136.188.221 b
    route vk2abc 44.1.1.1
    #
    #
    

    Ex�cuter ax25ipd

    Commencez par mettre en palce le fichier /etc/ax25/axports

    # /etc/ax25/axports
    #
    axip    VK2KTJ-13       9600    256     AXIP port
    #
    

    Ex�cutez kissattach pour cr�er le port :

    /usr/sbin/kissattach /dev/ptyq0 axip
    

    Lancez ax25ipd :

    /usr/sbin/ax25ipd &
    

    Testez la liaison AXIP :

    call axip vk5xxx
    

    Remarques concernant certains indicateurs des routes

    "route" met en place les destinations d'envoi de vos trames AX.25 encapsul�es. Lorsque le d�mon ax25ipd re�oit un paquet sur son interface, il compare l'identifiant de destination avec chacun de ceux pr�sents dans sa table de routage. S'il trouve une correspondance, le paquet est alors encapsul� dans un datagramme IP et transmis � l'h�te sp�cifi�.

    Deux indicateurs peuvent �tre ajout�s � n'importe quelle route du fichier ax25ipd.conf :

    b

    tout trafic � destination d'une adresse rep�r�e par le mot-clef "broadcast" doit transiter par cette route.

    d

    tout paquet ne correspondant � aucune autre route doit suivre ce chemin.

    L'indicateur de broadcast est tr�s utile puisqu'il permet l'envoi d'informations � destination de toutes les stations vers des stations AXIP : les routes axip fonctionnent normalement en point-�-point et sont incapables de g�rer des paquets de diffusion g�n�rale.

    21.4 Lier NOS � Linux au moyen d'un pipe

    De nombreuses personnes aiment se servir de NOS sous Linux en raison de la richesse fonctionnelle et de la facilit� d'emploi auxquelles il les a habitu�es. La plupart d'entre eux souhaitent que leur version de NOS puisse dialoguer avec le noyau Linux de fa�on � offrir certaines des possibilit�s de Linux aux radio-utilisateurs de NOS.

    Brandon S. Allbery, alias KF8NH, a fourni les informations qui suivent relatives � l'interconnexion de NOS avec le noyau Linux par l'interm�diaire de tuyaux (pipe).

    Linux et NOS g�rant tous deux le protocole SLIP, il est possible de les relier au moyen d'une liaison slip. Vous pourriez le faire gr�ce � deux ports s�rie et � un c�ble null-modem mais ce serait aussi co�teux qu'inefficace. Comme d'autres syst�mes de type Unix, Linux dispose de tuyaux dits `pipes' (prononcer paillepeu). Il s'agit de pseudo-p�riph�riques qui �mulent le comportement de tty usuels du point de vue des logiciels en redirigeant le flux vers d'autres tuyaux. Pour les utiliser, un programme doit d'abord ouvrir l'extr�mit� ma�tre d'un tuyau apr�s quoi un second programme peut ouvrir la terminaison esclave. Lorsque les deux bouts sont ouverts, les programmes peuvent communiquer l'un avec l'autre en �crivant des caract�res dans les tuyaux comme s'il s'agissait de terminaux usuels.

    Pour employer les tuyaux entre NOS et Linux, vous devez d'abord choisir un tuyau. Le r�pertoire /dev en regorge : les extr�mit�s ma�tres se nomment ptyq[1-f] et celles esclaves ttyq[1-f]. Gardez � l'esprit qu'elles fonctionnent par paires et que si vous utilisez /dev/ptyqf � un bout, vous devrez employer /dev/ttyqf � l'autre.

    Une fois le tuyau choisi, vous allouez la terminaison ma�tre � Linux et l'esclave � NOS (le noyau d�marre le premier et l'extr�mit� ma�tre doit �tre la premi�re ouverte). N'oubliez pas que le noyau Linux doit �tre muni d'une adresse IP diff�rente de celle de NOS. A mettre en place si ce n'est pas d�j� le cas.

    Le tuyau se configure comme un p�riph�rique s�rie. Pour une liaison slip, les commandes � ex�cuter seront donc du type :

    # /sbin/slattach -s 38400 -p slip /dev/ptyqf &
    # /sbin/ifconfig sl0 broadcast 44.255.255.255 pointopoint 44.70.248.67 /
     mtu 1536 44.70.4.88
    # /sbin/route add 44.70.248.67 sl0
    # /sbin/route add -net 44.0.0.0 netmask 255.0.0.0 gw 44.70.248.67
    

    Dans cet exemple, le noyau Linux dispose de l'adresse 44.70.4.88 et NOS de l'adresse 44.70.248.67. La commande route de la derni�re ligne indique simplement au noyau Linux qu'il doit router tous les datagrammes � destination d'amprnet via le lien slip cr�� par la commande slattach. Vous pouvez par exemple copier ces commandes dans le fichier /etc/rc.d/rc.inet2 (selon votre installation) apr�s toutes les autres commandes de configuration r�seau afin que la liaison slip apparaisse automatiquement � la r�initialisation du syst�me. Remarque : on ne gagne rien � utiliser cslip au lieu de slip. Au contraire, les performances diminuent de par la nature purement virtuelle du lien (on passe plus de temps � compresser les en-t�tes qu'� transmettre toutes les donn�es).

    Essayez les commandes suivantes pour configurer la terminaison du c�t� NOS :

    # you can call the interface anything you want; I use "linux" for convenience.
    attach asy ttyqf - slip linux 1024 1024 38400
    route addprivate 44.70.4.88 linux
    

    Ces commandes cr�ent un port slip nomm� `linux' sur l'extr�mit� esclave du tuyau et ajoutent une route qui y pointe. Une fois NOS d�marr�, vous devriez pouvoir ex�cuter des ping et des telnet de NOS vers Linux et vice-versa. Si ce n'est pas le cas, v�rifiez encore une fois que vous ne vous �tes tromp� nulle part, surtout au niveau des adresses et des tuyaux.


    Page suivantePage pr�c�denteTable des mati�res

    Hosting by: Hurra Communications GmbH
    Generated: 2007-01-26 18:01:29