DPPP on networked multinode BBSs - Detlef Pleiss, Aug-30-97

One frequently asked question is about how to run DPPP on a multinode BBS with
multiple networked machines as BBS servers, where only one machine is connected
to the Internet.
To understand the answers provided in this text you need to understand about
how DPPP works and how TCP/IP networking works. I'm not going to explain the
basics here. Read DPPP.TXT and TCPIP.TXT first.
The setup this text relates to is something like the following:
A multinode BBS runs on multiple networked machines that each serve one or
more BBS nodes. Only one of these machines has a connection to the Internet.
In the following I will call this machine the "Gateway". So, there's some sort
of network, i.e. Ethernet, that connects all the BBS machines to form a LAN,
while only the Gateway has a connection to the Internet, i.e. a modem dial-up.
So, without further setup, DPPP can only run on the Gateway machine, not on
the others. Sidenote 1: The Gateway does not necessarily have to run BBS
nodes. The question is how to run DPPP on a machine that is not connected to
the Internet but by means of a LAN is connected to a "Gateway" machine.
Sidenote 2: While the machines on the LAN each have just one network interface
(i.e. the Ethernet), the Gateway has two network interfaces: one to the LAN
and one to the Internet (i.e. the PPP dial-up).
The local networking (i.e. using IPX/SPX or NetBios protocols) shares
resources between computers on the LAN. Such resources normally are disks,
directories, files or printers. The Internet connection of the Gateway is not
such a resource. You can not share that connection just like you share files
or printers between several machines.
There are two approaches to the problem, covered in the following paragraphs
"The politically correct Solution" and "Using a Proxy Server".
Both solutions are not step-by-step instructions on how to get things running,
but meant to give you the idea of what you need to accomplish using your
particular operating system and network setup. To find out the details you
will need to consult the manuals of your operating system and/or the
networking software you run. Sidenote: In both solutions you need to run
TCP/IP as a protocol on your LAN. So, you will need to configure the TCP/IP
protocol on all machines involved.

The politically correct Solution
================================

DPPP assumes to run on a machine that does have a full (while maybe dial-up)
Internet connection. So, as the problem is that the machines on the LAN do not
have such a connection, the politically correct solution is to give a full
Internet connection to all machines on the LAN. What that means is to make
your entire LAN part of the Internet. You would need to get registered IP
addresses for all machines involved, a class C network or a subnet. Normally
you should be able to get that as a ($$$) service from your ISP. You assign
one of those IP addresses to each machine on the LAN. As IP addresses refer
not to machines but to network interfaces, the Gateway would have two IP
addresses, one for the Internet connection and one for the connection to your
LAN. With such a setup all traffic to and from your network of IP addresses
goes through your Internet connection. So, you will need some means of
routing, to get the packets delivered to the correct machines. There are
different ways to accomplish this: You could buy a dedicated router; you could
use Windows NT on the Gateway machine to do the routing (Windows 95 can not do
the routing); you could use a Linux box as the Gateway machine to just do the
routing to the other machines on the LAN; there even exists router software
for DOS (IPRoute, www.mischler.com). Routing alone does not have high CPU /
RAM / disk requirements. You can do it on a 386 using Linux or IPRoute. On the
other hand, with Windows NT you could use the Gateway machine to do the
routing and run one or more BBS nodes on it. Well, that's about it.  With such
a setup each machine has its own IP address and a full Internet connection,
running TCP/IP over your LAN, through the router to the Internet.
An other way to accomplish about the same would be to have a separate
(i.e. dial-up) connection to the Internet / to your ISP on each machine. While
at first glance it looks different to the above setup, in TCP/IP terms it is
very much the same: It's just that the router is not located at your site but
it's the router at your ISPs site that decides what line to use to deliver
packets for a specific IP address to the correct machine on your network.

If all that looks like too much buck for the bang to you, the following is the
cheaper solution. Drawback is some restrictions in functionality and a more
complex setup for your callers.

Using a Proxy Server
====================

