PPP problems with multiport dial-in/dial-out server

PPP problems with multiport dial-in/dial-out server

Post by Beat Schae » Fri, 18 Dec 1998 04:00:00



Hi,

I have to set up a communication server for connecting 1000 ticket
vending machines (TVM) to a central database server over PSTN. We intend
to use 72 phone lines (3x T1) on the communication server. The protocol
we want to use over the phone lines is PPP. Our installation is a little
bit special, because we have to support dial-in AS WELL AS dial-out on
the same set of phone lines. This was also the reason, why we couldn't
use a standard-ISP-communication box.

To see, if Solaris can be used for this purpose, I have set up 3
SPARCstations 4 with Solaris 2.6. One of them (called jupiter) plays the
role of the communication server. It is connected via direct serial
connection over port a & b to the 2 SPARCstations playing the role of
the TVMs (called callisto and ganymede).

Everything was just working fine until I tried on jupiter to establish
two simultaneous dial-out connections to callisto and ganymede. I used
the following /etc/uucp/Systems and /etc/uucp/Devices files:

----
/etc/uucp/Systems
Pcallist   Any   Direct   Any   2222   "" "" login:-\r-login: Pjupiter
sword: secret1
Pganymed   Any   Direct   Any   3333   "" "" login:-\r-login: Pjupiter
sword: secret1
----
comment: I had to cut down Pcallist and Pganymed to 8 chars because it
seems that a username in Solaris can be only 8 chars long. The phone
number used in this file is just a dummy one.

---
/etc/uucp/Devices
Direct   cua/a   -   115200   direct
Direct   cua/b   -   115200   direct
---

=================================================================================
When I try to establish the connection to ganymede, while it is still
establishing the connection to callisto, everything works fine. The
following log entries proof that:
---
11:36:28 process_ipd_msg: ipd0 needs connection for address 192.168.20.2
conn(Pcallist)
Trying entry from '/etc/uucp/Systems' - device type Direct.
Device type Direct wanted
Trying device entry 'cua/a' from '/etc/uucp/Devices'.
processdev: calling setdevcfg(ppp, Direct)
fd_mklock: ok
fixline(8, 115200)
gdial(direct) called
Trying caller script 'direct' from '/etc/uucp/Dialers'.
expect: ("")
got it
11:36:29 process_ipd_msg: ipd0 needs connection for address 192.168.20.3
conn(Pganymed)
Trying entry from '/etc/uucp/Systems' - device type Direct.
Device type Direct wanted
Trying device entry 'cua/a' from '/etc/uucp/Devices'.
processdev: calling setdevcfg(ppp, Direct)
File exists: link(/var/spool/locks/LTMP.460,
/var/spool/locks/LK.032.029.131072)
ulockf name /var/spool/locks/LK.032.029.131072
Lock File--process still active--not removed
set interface UNIX
Trying device entry 'cua/b' from '/etc/uucp/Devices'.
processdev: calling setdevcfg(ppp, Direct)
fd_mklock: ok
fixline(9, 115200)
gdial(direct) called
Trying caller script 'direct' from '/etc/uucp/Dialers'.
expect: ("")
got it
getto ret 8
expect: ("")
got it
getto ret 9
expect: ("")
got it
""
sendthem (^M)
expect: (login:)
^M^Jttya login:got it
""
sendthem (^M)
expect: (login:)
^M^Jttya login:got it
sendthem (Pjupiter^M)
expect (sword:)
 Pjupiter^M^JPassword:got it
sendthem (Pjupiter^M)
expect (sword:)
 Pjupiter^M^JPassword:got it
sendthem (secret1^M)
call cleanup(0)
11:36:37 start_ip: IP up on interface ipd0, timeout set for 60 seconds
sendthem (secret1^M)
call cleanup(0)
11:36:38 start_ip: IP up on interface ipd0, timeout set for 60 seconds
---
As we can see, aspppd realizes that there is a lock on cua/a and tries
automatically the next free interface, which is cua/b here.

=================================================================================

