mirror of https://github.com/tLDP/LDP
488 lines
14 KiB
XML
488 lines
14 KiB
XML
<sect1 id="Leased-Line">
|
||
|
||
<title>Leased-Line</title>
|
||
|
||
_______________________________________________________________________________
|
||
<sect>
|
||
<para>
|
||
Configuring your modem and pppd to use a 2 wire twisted pair leased
|
||
line.
|
||
</para>
|
||
|
||
1.2. What is a leased line
|
||
|
||
<para>
|
||
Any fixed, that is permanent, point to point data communications link,
|
||
which is leased from a telco or similar organisation. The leased line
|
||
involves cables, such as twisted pair, coax or fiber optic, and may
|
||
involve all sorts of other hardware such as (pupin) coils,
|
||
transformers, amplifiers and regenerators.
|
||
</para>
|
||
|
||
<para>
|
||
This document deals with:
|
||
Configuring your modem and pppd to use a 2 wire twisted pair
|
||
leased line.
|
||
</para>
|
||
|
||
<para>
|
||
This document does NOT deal with:
|
||
SLIP, getting or installing pppd, synchronous data
|
||
communication, baseband modems, xDSL.
|
||
</para>
|
||
|
||
1.3. Assumptions
|
||
|
||
<para>
|
||
You should already have a working pppd on your system. You also need
|
||
Minicom or a similar program to configure your modems.
|
||
</para>
|
||
|
||
2. Modem
|
||
|
||
<para>
|
||
A leased line is not connected to a telephone exchange and does not
|
||
provide DC power, dial tone, busy tone or ring signal. This means that
|
||
your modems are on their own and have to be able to deal with this
|
||
situation.
|
||
</para>
|
||
|
||
<para>
|
||
You should have 2 identical (including firmware version) external
|
||
modems supporting both leased line and dumb mode. Make sure your
|
||
modems can actually do this! Also make sure your modem is properly
|
||
documented. You also need:
|
||
</para>
|
||
|
||
· 2 fully wired shielded RS232 cables. The shield should be connected
|
||
to the connector shell (not pin 1) at both ends (not at one end).
|
||
· A RS232 test plug may be handy for test purposes.
|
||
· 2 RJ11 cords, one for each end of the leased line.
|
||
· A basic understanding of `AT' commands.
|
||
|
||
2.1. Modem Configuration
|
||
|
||
<para>
|
||
A note on modem configuration and init strings in general: Configure
|
||
your modem software such as minicom or (m)getty to use the highest
|
||
possible speed; 57600 bps for 14k4 and 115200 bps for 28k8 or faster
|
||
modems. Lots of people use very long and complicated init strings,
|
||
often starting with AT&F and containing lots of modem brand and -type
|
||
specific commands. This however is needlessly complicated. Most
|
||
programs feel happy with the same modem settings, so why not write
|
||
these settings in the non volatile memory of all your modems, and only
|
||
use `ATZ' as an init string in all your programs. This way you can
|
||
swap or upgrade your modems without ever having to reconfigure any of
|
||
your software.
|
||
</para>
|
||
|
||
<para>
|
||
Most programs require you to use the following settings;
|
||
</para>
|
||
|
||
· Fixed baud rate (no auto baud)
|
||
· Hardware bidirectional RTS-CTS flow control (no x-on/x-off)
|
||
· 8 Bits, no parity, 1 stopbit
|
||
· The modem should produce the TRUE DCD status (&C1)
|
||
· The modem should NOT ignore the DTR status (&D2 or &D3)
|
||
|
||
<para>
|
||
Check this with AT&V or AT&Ix (consult your modem documentation)
|
||
</para>
|
||
|
||
<para>
|
||
These settings are not necessarily the same as the default factory
|
||
profile (&F), so starting an init string with AT&F is probably not a
|
||
good idea in the first place. The smart thing to do is probably to use
|
||
AT&F only when you have reason to believe that the modem setup stored
|
||
in the non volatile memory is really screwed up. If you think you
|
||
have found the right setup for your modems, write it to non volatile
|
||
memory with AT&W and test it thoroughly with Z-modem file transfers of
|
||
both ASCII text and binary files. Only if all of this works perfectly
|
||
should you configure your modems for leased line.
|
||
</para>
|
||
|
||
<para>
|
||
Find out how to put your modem into dumb mode and, more importantly,
|
||
how to get it out of dumb mode; The modem can only be reconfigured
|
||
when it is not in dumb mode. Make sure you actually configure your
|
||
modems at the highest possible speed. Once in dumb mode it will
|
||
ignore all `AT' commands and consequently will not adjust its speed to
|
||
that of the COM port, but will use the speed at which it was
|
||
configured instead (this speed is stored in a S-register by the AT&W
|
||
command).
|
||
</para>
|
||
|
||
<para>
|
||
Now configure your modem as follows;
|
||
</para>
|
||
|
||
· Reset on DTR toggle (&D3, this is sometimes a S register). This
|
||
setting is required by some ISP's!
|
||
· Leased line mode (&L1 or &L2, consult your modem documentation)
|
||
· The remote modem auto answer (S0=1), the local originate (S0=0)
|
||
· Disable result codes (Q1, sometimes the dumb mode does this for
|
||
you)
|
||
· Dumb mode (\D1 or %D1, this is sometimes a jumper) In dumb mode the
|
||
modem will ignore all AT commands (sometimes you need to disable
|
||
the ESC char as well).
|
||
|
||
<para>
|
||
Write the configuration to non-volatile memory (&W).
|
||
</para>
|
||
|
||
2.2. Test
|
||
|
||
<para>
|
||
Now connect the modems to 2 computers using the RS232 cables and
|
||
connect the modems to each other using a RJ11 lead. Use a modem
|
||
program such as Minicom (Linux), procom or telix (DOS) on both
|
||
computers to test the modems. You should be able to type text from
|
||
one computer to the other and vice versa. If the screen produces
|
||
garbage check your COM port speed and other settings. Now disconnect
|
||
and reconnect the RJ11 cord. Wait for the connection to reestablish
|
||
itself. Disconnect and reconnect the RS232 cables, switch the modems
|
||
on and off, stop and restart Minicom. The modems should always
|
||
reconnect at the highest possible speed (some modems have speed
|
||
indicator leds). Check whether the modems actually ignores the ESC
|
||
(+++) character. If necessary disable the ESC character.
|
||
</para>
|
||
|
||
<para>
|
||
If all of this works you may want to reconfigure your modems; Switch
|
||
off the sound at the remote modem (M0) and put the local modem at low
|
||
volume (L1).
|
||
</para>
|
||
|
||
2.3. Examples
|
||
|
||
2.3.1. Hi-Tech
|
||
|
||
<para>
|
||
This is a rather vague `no name clone modem'. Its config string is
|
||
however typical and should work on most modems.
|
||
</para>
|
||
|
||
<para>
|
||
Originate (local):
|
||
ATL1&C1&D3&L2%D1&W&W1
|
||
</para>
|
||
|
||
<para>
|
||
Answer (remote):
|
||
ATM0L1&C1&D3&L2%D1S0=1&W&W1
|
||
</para>
|
||
|
||
2.3.2. Tornado FM 228 E
|
||
|
||
<para>
|
||
This is what should work;
|
||
</para>
|
||
|
||
<para>
|
||
Originate (local):
|
||
ATB15L1Q1&C1&D3&L2&W&W1
|
||
</para>
|
||
|
||
<para>
|
||
Answer (remote):
|
||
ATM0B15M0Q1&C1&D3&L2S0=1&W&W1
|
||
</para>
|
||
|
||
<para>
|
||
Move the dumb jumper from position 2-3 to 1-2.
|
||
</para>
|
||
|
||
<para>
|
||
Due to a firmware bug, the modems will only connect after being hard
|
||
reset (power off and on) while DTR is high. I designed a circuit which
|
||
hard resets the modem on the low to high transition of DTR. The
|
||
FreeBSD pppd however, isn't very happy about this. By combining the
|
||
setting &D0 with a circuit which resets on the high to low transition
|
||
instead, this problem can be avoided.
|
||
</para>
|
||
|
||
2.3.3. Tron DF
|
||
|
||
<para>
|
||
The ESC char should be disabled by setting S2 > 127;
|
||
</para>
|
||
|
||
<para>
|
||
Originate:
|
||
ATL1&L1Q1&C1&D3S2=171\D1&W
|
||
</para>
|
||
|
||
<para>
|
||
Answer:
|
||
ATM0&L2Q1&C1&D3S0=1S2=171\D1&W
|
||
</para>
|
||
|
||
2.3.4. US Robotics Courier V-Everything
|
||
|
||
<para>
|
||
The USR Sportster and USR Courier-I do not support leased line. You
|
||
need the Courier V-everything version for this job. There is a
|
||
webpage on the USR site `explaining' how to set-up your Courier for
|
||
leased line. However, if you follow these instructions you will end up
|
||
with a completely brain dead modem, which can not be controlled or
|
||
monitored by your pppd.
|
||
</para>
|
||
|
||
<para>
|
||
The USR Courier can be configured with dip switches, however you need
|
||
to feed it the config string first. First make sure it uses the right
|
||
factory profile. Unlike most other modems it has three; &F0, &F1 and
|
||
&F2. The default, which is also the one you should use, is &F1. If you
|
||
send it an AT&F, however it will load the factory profile &F0! For
|
||
the reset on DTR toggle you set bit 0 of S register 13. This means you
|
||
have to set S13 to 1. Furthermore you need set it to leased line mode
|
||
with &L1; ATS13=1&L1&W The dip switches are all default except for the
|
||
following:
|
||
<para>
|
||
|
||
<para>
|
||
3 OFF Disable result codes
|
||
4 ON Disable offline commands
|
||
5 ON For originate, OFF For answer
|
||
8 OFF Dumb mode
|
||
</para>
|
||
|
||
3. PPPD
|
||
|
||
<para>
|
||
You need a pppd (Point to Point Protocol Daemon) and a reasonable
|
||
knowledge of how it works. Consult the relevant RFC's or the Linux PPP
|
||
HOWTO if necessary. Since you are not going to use a login procedure,
|
||
you don't use (m)getty and you do not need a (fake) user associated
|
||
with the pppd controlling your link. You are not going to dial so you
|
||
don't need any chat scripts either. In fact, the modem circuit and
|
||
configuration you have just build, are rather like a fully wired null
|
||
modem cable. This means you have to configure your pppd the same way
|
||
as you would with a null modem cable.
|
||
</para>
|
||
|
||
<para>
|
||
For a reliable link, your setup should meet the following criteria;
|
||
</para>
|
||
|
||
· Shortly after booting your system, pppd should raise the DTR signal
|
||
in your RS232 port, wait for DCD to go up, and negotiate the link.
|
||
· If the remote system is down, pppd should wait until it is up
|
||
again.
|
||
· If the link is up and then goes down, pppd should reset the modem
|
||
(it does this by dropping and then raising DTR), and then try to
|
||
reconnect.
|
||
· If the quality of the link deteriorates too much, pppd should reset
|
||
the modem and then reestablish the link.
|
||
· If the process controlling the link, that is the pppd, dies, a
|
||
watchdog should restart the pppd.
|
||
|
||
3.1. Configuration
|
||
|
||
<para>
|
||
Suppose the modem is connected to COM2, the local IP address is
|
||
`Loc_Ip' and the remote IP address is `Rem_Ip'. We want to use 576 as
|
||
our MTU. The /etc/ppp/options.ttyS1 would now be:
|
||
</para>
|
||
|
||
<para>
|
||
<screen>
|
||
crtscts
|
||
mru 576
|
||
mtu 576
|
||
passive
|
||
Loc_Ip:Rem_Ip
|
||
-chap
|
||
modem
|
||
#noauth
|
||
-pap
|
||
persist
|
||
</screen>
|
||
</para>
|
||
|
||
<para>
|
||
Stuff like `asyncmap 0', `lock', `modem' and `-detach' are probably
|
||
already in /etc/ppp/options. If not, add them to your
|
||
/etc/ppp/options.ttyS1. So, if the local system is 192.168.1.1 and
|
||
the remote system is 10.1.1.1, then /etc/ppp/options.ttyS1 on the
|
||
local system would be:
|
||
</para>
|
||
|
||
<para>
|
||
<screen>
|
||
crtscts
|
||
mru 576
|
||
mtu 576
|
||
passive
|
||
192.168.1.1:10.1.1.1
|
||
-chap
|
||
modem
|
||
#noauth
|
||
-pap
|
||
persist
|
||
</screen>
|
||
</para>
|
||
|
||
<para>
|
||
The options.ttyS1 on the remote system would be:
|
||
</para>
|
||
|
||
<para>
|
||
<screen>
|
||
crtscts
|
||
mru 576
|
||
mtu 576
|
||
passive
|
||
10.1.1.1:192.168.1.1
|
||
-chap
|
||
modem
|
||
#noauth
|
||
-pap
|
||
persist
|
||
</screen>
|
||
</para>
|
||
|
||
<para>
|
||
The passive option limits the number of (re)connection attempts. The
|
||
persist option will keep pppd alive in case of a disconnect or when it
|
||
can't connect in the first place. If you telnet a lot while doing
|
||
filetransfers (FTP or webbrowsing) at the same time, you might want to
|
||
use a smaller MTU and MRU such as 296. This will make the remote sys
|
||
tem more responsive. If you don't care much about telnetting during
|
||
FTP, you could set the MTU and MRU to 1500. Keep in mind though, that
|
||
UDP cannot be fragmented. Speakfreely for instance uses 512 byte UDP
|
||
packets. So the minimum MTU for speakfreely is 552 bytes. The noauth
|
||
option may be necessary with some newer distributions.
|
||
</para>
|
||
|
||
3.2. Scripts
|
||
|
||
3.2.1. Starting the pppd and keeping it alive
|
||
|
||
<para>
|
||
You could start the pppd form a boot (rc) script. However, if you do
|
||
this, and the pppd dies, you are without a link. A more stable
|
||
solution, is to start the pppd from /etc/inittab;
|
||
</para>
|
||
|
||
<para>
|
||
<screen>
|
||
s1:23:respawn:/usr/sbin/pppd /dev/ttyS1 115200
|
||
</screen>
|
||
</para>
|
||
|
||
<para>
|
||
This way, the pppd will be restarted if it dies. Make sure you have a
|
||
`-detach' option (nodetach on newer systems) though, otherwise inittab
|
||
will start numerous instances of pppd, will complaining about
|
||
`respawning too fast'.
|
||
</para>
|
||
|
||
<para>
|
||
Note: Some older systems will not accept the speed `115200'. In this
|
||
case you will have to set the speed to 38400 en set the `spd_vhi' flag
|
||
with setserial. Some systems expect you to use a `cua' instead of
|
||
`ttyS' device.
|
||
</para>
|
||
|
||
3.2.2. Setting the routes
|
||
|
||
<para>
|
||
The default route can be set with the defaultroute option or with the
|
||
/etc/ppp/ip-up script;
|
||
</para>
|
||
|
||
<para>
|
||
<screen>
|
||
#!/bin/bash
|
||
case $2 in
|
||
/dev/ttyS1)
|
||
/sbin/route add -net 0.0.0.0 gw Rem_Ip netmask 0.0.0.0
|
||
;;
|
||
esac
|
||
</screen>
|
||
</para>
|
||
|
||
<para>
|
||
Ip-up can also be used to sync your clock using netdate.
|
||
</para>
|
||
|
||
<para>
|
||
Of course the route set in ip-up is not necessarily the default route.
|
||
Your ip-up sets the route to the remote network while the ip-up script
|
||
on the remote system sets the route to your network. If your network
|
||
is 192.168.1.0 and your ppp interface 192.168.1.1, the ip-up script on
|
||
the remote machine looks like this;
|
||
</para>
|
||
|
||
<para>
|
||
<screen>
|
||
#!/bin/bash
|
||
case $2 in
|
||
/dev/ttyS1)
|
||
/sbin/route add -net 192.168.1.0 gw 192.168.1.1 netmask 255.255.255.0
|
||
;;
|
||
esac
|
||
</screen>
|
||
</para>
|
||
|
||
<para>
|
||
The `case $2' and `/dev/ttyS1)' bits are there in case you use more
|
||
than one ppp link. Ip-up will run each time a link comes up, but only
|
||
the part between `/dev/ttySx)' and `;;' will be executed, setting the
|
||
right route for the right ttyS. You can find more about routing in
|
||
the Linux Networking HOWTO section on routing.
|
||
</para>
|
||
|
||
3.3. Test
|
||
|
||
<para>
|
||
Test the whole thing just like the modem test. If it works, get on
|
||
your bike and bring the remote modem to the remote side of your link.
|
||
If it doesn't work, one of the things you should check is the COM port
|
||
speed; Apparently, a common mistake is to configure the modems with
|
||
Minicom using one speed and then configure the pppd to use an other.
|
||
This will NOT work! You have to use the same speed all of the time!
|
||
</para>
|
||
</sect>
|
||
|
||
<sect>
|
||
|
||
T1-T4
|
||
<para>
|
||
A T1 line is a high-speed, dedicated, point-to-point leased line that
|
||
includes 24 seperate 64 Kbps channles for voice and data. Other lines
|
||
of this type, called T-carrier lines, support larger numbers of channels.
|
||
T1 and T3 lines are the most commonly used.
|
||
</para>
|
||
|
||
<para>
|
||
<screen>
|
||
Carrier Channels Total Bandwidth
|
||
T1 24 1.544 Mbps
|
||
T2 96 6.312 Mbps
|
||
T3 672 44.736 Mbps
|
||
T4 4032 274.176 Mbps
|
||
</screen>
|
||
</para>
|
||
|
||
<para>
|
||
While the specification for T-carrier lines does not mandate a particular
|
||
media type, T1 and T2 are typically carried on copper, and T3 and T4
|
||
typically use fiber optic media. DS1, DS2, DS3, and DS4 are an alternate
|
||
type of line equivalent to T1-T4, and typically use fiber optic media.
|
||
</para>
|
||
|
||
SONET (Synchronous Optical Network)
|
||
<para>
|
||
A leased-line system using fiber optic media to support data speeds up to
|
||
2.4 Gbps. SONET services are sold based on optical carier (OC) levels. OC
|
||
levels are calculated as multiples of the OC-1 speed, 51.840 Mbps. For
|
||
example, OC-3 level would correspond with a data speed of 155 Mbps and
|
||
OC-12 level would equate to a data transfer rate of 622 Mbps. OC-1 and
|
||
OC-3 are the most commonly used SONET lines.
|
||
</para>
|
||
|
||
</sect>
|