Imond est un programme serveur qui répond à certaines enquêtes sur la gestion du réseau et accepte aussi des commandes qui peuvent contrôler le routeur sur le réseau local.
Imond contrôle également les Moindres-Coûts-Routages. Il utilise le fichier de configuration /etc/imond.conf qui est produit automatiquement au moment du boot, à partir de la variable ISDN_CIRC_x_XXX du fichier config/isdn.txt, le fichier est généré par un script shell.
imond est un démon qui fonctionne en permanence en tache de fond, il écoute le port 5000 TCP/IP sur le périphérique /dev/isdninfo.
Voici toutes les commandes qui peuvent être envoyées par le port 5000 TCP/IP :
addlink ci-index | Ajouter un canal au circuit (Channel-Bundling) |
adjust-time seconds | Incrémente la date sur le routeur en secondes |
delete filename pw | Supprime le fichier sur le routeur |
hup-timeout #ci-index [value] | Affiche ou compose le HUP-Timeout pour des circuits RNIS (ou numéris) |
removelink ci-index | Enlever le canal supplémentaire |
reset-telmond-log-file | Supprime le fichier journal de telmond |
reset-imond-log-file | Supprime le fichier journal de imond |
receive filename #octets pw | Transfére d'un fichier au routeur. Imond donne l'ordre avec ACK (0x06). Après, le fichier est transféré par blocs de 1024 Octets qui sont également confirmé avec ACK. En conclusion, imond répond OK. |
send filename pw | Si le mot de passe est correct et que le fichier existe, imond répond OK avec un #octet. Puis, imond transfère le fichier par blocs de 1024 octets, chaque fois confirmés avec ACK (0x06). A la fin, imond répond OK. |
support pw | Montre le statut/configuration du routeur |
sync | Synchronise le Cache des lecteurs montés |
dial | Choix du FAI (Defaut-Route-Circuit) |
dialmode [auto|manual|off] | Réglage des actions dans Dialmode |
disable | Raccroche et place dialmode sur "off" |
enable | Mets dialmode sur "auto" |
halt | Descend proprement le Routeur |
hangup [#channel-id] | Raccroche |
poweroff | Descent le routeur et mise hors tension |
reboot | Reboot le routeur fli4l! |
route [ci-index] | Met le routeur par Defaut sur un Circuit X (0=automatique) |
channels | Nombre de Canaux ISDN disponibles |
charge #channel-id | Edite les frais de connexion pour un Canal en ligne |
chargetime #channel-id | Temps et frais de connexion pour un canal en ligne |
circuit [ci-index] | Edite le numéro du Circuit |
circuits | Edite le nombre de Defaut-Route-Circuits |
cpu | Donne la charge du CPU en pourcentage |
date | Edite la date et heure |
device ci-index | Circuits du périphérique utilisé |
driverid #channel-id | Edite Driver-ID pour le Canal X |
help | Edite l'aide |
inout #channel-id | Edite la direction (entrante/sortante) |
imond-log-file | Edite le fichier du Protocole imond |
ip #channel-id | Edite l'adresse IP |
is-allowed command | Edite si la commande est valide
commandes possibles : dial|dialmode|route|reboot |imond-log|telmond-log|mgetty-log |
is-enabled | Edite si dialmode est sur off (0) ou auto (1) |
links ci-index | Edite le nombre de canaux 0, 1 ou 2, 0 utilisé, ou alors : Aucun Channel-Bundling possible |
log-dir imond|telmond|mgetty | Donne la direction des fichiers Log |
mgetty-log-file | Edite le protocole du fichier mgetty |
online-time #channel-id | Edite le temps en ligne, et de connexion en hh:mm:ss |
pass [password] | Vérifie, le mot de passe qui a été saisit par
1 Mot de passe Utilisateur est fixé 2 Mot de passe Admin est fixé 4 imond se trouve dans le mode Admin |
phone #channel-id | Edite le numéro de Tél et le nom du "correspondant" |
pppoe | Donne le numéro du périphérique pppoe (0 ou 1) |
quantity #channel-id | Donne l'ensemble des transmissions (en octet) |
quit | Coupe la connexion avec imond |
rate #channel-id | Edite les connexions (entrant/sortant en Octet/sec) |
status #channel-id | Edite le statut pour le Canal X |
telmond-log-file | Edite le protocole telmond |
time #channel-id | Edite le temps total en ligne, au Format hh:mm:ss |
timetable [ci-index] | Edite la time-table LC-Routing |
uptime | Edite le temps d'utilisation du Routeur en secondes |
usage #channel-id | Edite les réponses des connexions: Fax, Répondeur, Net, Modem, Raw |
version | Edite la version du protocole et la version du Programme |
Le port 5000 TCP/IP est accessible uniquement depuis un réseau LAN masqué. Avec la configuration standard du firewall l'accés est bloqué de l'extérieur.
Imond supporte deux modes d'administrations, le Mode Utilisateur et le Mode Admin. On peut installer un Mot de Passe pour ces deux modes au moyen des variables IMOND_PASS et IMOND_ADMIN_PASS. Si le Mot de Passe n'est pas transmis au serveur imond le client imonc a accés uniquement à deux commandes "pass" et "quit" toutes les autres commandes sont rejetées et une erreur s'affiche.
Si plus tard, vous voulez limiter l'accés au serveur imond à un seul PC, la configuration du Firewall doit être modifier.
Les commandes
enable/disable/dialmode dial/hangup route reboot/halt
peuvent être activées ou désactivées dans la variable IMOND_XXX voir (le chapitre "configuration").
Avec un ordinateur Unix/Linux (ou un ordinateur Windows par la fenètre DOS) vous pouvez facilement entrer les commandes aprés la connexion telnet.
Connexion telnet :
telnet fli4l 5000 \# ou le Nom correspondant au routeur fli4l
Vous pouvez directement entrer les commandes mentionnées ci-dessus.
Par exemple la commande "help" active l'aide sur l'écran ou "quit" démonte (ou arrête) le serveur imond.
imond construit une Time-Table (ou Plage Horaire) à partir du fichier de configuration /etc/imond.conf (qui est créé au boot avec la variable de configuration ISDN_CIRC_x_TIMES. Ce "calendrier" est composé d'une semaine par intervalle d'une heure, une semaine = 168 heures = 168 octets. La table se compose de circuits, dans lesquel sont définis des Défaut-Routes (ou connexion par défaut au FAI).
Avec la commandement "timetable" on peut voir la table imond. Exemple de configuration :
Supposons que nous définissions 3 circuits de connexions pour chaque FAI c'est à dire :
CIRCUIT_1_NAME='Addcom' CIRCUIT_2_NAME='AOL' CIRCUIT_3_NAME='Firma'
Les deux premiers circuits sont réglés avec Défaut-Route c.à d. que l'itinétaire par défaut est écrit dans la variable ISDN_CIRC_x_ROUTE avec la valeur '0.0.0.0/0'.
Les variables ISDN_CIRC_x_TIMES se présentent de la manière suivante :
ISDN_CIRC_1_TIMES='Mo-Fr:09-18:0.0388:N Mo-Fr:18-09:0.0248:Y Sa-Su:00-24:0.0248:Y' ISDN_CIRC_2_TIMES='Mo-Fr:09-18:0.019:Y Mo-Fr:18-09:0.049:N Sa-Su:09-18:0.019:N Sa-Su:18-09:0.049:N' ISDN_CIRC_3_TIMES='Mo-Fr:09-18:0.08:N Mo-Fr:18-09:0.03:N Sa-Su:00-24:0.03:N'
Puis le fichier /etc/imond.conf est créé de cette façon :
#day hour device defroute phone name charge ch-int Mo-Fr 09-18 ippp0 no 010280192306 Addcom 0.0388 60 Mo-Fr 18-09 ippp0 yes 010280192306 Addcom 0.0248 60 Sa-Su 00-24 ippp0 yes 010280192306 Addcom 0.0248 60 Mo-Fr 09-18 ippp1 yes 019160 AOL 0.019 180 Mo-Fr 18-09 ippp1 no 019160 AOL 0.049 180 Sa-Su 09-18 ippp1 no 019160 AOL 0.019 180 Sa-Su 18-09 ippp1 no 019160 AOL 0.049 180 Mo-Fr 09-18 isdn2 no 0221xxxxxxx Firma 0.08 90 Mo-Fr 18-09 isdn2 no 0221xxxxxxx Firma 0.03 90 Sa-Su 00-24 isdn2 no 0221xxxxxxx Firma 0.03 90
imond produit alors Time-Table (ou Plage Horaire) dans la mémoire. voici la table des données sorties avec la commande "timetable" :
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 -------------------------------------------------------------------------- Su 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 Mo 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 2 2 2 2 2 2 Tu 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 2 2 2 2 2 2 We 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 2 2 2 2 2 2 Th 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 2 2 2 2 2 2 Fr 2 2 2 2 2 2 2 2 2 4 4 4 4 4 4 4 4 4 2 2 2 2 2 2 Sa 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 No. Name DefRoute Device Ch/Min ChInt 1 Addcom no ippp0 0.0388 60 2 Addcom yes ippp0 0.0248 60 3 Addcom yes ippp0 0.0248 60 4 AOL yes ippp1 0.0190 180 5 AOL no ippp1 0.0490 180 6 AOL no ippp1 0.0190 180 7 AOL no ippp1 0.0490 180 8 Firma no isdn2 0.0800 90 9 Firma no isdn2 0.0300 90 10 Firma no isdn2 0.0300 90
Pour le circuit 1 (Addcom) il y a trois éléments définis (1-3), pour le circuit 2 il y a quatre éléments (4-7), et pour le circuit 3 il y a trois éléments (8-10).
Les index des circuits activés sont inscris toutes les heures dans la Time-Table respectivement. Ici les index (2-4) apparaissent, car les autres ne passent pas par LC-Défaut-Route.
Si vous avez des zéros dans Time-Table, c'est qu'il manque des données dans la variable ISDN_CIRC_X_TIMES. Si vous avez des zéro sur certaine plage horaire, cela veux dire qu'il n'y aura pas de Défaut-Route et aucun accés Internet possible sur ces plages horaires!
Au démarrage du programme, imond vérifie le jour de la semaine et l'heure, puis les index dans la Time-Table et enfin régle les Défauts-Routes correspondants. Le Défaut-Route (ou connexion par Défaut au FAI) est alors activé par rapport à l'indexation.
Lors d'un changement de statut, par exemple sur un canal, une connexion ou un racrochement de la ligne, si la commande mais plus d'une minute, le processus de démarrage est réactualisé, vérification de l'horaire et du jour, consultation de la table, selection du Circuit-Défaut-route.
Si par exemple le lundi à 18:00 la connexion change, Défaut-Route est supprimé, les connexions existantes sont arrêtées (désolé...), ensuite imond controle dans la Time-Table si un nouveau Circuit-Défaut-route existe, si oui imond mettra environ 60 secondes pour se reconnecter. Donc la connexion se fera au plus tard à 18:00:59.
Il n'y aura aucun changement pour les circuits qui n'utilisent pas un Defaut-Route. Le contenu ISDN_CIRC_x_TIMES sera uniquement employé pour le calcul des frais téléphoniques. Ceci peut être pertinent, si vous arrêtez temporairement le client imonc et que vous choisissiez manuellement un Circuit-Défaut-route.
Vous pouvez également regarder dans l'indexation de Time-Table (exemple précédent de 1 à 10) les circuits non activés "Non-LC-Default-Route-Circuits".
Commande pour vérifier un index dans le Time-Table :
timetable "index"
Exemple :
telnet fli4l 5000 timetable 5 quit
La sortie des données apparaîtront comme ceci :
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 -------------------------------------------------------------------------- Su 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Mo 5 5 5 5 5 5 5 5 5 0 0 0 0 0 0 0 0 0 5 5 5 5 5 5 Tu 5 5 5 5 5 5 5 5 5 0 0 0 0 0 0 0 0 0 5 5 5 5 5 5 We 5 5 5 5 5 5 5 5 5 0 0 0 0 0 0 0 0 0 5 5 5 5 5 5 Th 5 5 5 5 5 5 5 5 5 0 0 0 0 0 0 0 0 0 5 5 5 5 5 5 Fr 5 5 5 5 5 5 5 5 5 0 0 0 0 0 0 0 0 0 5 5 5 5 5 5 Sa 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 No. Name DefRoute Device Ch/Min ChInt 5 AOL no ippp1 0.0490 180
Tout est clair jusque là ?
Avec la commande "Route" d'imond vous pouvez commuter "Marche/Arrêt" de LC-Routing, et vous pouvez indiquer l'index du Circuit-Défaut-Route (1...N), il se connectera sur le circuit. Si l'index est 0, le LC-Routing est activé et le circuit sera choisi automatiquement.
Le mode de calcul des frais de connexions fonctionnera correctement uniquement si l'unité téléphonique est constante tout au long de la semaine, elle doit est inscrit dans la variable ISDN_CIRC_x_CHARGEINT) en seconde. Normalement c'est la régle pour les fournisseurs d'accés Internets. Toutefois, si vous choisissez Telekom (je ne parle pas de T-Online !) par exemple, pour un réseau d'entreprise, qui sera considéré comme des conversations téléphoniques normales. et changement passe de 90 secondes à 4 minutes aprés 18:00 (Stand Juni 00). Par conséquent, la définition
Mais si vous utilisez votre
société téléphonique par exemple pour un accés Internet avec TéléKom
(Allemagne) l'unité Tél change (information juin 2000).
En France l'unité Tél est toujours constante 60 secondes, on n'a
pas ce problème, c'est juste le tarif qui change en heure creuse
0,018 euro et en heure pleine 0,033 euro (8:00 à 19:00 heure pleine).
ISDN_CIRC_3_CHARGEINT='90' ISDN_CIRC_3_TIMES='Mo-Fr:09-18:0.08:N Mo-Fr:18-09:0.03:N Sa-Su:00-24:0.03:N'
est en fait pas tout à fait exact. Le tarif le soir est de 3 cents la minute (donc 12 cents les 4 minutes de télécommunication), mais la mesure est fausse. C'est pour cette raison qu'il se produit des différences d'affichage par rapport au prix réel.
Il est possible que ce problème soit peut être corrigé plus tard. En attendant on peut définir dans la variable ISDN_CIRC_x_CHARGEINT) 2 Circuits : un pour la journée avec ISDN_CIRC_1_CHARGEINT='90' et l'autre pour la soirée ISDN_CIRC_2_CHARGEINT='240' naturellement vous devez configurer ISDN_CIRC_x_TIMES, avec cette configuration vous utiliser le Circuit 1 pendant la journée et le Circuit 2 en soirée.
Comme nous l'avons dit plus haut : l'utilisation des connexions avec un fournisseur d'accés Internet, ne pose pas de problème parce que l'unité Tél est toujours constante et le coût par minute ne change pas (il a encore quelque chose? je ne fais pas confiance à T-* pour tout :-).