If I establish the connection to ganymede, while the connection to
callisto is already established, it won't work:
---
13:21:29 process_ipd_msg: ipd0 needs connection for address 192.168.20.2
conn(Pcallist)
Trying entry from '/etc/uucp/Systems' - device type Direct.
Device type Direct wanted
Trying device entry 'cua/a' from '/etc/uucp/Devices'.
processdev: calling setdevcfg(ppp, Direct)
fd_mklock: ok
fixline(9, 115200)
gdial(direct) called
Trying caller script 'direct' from '/etc/uucp/Dialers'.
expect: ("")
got it
getto ret 9
expect: ("")
got it
""
sendthem (^M)
expect: (login:)
[snip]
13:21:37 start_ip: IP up on interface ipd0, timeout set for 60 seconds
13:21:47 process_ipd_msg: ipd0 needs connection for address 192.168.20.3
conn(Pganymed)
Trying entry from '/etc/uucp/Systems' - device type Direct.
Device type Direct wanted
Trying device entry 'cua/a' from '/etc/uucp/Devices'.
processdev: calling setdevcfg(ppp, Direct)
fd_mklock: ok
fixline(11, 115200)
gdial(direct) called
Trying caller script 'direct' from '/etc/uucp/Dialers'.
expect: ("")
got it
getto ret 11
expect: ("")
got it
""
sendthem (^M)
expect: (login:)
lost line errno - 22
sendthem (^M^M)
expect: (login:)
lost line errno - 22
close caller (11)
delock line (cua/a)
Call Failed: LOGIN FAILED
=================================================================================

I had a quick look at the answerbook and found out, that there is
another method of autoselecting the first available line. So I made the
following modifications to the UUCP-files:
----
/etc/uucp/Systems
Pcallist   Any   DirectA   Any   2222   "" "" login:-\r-login: Pjupiter
sword: secret1
Pcallist   Any   DirectB   Any   2222   "" "" login:-\r-login: Pjupiter
sword: secret1
Pganymed   Any   DirectA   Any   3333   "" "" login:-\r-login: Pjupiter
sword: secret1
Pganymed   Any   DirectB   Any   3333   "" "" login:-\r-login: Pjupiter
sword: secret1
---
/etc/uucp/Devices
DirectA   cua/a   -   115200   direct
DirectB   cua/b   -   115200   direct
---

With this modification, everything works fine, so this could be really
the solution of my problem.

BUT : I have to create a combination of EVERY TVM WITH EVERY LINE. As I
wrote in the introduction, we have 1000 TVMs and 72 phone lines. If
every entry in the Systems file has a length of 100 bytes, this will
create a file with the length of
                7,200,000 BYTES (1000 * 72 * 100)
I think that such a huge Systems file will not have a good impact on
performance!

So my question is:
Is it possible to get the result I want, without creating such a
incredible big Systems-file.

kind regards :-)

Beat Schaer

--
Ascom Autelca AG      phone office: ++41 (0)31-999-6357
Beat Schaer           fax   office: ++41 (0)31-999-6582

3073 Guemligen
Switzerland

 
 
 

PPP problems with multiport dial-in/dial-out server

Post by James Carlso » Fri, 18 Dec 1998 04:00:00



> I have to set up a communication server for connecting 1000 ticket
> vending machines (TVM) to a central database server over PSTN. We intend
> to use 72 phone lines (3x T1) on the communication server. The protocol
> we want to use over the phone lines is PPP. Our installation is a little
> bit special, because we have to support dial-in AS WELL AS dial-out on
> the same set of phone lines. This was also the reason, why we couldn't
> use a standard-ISP-communication box.

Huh?  All of the standard servers that I know about support both dial
in and dial out.  What ones did you look at?  Have you tried Bay,
Cisco, or Livingston?

Quote:> To see, if Solaris can be used for this purpose, I have set up 3
> SPARCstations 4 with Solaris 2.6. One of them (called jupiter) plays the
> role of the communication server. It is connected via direct serial
> connection over port a & b to the 2 SPARCstations playing the role of
> the TVMs (called callisto and ganymede).

That doesn't sound like a good plan.  Personally, I'd buy a commercial
communications server to do this.  An RA4000 would easily support 72
serial ports connected to modems.  (Or, if you really have T1s coming
in, you could go purely digital with a pair of RA8000s.)