A Proxy Server is that sort of software that is most often advertised with
sentences like "Connect your entire LAN to the Internet with only one dial-up"
or "Share your Internet connection between your entire LAN". In fact, DPPP
itself is a Proxy and you should have some understanding of the Proxy concept
after reading DPPP.TXT. The only difference is that DPPP forwards the Internet
connection to a caller on a BBS line, while the sort of software that is meant
here forwards the Internet connection from one network interface to the other.
Remember, as I said above, that the Gateway has two network interfaces, i.e.
the PPP Internet dial-up and the Ethernet card to your LAN. Only that does not
imply both can talk to each other. While in the politically correct solution
it is the routing software that shovels packets from one interface to the
other, in this case it is the Proxy software that forwards packets between
network interfaces. The difference when using a Proxy is that you do not need
registered IP addresses for all your machines, but only the one IP address of
your Internet connection on Gateway (comparable to how multiple BBS nodes can
run DPPP simultaneously over the one Internet connection on the BBS machine,
all using the "virtual" IP address 10.0.2.15).
With a Proxy you still use the TCP/IP protocol on your LAN and still configure
different IP addresses for the machines on the LAN, but in this case you use
"private" IP addresses, that do not exist on the Internet, but that are
reserved for local use. Two such address ranges exist: 10.0.0.0 to
10.255.255.255 and 192.168.0.0 to 192.168.255.255. The manual of the Proxy
software you use hopefully explains setting up your LAN to use those IPs in
more detail. It may use one of both the named IP ranges for examples, anyhow:
*** As DPPP itself acts as a Proxy and uses the 10.x.x.x address range
internally, you must use the 192.168.x.x range for your LAN. If your manual
has examples in the 10.x.x.x range, you may safely exchange the given
example IP addresses with corresponding addresses in the 192.168.x.x range.
*** With a Proxy, do not use IP addresses outside those two ranges
(unless you registered them with your ISP, in which case you would opt for the
politically correct solution anyway).
So the setup is like this: The TCP/IP protocol is run on the LAN and each
machine has a unique IP address in the 192.168.x.x range. The Gateway has a
LAN interface with a IP address in the 192.168.x.x range plus the actual
Internet connection with an IP address as determined by your ISP. The Proxy
software runs on the Gateway machine and acts as the "missing link" between
Gateway's both network interfaces. In the following it is assumed that
Gateways interface to the LAN has an IP address of 192.168.0.1, while the
other machines on the LAN may have IP addresses like 192.168.0.2, 192.168.0.3,
etc. With such a setup DPPP callers can access the Internet through Gateway,
but there are some restrictions: Only protocols that are supported by the
Proxy can be used and callers have to setup their software to use the proxy.
The latter means i.e.: They must configure their web browser to use Gateway as
HTTP (and if supported FTP) proxy. To be exact they need to enter the IP
address of Gateways LAN interface as Proxy setting (speak 192.168.0.1). If the
Proxy supports News, IRC and EMail protocols, they would need to use the very
same IP address for their News, IRC or EMail server entries. When configuring
the Proxy software on Gateway, you define to which servers out on the Internet
(or even on the Intranet) these connections then get forwarded. Here we have
another restriction of a Proxy setup in contrast to the politically correct
solution: Callers can not choose to which server to connect to for News, IRC,
EMail etc., but can only connect to the servers you specify.
In order to successfully run DPPP, the machine it runs on must have DNS
resolution. So on a LAN connected to the Internet through a Proxy, the Proxy
must support DNS forwarding. While on the Gateway machine the DNS setting
points to the actual DNS server of your ISP, on the LAN machines you configure
TCP/IP and DPPP to use Gateway (speak 192.168.0.1) as DNS server. You will
also need a HOSTS file in the \windows directory (\system32\drivers\etc for
NT) of each machine on the LAN, so DPPP can find a name for the machine it
runs on.  The HOSTS file consists of
<IP address><tab><name><enter>
entries per line (have a <enter> after the last line). You can choose whatever
names you like. Have one line per machine on the LAN. Have the same HOSTS file
(thus the same IP <-> name pairs) on every machine on the LAN.
DPPP callers can still use 10.0.2.3 as DNS address: As you entere 192.168.0.1
for DNS in DPPPSET, DPPP forwards DNS requests to the Proxy that runs on
Gateway, which then forwards them to the actual DNS server of your ISP.
For details on how to configure your Proxy server, refer to its manual
(WinGate has an excellent one, worth reading even if you use a different
software), here just some points to keep in mind to avoid confusion:
* The Gateway machine has two network interfaces and thus two IP addresses, a
registered IP address for the connection to your ISP and (let's say)
192.168.0.1 for the interface to your LAN.
* Use 192.168.x.x addresses for your LAN, not 10.x.x.x addresses. (The latter
would work for the LAN, but not for DPPP callers)
* Have the same HOSTS file and point DNS to 192.168.0.1 on each
computer on the LAN (except Gateway itself). DPPP does require working name
resolution.
* Whatever a DPPP caller does looks to the network like it would
originate from the machine where DPPP runs on. So if troubleshooting
something try if you can do what you want to achieve on the BBS / LAN machine
itself. If that works it will most likely work the same way for a DPPP caller.
If it doesn't work locally, it wouldn't work for a DPPP caller as well.
Sidenote: If the Proxy license depends on the number of machines connected, it
is the number of machines on your LAN that counts; it doesn't matter how many
BBS nodes with DPPP run on them.
* A machine on the LAN can never connect directly to the Internet, only to the
Gateway, where the Proxy software then forwards data between the LAN and the
Internet. In other words, connecting directly to an external host will never
work, client software needs to be configured to go through Gateway / connect
to Gateway. Anyway, with correctly configured client software (i.e. Proxy
settings in a web browser) this may not make much difference to the user.
* For the same reasons, DPPP callers will need to configure their setup and
client software to connect to Gateway as Proxy server. They can not simply
connect to servers "out there" directly, but only by going through Gateway.
And that only using protocols that the Proxy supports.

Sidenote on using a Proxy Server
================================

(Thanks to David Robinson for the hint)
Whatever your setup is like, it may be useful to run a Proxy server on the
BBS machine(s). You can then instruct your DPPP callers to connect to 10.0.2.2
for News, IRC, EMail etc. and configure your Proxy to forward these connections
to where ever you like. Advantage: You can move servers around on your network
without requiring DPPP callers to ever change anything in their setup. Another
side effect is that you can have things look to your callers like you'd have
running servers for everything on your machine. For example, if you configure
a Proxy on the BBS machine to forward connections to the NNTP port to your
ISP's (or whatever) news server, your callers can access Newsgroups using the
IP address 10.0.2.2. It also makes things simpler for your callers, as they
can use this same IP address for all kind of services. You can do so with
WinGate (and maybe others) even for free as this would still count as one
machine, regardless of the number of BBS / DPPP nodes on that machine.
