Next Previous Contents

9. lan: ISDN4LINUX in a LAN

9.1 lan_config: How can I set up Linux so that other computers in my LAN can access the internet via my Linux computer?

There are several possibilities:

  1. Your LAN is an official Class C net with IP addresses valid on the Internet. This case is the easiest of configure. You give each network card on your network one of these addresses and set a default route on the ISDN card that goes to your provider.
  2. You'd only like to do http in Internet from your LAN. In this case you can make up IP addresses for your LAN; the only official IP address is that for your ISDN card. Then install a proxy server on your Linux router, and enter it in all of your browsers. In this case you do not need a default route.
  3. From your LAN you only want to log in to your Linux ISDN router and FROM THERE do your work on the Internet. This is even simpler, then you don't even need a proxy server.
  4. Use ip masquerading. This is the most comfortable one to use, but more difficult to set up. The Linux computer acts as a gateway. The trick is that it hides the ip addresses of the LAN, by giving its own internet address as response address. When receiving the response, it will forward it to the correct computer on the LAN. You can also use masquerading with dynamic ip addresses. If you don't want to start the ISDN connection from the Linux computer to your internet provider manually, then you can set up dial on demand functionality (see section dod).

9.2 lan_modemserver: How can forward ISDN data from a local computer in my LAN to the ISDN card(s) in my Linux PC (like a modem server)?

On the Linux PC you have to install a forwarding server. One option is to use modemd. This is a very short perl script (also see Linux Modem sharing mini-HOWTO at http://www.linuxdoc.org/HOWTO/mini/Linux-Modem-Sharing.html):


#!/usr/bin/perl
select((select(STDOUT), $| = 1)[$[]);
select((select(STDIN), $| = 1)[$[]);
exec "cu","-E","''", "-l", "$ARGV[0]";
die "$0: Cannot exec cu: $!\n";

It has to be started by inetd, therefore this has to be added to /etc/services:
modem           20006/tcp       modemd  # Modem service via TCP
isdn            20007/tcp       modemd  # ISDN  service via TCP

And this has to be added to /etc/inet.conf:
modemd stream tcp nowait root /usr/sbin/tcpd /usr/sbin/modemd ttyI5

Instead of modemd you can also use the program mserver, which has some additional functionality (e.g. rights based on ip address): ftp://ftp.innet.be/pub/staff/carl/

Additionally, you need some software on your non-ISDN computer which emulates a serial port, but redirects it via telnet to the Linux ISDN computer. Some telnet clients allow this functionality (e.g. some uucicos). If you generally want to offer all applications a kind of "remote COM port", then there is COMT for Windows (95), and "telser.device" for Amigas. Disadvantage of COMT: it is only visible to ancient 16bit Win applications, and not even working in the DOS box. Another program is DialOut/IP, but it's fairly expensive ($70).

COMT may be found on Simtel: http://educom.sce.fct.unl.pt/ftp/pub/shareware/win-utils/comt2.zip

DialOut/IP can be found on: http://tacticalsoftware.com

Those who just want to save their CrossPoint installation should be aware that it now offers tcp modem support, such that it will run without additional software. Check out: http://www.openxp.de

9.3 lan_remotedialing: How can I allow the users in my LAN to trigger a dial out via the ISDN card(s) in my Linux PC?

For this you need two pieces of software. At the computer where the ISDN-line is connected you need to install a dial daemon. The dial daemon will execute any dial commands given from a dial frontend located on a different computer on the LAN. You have several options to choose a dial daemon and dial frontend.

  1. At first you can use the free software smpppd (SuSE Meta PPP Daemon) from SuSE as the dial daemon. smpppd gets used in the SuSE distribution for all ISDN, Modem and DSL connections. You can connect to smpppd locally or over a LAN via different dial frontends and trigger dial-out, hang-up and so on. The most known dial frontend is kinternet a small applet for the KDE Kicker. Others are the qt-only qinternet and the command line tool cinternet. Unfortunately there is no frontend for Windows or Mac OS available. Obviously this is the easiest way if you already have SuSE installed on the server, and all other involved computers are also based on Linux (installation of the dial frontend should not be too difficult with non-SuSE distributions). Some more hints:
  2. Another free software solution working the same way is LineControl. It has a dial daemon (linesrv) which you can configure dialing different connections (similar to smpppd) be it ISDN, Modem, DSL or another dial-out connection. Dial frontends are available for Linux (one for KDE and one for Gnome), Windows and Java. Some more hints:


Next Previous Contents