Quote:> comment: I had to cut down Pcallist and Pganymed to 8 chars because it
> seems that a username in Solaris can be only 8 chars long. The phone
> number used in this file is just a dummy one.

Yep.

Quote:> BUT : I have to create a combination of EVERY TVM WITH EVERY LINE. As I
> wrote in the introduction, we have 1000 TVMs and 72 phone lines. If
> every entry in the Systems file has a length of 100 bytes, this will
> create a file with the length of
>                 7,200,000 BYTES (1000 * 72 * 100)
> I think that such a huge Systems file will not have a good impact on
> performance!

Yeah, that'd be a mistake.  Those systems just are not designed to do
what you're trying to do.  A handful of lines with a round-robin is
just fine.  A large pile of lines is not.  It doesn't scale.  That's
one of the reasons why people buy dedicated systems to handle high
densities of connections like this.

--

IronBridge Networks / 55 Hayden Avenue  71.246W    Vox:  +1 781 372 8132
Lexington MA  02421-7996 / USA          42.423N    Fax:  +1 781 372 8090
"PPP Design and Debugging" --- http://people.ne.mediaone.net/carlson/ppp

 
 
 

PPP problems with multiport dial-in/dial-out server

Post by Andrew Su » Sat, 19 Dec 1998 04:00:00



> Hi,

> I have to set up a communication server for connecting 1000 ticket
> vending machines (TVM) to a central database server over PSTN. We intend
> to use 72 phone lines (3x T1) on the communication server. The protocol
> we want to use over the phone lines is PPP. Our installation is a little
> bit special, because we have to support dial-in AS WELL AS dial-out on
> the same set of phone lines. This was also the reason, why we couldn't
> use a standard-ISP-communication box.

> To see, if Solaris can be used for this purpose, I have set up 3
> SPARCstations 4 with Solaris 2.6. One of them (called jupiter) plays the
> role of the communication server. It is connected via direct serial
> connection over port a & b to the 2 SPARCstations playing the role of
> the TVMs (called callisto and ganymede).

> Everything was just working fine until I tried on jupiter to establish
> two simultaneous dial-out connections to callisto and ganymede. I used
> the following /etc/uucp/Systems and /etc/uucp/Devices files:

> ----
> /etc/uucp/Systems
> Pcallist   Any   Direct   Any   2222   "" "" login:-\r-login: Pjupiter
> sword: secret1
> Pganymed   Any   Direct   Any   3333   "" "" login:-\r-login: Pjupiter
> sword: secret1
> ----
> comment: I had to cut down Pcallist and Pganymed to 8 chars because it
> seems that a username in Solaris can be only 8 chars long. The phone
> number used in this file is just a dummy one.

> ---
> /etc/uucp/Devices
> Direct   cua/a   -   115200   direct
> Direct   cua/b   -   115200   direct
> ---

> =================================================================================

. . .

Quote:> As we can see, aspppd realizes that there is a lock on cua/a and tries
> automatically the next free interface, which is cua/b here.

> =================================================================================

> If I establish the connection to ganymede, while the connection to
> callisto is already established, it won't work:
> ---
> 13:21:29 process_ipd_msg: ipd0 needs connection for address 192.168.20.2
> conn(Pcallist)
> Trying entry from '/etc/uucp/Systems' - device type Direct.
> Device type Direct wanted
> Trying device entry 'cua/a' from '/etc/uucp/Devices'.

cua/a here

Quote:> 13:21:37 start_ip: IP up on interface ipd0, timeout set for 60 seconds
> 13:21:47 process_ipd_msg: ipd0 needs connection for address 192.168.20.3
> conn(Pganymed)
> Trying entry from '/etc/uucp/Systems' - device type Direct.
> Device type Direct wanted
> Trying device entry 'cua/a' from '/etc/uucp/Devices'.

cua/a again

- Show quoted text -

Quote:> processdev: calling setdevcfg(ppp, Direct)
> fd_mklock: ok
> fixline(11, 115200)
> gdial(direct) called
> Trying caller script 'direct' from '/etc/uucp/Dialers'.
> expect: ("")
> got it
> getto ret 11
> expect: ("")
> got it
> ""
> sendthem (^M)
> expect: (login:)
> lost line errno - 22
> sendthem (^M^M)
> expect: (login:)
> lost line errno - 22
> close caller (11)
> delock line (cua/a)
> Call Failed: LOGIN FAILED

