8.1 imon-Server imond |
imond is a server program with networking capabilities which answers specific questions or which can be used for control of the router itself.
Additionally imond controls least-cost-routing. To be able to do so, it uses the configuration file /etc/imond.conf, which is created automatically - by using a shell script - during boot from the ISDN_CIRC_x_XXX variables of file config.txt .
imond is running permanentely as a daemon and listens to TCP/IP port 5000 and device /dev/isdninfo.
The following commands are available via TCP/IP port 5000:
Admin-Befehle:addlink ci-index Add channel to circuit (channel bundling) adjust-time seconds Changes routerīs time by given number of seconds delete filename pw Deletes file on router hup-timeout #ci-index [value] Display/set HUP timeout for ISDN circuits removelink ci-index Remove additional channel reset-telmond-log-file Delete telmond protocol file reset-imond-log-file Delete imond protocol file receive filename #bytes pw Transmit a file to the router. Imond will with an ACK (0x06). After this the file will be transferred in 1024 byte blocks which will be answered with another ACK. The last transmission of imond will be an OK. send filename pw If the password is ok and the file exists, imond will give an OK #bytes. After this imond will transfer the file in 1024 bytes blocks, which have to be answered by an ACK (0x06). The last transmission of imond will be an OK. support pw Will fetch status/configuration information from the router sync Synchronises cache of mounted drivesAdmin or User commands:
dial Dials to provider (Default-Route-Circuit) dialmode [auto|manual|off] Sets dial mode disable Hangs up and sets dial mode to "off" enable Sets dial mode to "auto" halt Shuts down router correctly hangup Hangs up reboot Reboot of i4l router! route [ci-index] Sets default route to circuit X (0=automatic)User commands:
channels Output: number of available ISDN channels charge #channel-id Output: online costs for one channel chargetime #channel-id Online time by using charge time circuit [ci-index] Output: circuit name circuits Output: number of default route circuits cpu Shows load of CPU in percent date Shows date/time device ci-index Shows device or circuits driverid #channel-id Output: driver ID for channel X help Output: help inout #channel-id Output of direction (incoming/outgoing) imond-log-file Output fo/to imond protocol file ip #channel-id Output of IP address is-allowed command Output: command configured/valid Possible commands: dial|dialmode|route|reboot| imond-log|telmond-log|mgetty-log is-enabled Output: dialmode set to: off (0) or auto (1) links ci-index Output: number of actual channel: 0, 1 or 2 0 means: channel bundling NOT possible log-dir imond|telmond|mgetty Shows log directory mgetty-log-file Output: mgetty protocol file online-time #channel-id Output: online time of actual connection:hh:mm:ss pass [password] Ask for password or not 1 User password set 2 Admin password set 4 imond is in Admin mode phone #channel-id Output: telephone number/name of partner pppoe Shows number of pppoe devices (i.e. 0 or 1) quantity #channel-id Shows cumulated transferred data (in bytes) quit End connection to imond rate #channel-id Output: transfer rates (incoming/outgoing in B/sec) status #channel-id Output: status of channel X telmond-log-file Output: telmond protocol file time #channel-id Output: accumulated online time, format: hh:mm:ss timetable [ci-index] Output: time table for LC routing uptime Output: uptime of router in seconds usage #channel-id Output: type of connection, possible answers: Fax, Voice, Net, Modem, Raw version Output of protocol and program version
TCP/IP-Port 5000 is only reachable from masqueraded LAN. A remote access will be blocked by firewall configuration by default.
Imond supports two user levels: user and Admin mode. For both levels you may set a password by using IMOND_PASS or IMOND_ADMIN_PASS. This will enforce the imon clients to use a password request and to transfer the password to imond afterwards. As long as this password was not transferred, imond will only accept the commands "pass" and "quit". All other commands will be rejected with an error.
If you want to include further limitations - ex.: access only from one PC - you will have to change firewall configuration. In the moment you can not use the default configuration file config.txt. In this case a change of roots image is necessary. This is done in rootfs/etc/rc.d/masq. A description for this: see src/README.
Commands
enable/disable/dialmode dial/hangup route reboot/halt
can be switched on or off globally via configuration variables IMOND_XXX (chapter "imond configuration").
You may easily test this with a Unix/Linux computer:
After having entered
telnet fli4l 5000 # or name of FLI4L router
you may directly enter the above given commands and also view the output.
Example: After having entered "help" you will get the output of the help file, entering quit will diconnect from imond.
imond will generate a time-depending table (time table) from configuration file /etc/imond.conf during boot-up (which will be generated itself during boot-up from configuration variables ISDN_CIRC_x_TIMES (see package ISDN)). This time table includes a complete week in 1 hour steps (168 hours = 168 bytes). The table consists of circuits which have a defined default route.
You may view this table by using imond command "timetable".
An example:
Lets say: there are three defined circuits:
CIRCUIT_1_NAME='Addcom' CIRCUIT_2_NAME='Compuserve' CIRCUIT_3_NAME='Company'
Only the first two circuits have defined default routes (ISDN_CIRC_x_ROUTE='0.0.0.0').
If the corresponding variables ISDN_CIRC_x_TIMES (see package ISDN) look as follows:
ISDN_CIRC_1_TIMES='Mo-Fr:08-18:0.0388:N Mo-Fr:18-08:0.0248:Y Sa-Su:00-24:0.0248:Y' ISDN_CIRC_2_TIMES='Mo-Fr:08-18:0.018:Y Mo-Fr:18-08:0.048:N Sa-Su:08-18:0.018:N Sa-Su:18-08:0.048:N' ISDN_CIRC_3_TIMES='Mo-Fr:08-18:0.08:N Mo-Fr:18-08:0.03:N Sa-Su:00-24:0.03:N'
the file /etc/imond.conf will show the following:
#day hour device defroute phone name charge ChInt Mo-Fr 08-18 ippp0 no 010280182306 Addcom 0.0388 60 Mo-Fr 18-08 ippp0 yes 010280182306 Addcom 0.0248 60 Sa-Su 00-24 ippp0 yes 010280182306 Addcom 0.0248 60 Mo-Fr 08-18 ippp1 yes 018160 Compuserve 0.018 180 Mo-Fr 18-08 ippp1 no 018160 Compuserve 0.048 180 Sa-Su 08-18 ippp1 no 018160 Compuserve 0.018 180 Sa-Su 18-08 ippp1 no 018160 Compuserve 0.048 180 Mo-Fr 08-18 isdn2 no 0221xxxxxxx Company 0.08 80 Mo-Fr 18-08 isdn2 no 0221xxxxxxx Company 0.03 80 Sa-Su 00-24 isdn2 no 0221xxxxxxx Company 0.03 80
Imond will generate the follwing time table in memory (below you can see the output via imond command "timetable"):
0 1 2 3 4 5 6 7 8 8 10 11 12 13 14 15 16 17 18 18 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.0180 180 5 Compuserve no ippp1 0.0480 180 6 Compuserve no ippp1 0.0180 180 7 Compuserve no ippp1 0.0480 180 8 Company no isdn2 0.0800 80 8 Company no isdn2 0.0300 80 10 Company no isdn2 0.0300 80
For circuit 1 (Addcom) three time intervals were entered (1-3), for circuit 2 (Compuserve) there are four time intervals (4-7) and for the last one (Company) there are three time intervals (8-10).
In time table there will be only the indices which are valid for the spec. hour. Here you can only see indices 2-4 because all other routes are no LC defaukt routes.
If there are any "zeroes" in this table, there are empty places (no time intervals given) in the ISDN_CIRC_X_TIMES values. There will be no default route existing for these times and any internet connection is then impossible!
When starting the program, imond will first of all recognize day of week and actual hour. After this it will select - via the time table - the index and the corresponding circuit. Default route will then be set to this circuit.
Changes in state of ISDN channels - ex.: changing from online to off-line -, at least after one minute, everything will start again: what time/day of week is it, look into the time table, set default route to....
If the actual circuit changes - ex.: Moday, 6:00 pm - the default route will be deleted and an actually existing connection will be diconnected AND after this the default route will be set to the "new" circuit. This can be recognized up to 60 seconds later by imond. That means: Switching time can be (max.): 6:00:58 pm.
There will be no changes for circuits which do not use a default route. The contents of ISDN_CIRC_x_TIMES will only be used for calculation of telephone costs. This may be relevant if you switched off LC routing by using the imonc client and selected a circuit manually.
You may also view the tables for other time range indices (in the example from 1 to 10) - also the ones for "Non-LC-Default-Route-Circuits".
Command:
timetable index
Example:
telnet fli4l 5000 timetable 5 quit
Output will look as follows:
0 1 2 3 4 5 6 7 8 8 10 11 12 13 14 15 16 17 18 18 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.0480 180
Everything clear so far ?
With imond command "route" you may switch on/off LC routing. Entering a positive circuit index (1...N) default route will be set to the spcified circuit. If index is 0, LC routing will again be activated and the circuit will be selected automatically.
Calculation of online costs:
The model for calculation of online costs will only function properly if time interval for one circuit (Variable ISDN_CIRC_x_CHARGEINT (see package ISDN)) will be constant for the whole week. This is normally the case for most providers. If you are dialing via telephone company to your company network, this will be a usual telephone call. And that means (Telekom): time interval will change from 80 seconds to four minutes (June 2000). That means, the definition of
ISDN_CIRC_3_CHARGEINT='80' ISDN_CIRC_3_TIMES='Mo-Fr:08-18:0.08:N Mo-Fr:18-08:0.03:N Sa-Su:00-24:0.03:N'
is not 100 % correct. In the evening it is DM 0.03 per minute, but time interval is wrong. Therefore it might happen that there are slight differences between costs display and real values.
It is possible that this will be corrected later on. In the moment this is no real error.
In the meantime I gat a hint from somebody how different charge intervals can be defined in a correct way (also important for: ISDN_CIRC_x_CHARGEINT): You must define two circuits; one for day-time with ISDN_CIRC_1_CHARGEINT='80' and another with ISDN_CIRC_2_CHARGEINT='240'. Therefore you will have to select ISDN_CIRC_x_TIMES accordingly to use circuit 1 during day-time and circuit 2 in the evening. A nice trick.....
As already said: If you use connections to/with internet providers you will not have this kind of problems, because they use a time/charge interval which is always constant; only costs per minute will change...
«« 7. Connecting PCs in a LAN | :: Home :: | 8. Windows client imonc.exe »» |