Imond Serveur est un programme qui répond à certaines enquêtes sur la gestion du réseau et accepte aussi des commandes qui peuvent controler le routeur sur le réseau local.
Imond controle également les Moindres-Coûts-Routages. Il utilise le fichier de configuration /etc/imond.conf, un Shell-Script qui est créé automatiquement au Boot (ou démarrage) avec la variable ISDN_CIRC_x_XXX dans le fichier config/isdn.txt.
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 possibles qui peuvent être envoyées sur le port 5000-TCP/IP:
Commandes Admin
| addlink ici-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 #ici-index [value] |
Affiche ou compose le HUP-Timeout pour des circuits ISDN (ou RNIS) |
| removelink ci-index |
Enlever le canal supplémentaure |
| reset-telmond-log-file |
Supprime le fichier journal de telmond |
| reset-imond-log-file |
Supprime le fichier journal de imond |
| receive filename #bytes pw |
Transfére d'un fichier au routeur. Imond reconnaît la commande par un ACK (0x06). Après, le fichier est transféré dans des blocs de 1024 Octets qui sont également confirmé par un ACK. En conclusion, imond répond OK. |
| send filename pw |
Si le mot de passe est correct et le fichier est juste, imond répond avec un #octet CORRECT. Puis, imond transfère le fichier dans les blocs de 1024 bytes qui doivent être reconnus par un 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égler ces actions dans Dialmode |
| disable |
Raccroche et place dialmode sur "off" |
| enable | Met dialmode sur "auto'' |
| halt | Descend proprement le Routeur |
| hangup | Raccroche |
| reboot | Reboot (redémarre)le Routeur fli4l! |
| route [ici-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 [ici-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 Date et Heure |
| device [ici-index] | Circuits 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 Protocole du fichier imond |
| ip #channel-id | Edite Adresse IP |
| is-allowed command |
Edite, si l'action configurée/est valable, actions possibles: dial|dialmode|route|reboot| imond-log|telmond-log|mgetty-log |
| is-enabled | Edite, si dialmode est sur off (0) ou auto (1) |
| links [ici-index] |
Edite le nom des Canaux en fonction: Canal 0, 1 ou 2, 0 Aucun Channel-Bundling (Canal-Empaqueté) est 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] |
interroge, si le mot de passe est nécessaire on le saisit: |
| phone #channel-id | Edite le numéro de Tél et le nom du correspondant |
| pppoe | Donne le numéro pour le périphérique pppoe (0 ou 1) |
| quantity #channel-id | Donne l'ensemble des transmissions (en octet) |
| quit | termine 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 [ici-index] | Edite la time-table LC-Routing |
| uptime | Edite le temps d'utilisation du Routeur en secondes |
| usage #channel-id | Edite des réponses de connexions: Fax, Voice, 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é. Selon 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 avec une erreur.
Si l'on veut limiter l'accés au serveur imond à un seul PC, la configuration du Firewall doit être changée, malheureusement le changement ne se fait pas dans le fichier standard /config/base.txt, mais doit être faite dans le fichier /etc/rc.d/rc322.masq.
Les commandes
enable/disable/dialmode dial/hangup route reboot/halt
peuvent être activées ou désactivées dans la variable IMOND_XXX dans (le chapitre "configuration" ).
Avec un ordinateur Unix/Linux (ou un ordinateur Windows dans 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 (arrête) le serveur imond.
imond construit une Time-Table (ou un calendrier) à partir du fichier de configuration /etc/imond.conf (qui est créé au boot avec la variable de configuration ISDN_CIRC_x_TIMES et d'autres config). Il est constitué d'une semaine par intervalle de 1 heure, une semaine = 168 heures = 168 octets. La table se compose de Circuits, dans lesquel sont définis des Défaut-Routes (ou Itinéraire par défaut).
Avec la commandement "timetable" d'imond on peut voir cette table
Exemple de configuration:
Supposons que nous définissions 3 circuits c'est à dire:
CIRCUIT_1_NAME='Addcom'
CIRCUIT_2_NAME='Compuserve'
CIRCUIT_3_NAME='Firma'
Les deux premiers circuits sont réglés avec un 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'. Le troisième circuit n'utilise pas la variable ISDN_CIRC_x_ROUTE comme Défaut-Route.
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 Compuserve 0.019 180
Mo-Fr 18-09 ippp1 no 019160 Compuserve 0.049 180
Sa-Su 09-18 ippp1 no 019160 Compuserve 0.019 180
Sa-Su 18-09 ippp1 no 019160 Compuserve 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 Compuserve yes ippp1 0.0190 180
5 Compuserve no ippp1 0.0490 180
6 Compuserve no ippp1 0.0190 180
7 Compuserve 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.3.4) apparaissent, car les autres ne passent pas par LC-Défaut-Route ISDN_CIRC_x_ROUTE .
S'il y a des zéros dans Time-Table, c'est qu'il y a des absences de données dans la variable ISDN_CIRC_X_TIMES. Si les heures sont indiquées par un zéro il n'y aura aucun Défaut-Route et aucun accés Internet possible!
Au démarrage du programme, imond vérifie le jour de la semaine et l'heure, puis les index dans Time-Table et enfin les Défauts-Routes correspondants. Le Défaut-Route (ou Itinéraire par Défaut) est alors activé par rapport à l'index.
Lors d'un changement de statut sur un canal par exemple, une connexion ou un racrochement de ligne, s'il y a un retard de connexion de plus d'une minute, le processus de démarrage est répété,vérification de l'horaire et du jour, consultation de la table, selection du Circuit-Défaut-route (Circuit de l'Itinétaire par défaut).
Si par exemple, la connexion change le lundi à 18:00 le 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 mettera 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 la Time-Table les index (dans l'exemple de 1 à 10) également voir les circuits non activés "Non-LC-Circuits-Défaut-route" .
Commande pour vérifier un index dans le Time-Table:
timetable index
Exemple:
telnet fli4l 5000
timetable 5
quit
La sortie des données pararaîtra 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 Compuserve 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 écrire l'index du Circuit-Défaut-Route (1… N), il se connectera sur le circuit indiqué. 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é de temps 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 accés Internets. Mais si vous utilisez votre société téléphonique par exemple pour un accés Internet avec TéléKom (Allemagne) l'unité de temps change et passe de 90 secondes à 4 minutes aprés 18:00 (information juin 2000)
En France l'unité de temps est toujours constante 60 secondes, on n'a pas ce problème, c'est juste le tarif qui change en heure creuse 0,018€ et en heure pleine 0,033€ (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'
C'est pour cette raison, que notre définition n'est pas tout à fait correcte. le tarif pour la journée est de 3 cent/90 secondes et passe à 12 cent/4 minutes aprés 18:00, les calculs sont faux.C'est pour cette raison qu'il se produit des différences d'affichage par rapport au prix réel.
Il est possible que cela 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 en conséquence, pour 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é de temps est toujours constante
Das Fli4l-Team