Apparently, there is a serial interface locking problem
with Solaris PPP.  The second connection is trying to use
an already active interface.

You might want to report this bug to Sun Microsystems.

But then, this may be a "feature" of Solaris PPP.
Namely, it doesn't support dynamic selection of serial interfaces.

=================================================================================

- Show quoted text -

Quote:

> I had a quick look at the answerbook and found out, that there is
> another method of autoselecting the first available line. So I made the
> following modifications to the UUCP-files:
> ----
> /etc/uucp/Systems
> Pcallist   Any   DirectA   Any   2222   "" "" login:-\r-login: Pjupiter
> sword: secret1
> Pcallist   Any   DirectB   Any   2222   "" "" login:-\r-login: Pjupiter
> sword: secret1
> Pganymed   Any   DirectA   Any   3333   "" "" login:-\r-login: Pjupiter
> sword: secret1
> Pganymed   Any   DirectB   Any   3333   "" "" login:-\r-login: Pjupiter
> sword: secret1
> ---
> /etc/uucp/Devices
> DirectA   cua/a   -   115200   direct
> DirectB   cua/b   -   115200   direct
> ---

> With this modification, everything works fine, so this could be really
> the solution of my problem.

> BUT : I have to create a combination of EVERY TVM WITH EVERY LINE. As I
> wrote in the introduction, we have 1000 TVMs and 72 phone lines. If
> every entry in the Systems file has a length of 100 bytes, this will
> create a file with the length of
>                 7,200,000 BYTES (1000 * 72 * 100)
> I think that such a huge Systems file will not have a good impact on
> performance!

This is just a work around,
and is just a kludge in my opinion,
because of the reasons you already mention.

In my sys admin experience, kludges are always bad
for anything to be used for production.

Quote:

> So my question is:
> Is it possible to get the result I want, without creating such a
> incredible big Systems-file.

> kind regards :-)

You might consider working out another, more robust workround,
maybe trying to create the missing lock files
(although with Solaris PPP, I can't think of an easy way off hand
to detect what serial interfaces are active).

As another poster suggested, the better solution may be to
consider using an alternative hardware platform for PPP.

> Beat Schaer

> --
> Ascom Autelca AG      phone office: ++41 (0)31-999-6357
> Beat Schaer           fax   office: ++41 (0)31-999-6582

> 3073 Guemligen
> Switzerland

--
Sun, Andrew, "Using & Managing PPP," O'Reilly & Associates, March 1999
http://www.oreilly.com/catalog/umppp
 
 
 

PPP problems with multiport dial-in/dial-out server

Post by Beat Schae » Sat, 19 Dec 1998 04:00:00


Hi James


> Huh?  All of the standard servers that I know about support both dial
> in and dial out.  What ones did you look at?  Have you tried Bay,
> Cisco, or Livingston?

Yes, I was looking a long time for a standard solution, but the only
dial out possibility they support is a modem pooling function. As far as
I understand it, the only possiblity with such a modem pooling is an
'emulation' of a COM port on the PC. That's not what I am looking for. I
want to have a system, where the dial out is performed automatically
whenever an IP packet arrives on the communication server with a TVM as
the destination.

Quote:> That doesn't sound like a good plan.  Personally, I'd buy a commercial
> communications server to do this.  An RA4000 would easily support 72
> serial ports connected to modems.  (Or, if you really have T1s coming
> in, you could go purely digital with a pair of RA8000s.)

I had a quick look at Bay and found this description of the dial out
functionality in the product description:
---
Dial-Out Client Support
Versalar software version 6.0 dial-out client allows the Versalar remote
access concentrators to serve as a pool of dial-out modems. This
functionality allows enterprise users to dial out from their networked
PCs to their service providers, without the expense of individual phone
lines and modems for each PC, resulting in significant cost savings.
---
Doesn't sound nice :-(
A description like this one I found in every commercial communication
server up to now. I don't want to rule out that such a box exists
anywhere in the world, but I haven't found it yet!

Quote:> Yeah, that'd be a mistake.  Those systems just are not designed to do
> what you're trying to do.  A handful of lines with a round-robin is
> just fine.  A large pile of lines is not.  It doesn't scale.  That's
> one of the reasons why people buy dedicated systems to handle high
> densities of connections like this.

I know, I know. I'd also prefer the solution with a dedicated system.
But it's not worth to pay the (high) price of such a dedicated system if
it isn't exactly what I want. By the way: We have to send faxes, pager
and voice messages over this communication system, too.

But thank you for your answer. I really appreciate that!!

with kind regards

Beat Schaer

--

Ascom Autelca AG      phone office: ++41 (0)31-999-6357
Beat Schaer           fax   office: ++41 (0)31-999-6582

3073 Guemligen
Switzerland

 
 
 

PPP problems with multiport dial-in/dial-out server

Post by Andrew Su » Sun, 20 Dec 1998 04:00:00





> > ----
> > /etc/uucp/Systems
> > Pcallist   Any   Direct   Any   2222   "" "" login:-\r-login: Pjupiter
> > sword: secret1
> > Pganymed   Any   Direct   Any   3333   "" "" login:-\r-login: Pjupiter
> > sword: secret1

> [ Problem is that "Any" here doesn't work for the device name. ]

Huh?
The first "Any" is the time to call.
The "Direct" is the device type,
and the second "Any" is the line speed.

--
Sun, Andrew, "Using & Managing PPP," O'Reilly & Associates, March 1999
http://www.oreilly.com/catalog/umppp

 
 
 

PPP problems with multiport dial-in/dial-out server

Post by James Carlso » Tue, 22 Dec 1998 04:00:00




> > Huh?  All of the standard servers that I know about support both dial
> > in and dial out.  What ones did you look at?  Have you tried Bay,
> > Cisco, or Livingston?

> Yes, I was looking a long time for a standard solution, but the only
> dial out possibility they support is a modem pooling function. As far as
> I understand it, the only possiblity with such a modem pooling is an
> 'emulation' of a COM port on the PC. That's not what I am looking for. I
> want to have a system, where the dial out is performed automatically
> whenever an IP packet arrives on the communication server with a TVM as
> the destination.

Right; the COM port nonsense isn't what you want -- you want demand
dial PPP sessions, not PC stuff.  Again, all of them do it.

Quote:> I had a quick look at Bay and found this description of the dial out
> functionality in the product description:
> ---
> Dial-Out Client Support
> Versalar software version 6.0 dial-out client allows the Versalar remote
> access concentrators to serve as a pool of dial-out modems. This
> functionality allows enterprise users to dial out from their networked
> PCs to their service providers, without the expense of individual phone
> lines and modems for each PC, resulting in significant cost savings.
> ---
> Doesn't sound nice :-(
> A description like this one I found in every commercial communication
> server up to now. I don't want to rule out that such a box exists
> anywhere in the world, but I haven't found it yet!

That's looking in the wrong place.  The Bay products *DO* support
this.  I helped write the code.  The feature is called "one-to-many
dial-out," and it's certainly in the manuals.

The Bay/Nortel web site is most annoying.  It looks like it was
written by the marketing geniuses.

Again, all of the competitive products also support this.

Quote:> > Yeah, that'd be a mistake.  Those systems just are not designed to do
> > what you're trying to do.  A handful of lines with a round-robin is
> > just fine.  A large pile of lines is not.  It doesn't scale.  That's
> > one of the reasons why people buy dedicated systems to handle high
> > densities of connections like this.

> I know, I know. I'd also prefer the solution with a dedicated system.
> But it's not worth to pay the (high) price of such a dedicated system if
> it isn't exactly what I want. By the way: We have to send faxes, pager
> and voice messages over this communication system, too.

I agree!  But given the grief you'll suffer trying to do this with a
general purpose system, you should check beyond the marketing junk
(which is primarily written for sorry PC users these days).

Try posting in comp.dcom.servers; there are a number of communication
server users and vendors there.

--

IronBridge Networks / 55 Hayden Avenue  71.246W    Vox:  +1 781 372 8132
Lexington MA  02421-7996 / USA          42.423N    Fax:  +1 781 372 8090
"PPP Design and Debugging" --- http://people.ne.mediaone.net/carlson/ppp