[comp.sys.proteon] using p4200 as x.25 DDN gateway

dorosz@GW1.HANSCOM.AF.MIL ("DAVID DOROSZ") (09/10/90)

I recently purchased an x.25 interface for a p4200 to allow the router to
serve as a DDN gateway. I decided to share my experiences, so that others
planning on using the x.25 interface can benefit from them.  I don't
have a good knowledge of the DDN PSN or the X.25 protocol in general
( I'm reading up on this now) so I'm looking for helpful suggestions 
from anyone who has a p4200 x.25 interface operating on DDN or has
some knowledge of the DDN PSN and it's x.25 parameters.   This report
is quite long, so if you are not interested in the P4200 x.25 interface,
now is a good time to use the DELETE key.

What follows is in no way meant to knock the p4200, or Proteon.  On the 
whole, the P4200 is a great product, and I can't say enough good things 
about Proteon's support.  Dan Jones and the several other Proteon support 
personnel have been very helpful and have always been willing to provide 
whatever assistance I required.  Being that this was my first P4200 
installation, I relied on Proteon's support staff heavily and found them 
to be very helpful.

First, I had several problems getting X.25 running, the X.25 documentation 
is OK as far as it goes but it leaves a lot to the imagination.  The meaning 
of several of the x.25 parameters is not explained in sufficent detail to 
provide much help at setting them to anything other than the default values.  
After several experiments, and several hours over the phone with the Proteon 
support staff, it was finally determined the IP address of the router's x.25 
interface should be the same as the PSN port address.   Initially it was 
thought that the x.25 interface should have a class B address corresponding 
to the subnet.  Attempts to use 129.53.80.102 as the x.25 interface on the 
router for our 129.53 subnet as a connection to MILNET PSN 26.8.0.66,
would not work.

I also discovered that throughput negotiation doesn't work with all 
MILNET hosts.  If throughput negotiation is set, connections to hosts 
which do not support it will timeout.  I'm still trying to figure out 
why this is so.   Since I can't be sure which  MILNET hosts support timeout 
and which do not, this feature is useless at present.  I am still attempting 
to get throughput negotiation to work by experimenting with various packet 
and window sizes.  According to the support staff at the DDN Network
Ops center, using throughput negotiation should not affect host connections.
With throughput enabled, the P4200 should be able to connect to hosts which 
don't support it by simply using the default setting for packet and window size.

I also found that to directly connect to a remote MILNET host,
it's  IP address must be mapped to its x.25 address in the router's
x.25 address table.  This wouldn't be bad if it wasn't for the fact
that the IP address for every remote host you wish to connect to
must be MANUALLY entered into SRAM, fortunately the x.25 software
computes the x.25 address for each IP address on its own.   Since 
it is impossible to know which MILNET hosts will send incoming
packets to our net, this problem was a serious limitation.  I did at 
one point experiment by entering 150 or so IP addresses into the x.25 
translation table only to find that the SRAM would not hold them all.  
Attempts to add more caused an "error writing static RAM" message.  
This limitation also means running EGP on the router is impossible, 
since 26. gateway hosts appear in the routing table for which 
no x.25 address translation exists.  When a user attempts to use one 
of these routes, it results in a "no route to host" error message. 

I did find a less than ideal solution for this.  I realized that 
MILNET hosts addresses don't exceed 26.31.x.x, (PSNs don't typically use
more than 31 ports) so I assigned routes to 26.1.0.0, 26.2.0.0. .... thru 
26.31.0.0 using a MILNET core gateway as a gateway for the 26 addresses.  
This allowed me to narrow down the x.25 address translations to a small 
subnet of hosts I decided to use as gateways.   To allow direct connections 
to remote hosts we use frequently, I assiged each of these hosts a route to 
itself and entered a x.25 translation for these hosts  ie: 

route  add 26.7.0.26 255.255.255.255 26.7.0.26

forces the router to route to 26.7.0.26 directly using the x.25 translation
table rather than use the 26.7.0.0 route setup to the core gateway for 
26.7.x.x hosts.  This works, but some remote connections are slow due to 
the extra hop thru the core gateway, and EGP is still not workable.

Proteon correctly claims that there is no standard for IP address to x.25
address translation, nor does the DDN x.25 standard require it.
However, our VAX DDN gateway using an ACC 6250 x.25 interface and 
Wollongong TCP/IP software does not require X.25 addresses to be
entered manually. 

The most serious problem with the P4200's x.25 interface has been it's
inability to handle heavy traffic.  Our P200 DDN gateway has one x.25 
interface to the DDN PSN, one Ethernet interface to our base Ethernet
129.53.1.x and another Ethernet card to a laboratory net 129.53.100.x.
the 129.53.1 net has 4 VAX 8650s which have a fairly heavy DDN e-mail  
traffic (ave 2700 K packets/month).  The 129.53.1 interface also supports
several other 129.53 subnets, which I assigned as separate addresses 
on the 129.53.1 Ethernet interface.

When the X.25 interface gets heavily loaded with DDN traffic, connections 
to both the x.25  interface and the 2 Ethernet interfaces start to timeout.  
The only remedy for this is to restart the router to reset the CPU.  
Diverting some of the p4200's DDN traffic to our other DDN gateway 
(a VAX 8650) via the 129.53.1 Ethernet interface seems to solve this 
problem.  So it appears that the X.25 interface either has too small 
a buffer to handle large amounts of traffic, or the throughput is 
not adequate.  This causes problems with the router's CPU, just what, 
I'm not sure.  Perhaps the stack the getting overwritten, so that all 
the interfaces are unable to pass traffic.

In summary, the P4200 X.25 interface does work with a DDN PSN, but 
it does not function well enough to provide the type of service one 
would expect from a DDN gateway on a heavily used network.

I'm willing to concede that the problems may be user induced, as the 
router may be setup wrong or our PSN port settings may need to be 
modified.  If someone has a p4200 or any other type of router running 
as an X.25 DDN gateway and has seen and solved these problems I'd really 
like to hear from you. 


DAVE DOROSZ
Hanscom AFB
(617) 377-7517
MILNET:  DOROSZ@gw1.hanscom.af.mil

_________________________________________________________________________
The present router configuration is shown below:


Gateway user configuration

X.25 User Configuration

X.25 Configuration Summary

Node Address:   00000066080000

Max Calls Out:  4		Max retries:  4
Default Window: 5		SVC idle:     15 seconds
National Personality: DOD Defense Data Network (DTE)
PVC     	low: 
0	high: 0
Inbound 	low: 0	high: 0
Two-Way 	low: 1	high: 255
Outbound	low: 0	high: 0
Throughput Class in bps	Inbound:  19200
Throughput Class in bps	Outbound: 19200

X.25 National Personality Configuration
Follow CCITT: on	OSI 1984:     on	OSI 1988:       off
Clear w/diag: on	Reset w/diag: on	Restart w/diag: on
Request Reverse Charges:  off	Accept Reverse Charges:     off
Allow Packet Restarts:    on	Suppress Calling Addresses: off
Suppress Cause Fields:    off	Suppress Frame Idle RRs:    off
Frame Extended seq mode:  
off	Packet Extended seq mode:   off
Use Multi-link Addresses: off	Disable Interface Resets:   off
Incoming Calls Barred:    off	Outgoing Calls Barred:      off
Throughput Negotiation:   off	Flow Control Negotiation:   on
Call Request Timer:     20 decaseconds
Clear Request Timer:    18 decaseconds (1 retries)
Reset Request Timer:    18 decaseconds (1 retries)
Restart Request Timer:  18 decaseconds (1 retries)
T1 Timer: 3 seconds	N2 timeouts: 20
T2 Timer: 1 seconds	DP Timer:    500 milliseconds
Standard Version:     1984	Network Type: DDN
Disconnect Procedure: passive

Window Size	Frame:   5	Packet:  5
Packet Size	Default: 256	Maximum: 1024

X.25 protocol configuration

Prot		Window		Packet-size		Idle
Number		Size		Default Maximum		Time
 0		5		256	1024		15

X.25 PVC configuration

No PVCs defined

X.25 address translation configuration

IF #	Prot #	Protocol -> X.25 address
 3	 0	26.8.0.66 -> 00000066080000
 3	 0	26.9.0.40 -> 00000040090000
 3	 0	26.20.0.16 -> 00000016200000
 3	 0	26.14.0.66 -> 00000066140000
 3	 0	26.6.0.66 -> 00000066060000
 3	 0	26.15.0.66 -> 00000066150000
 3	 0	26.0.0.66 -> 00000066000000
 3	 0	26.7.0.26 -> 00000026070000
 3	 0	26.17.0.45 -> 00000045170000
 3	 0	26.2.0.67 -> 00000067020000
 3	 0	26.31.0.73 -> 00000073310000
 3	 0	26.20.0.17 -> 00000017200000
 3	 0	26.3.0.103 -> 00000103030000
 3	 0	26.20.0.72 -> 00000072200000
 3	 0	26.21.0.104 -> 00000104210000
 3	 0	26.6.0.103 -> 00000103060000
 3	 0	26.20.0.34 -> 00000034200000
 3	 0	26.30.0.101 -> 00000101300000
 3	 0	26.12.0.66 -> 00000066120000
 3	 0	26.3.0.66 -> 00000066030000
 3	 0	26.13.0.66 -> 00000066130000
 3	 0	26.12.0.124 -> 00000124120000


Internet protocol user configuration

Interface addresses
IP addresses for each interface:

intf 
 0                                     IP disabled on this interface

intf  1   129.53.1.102     255.255.255.0    Network broadcast,    fill 1  
          129.53.2.102     255.255.255.0    Network broadcast,    fill 1  
          129.53.3.102     255.255.255.0    Network broadcast,    fill 1
          129.53.4.102     255.255.255.0    Network broadcast,    fill 1    
          129.53.5.102     255.255.255.0    Network broadcast,    fill 1  
          129.53.6.102     255.255.255.0    Network broadcast,    fill 1  
          129.53.7.102     255.255.255.0    Network broadcast,    fill 1
          129.53.16.102    255.255.255.0    Network broadcast,    fill 1 
    
intf  2   129.53.100.102   255.255.255.0    Network broadcast,    fill 1    
intf  3   26.8.0.66        255.0.0.0        Network broadcast,    fill 0    

Routing

route to 0.0.0.0,0.0.0.0 via 26.20.0.17, 2 hops
route to 129.238.0.0,255.255.0.0 via 129.53.100.200, 2 hops
route to 26.0.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.1.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.3.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.6.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.6.0.66,255.255.255.255 via 26.6.0.66, 1 hops
route to 26.6.0.103,255.255.255.255 via 26.6.0.103, 1 hops
route to 26.8.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.8.0.66,255.255.255.255 via 26.8.0.66, 0 hops
route to 26.9.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.10.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.11.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.12.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.13.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.14.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.15.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.16.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.17.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.18.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.19.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.21.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.21.0.104,255.255.255.255 via 26.21.0.104, 1 hops
route to 26.22.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.14.0.66,255.255.255.255 via 26.14.0.66, 0 hops
route to 26.9.0.40,255.255.255.255 via 129.53.1.101, 1 hops
route to 26.13.0.66,255.255.255.255 via 26.13.0.66, 1 hops
route to 26.31.0.73,255.255.255.255 via 26.31.0.73, 1 hops
route to 26.3.0.66,255.255.255.255 via 26.3.0.66, 1 hops
route to 26.7.0.26,255.255.255.255 via 26.7.0.26, 1 hops
route to 26.15.0.66,255.255.255.255 via 26.15.0.66, 1 hops
route to 26.0.0.66,255.255.255.255 via 26.0.0.66, 1 hops
route to 26.17.0.45,255.255.255.255 via 26.17.0.45, 1 hops
route to 26.2.0.67,255.255.255.255 via 26.2.0.67, 1 hops
route to 26.23.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.24.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.25.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.26.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.27.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.28.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.29.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.30.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.31.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.30.0.101,255.255.255.255 via 26.30.0.101, 1 hops
route to 26.2.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.4.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.5.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 26.7.0.0,255.255.255.0 via 26.20.0.17, 2 hops
route to 129.83.0.0,255.255.0.0 via 26.3.0.66, 2 hops
route to 192.67.67.20,255.255.0.0 via 26.31.0.73, 2 hops
route to 26.12.0.124,255.255.255.255 via 26.12.0.124, 0 hops
route to 26.5.0.48,255.255.255.255 via 129.53.100.200, 2 hops
route to 26.29.0.48,255.255.255.255 via 129.53.100.200, 2 hops
route to 26.2.0.48,255.255.255.255 via 129.53.100.200, 2 hops
route to 26.20.0.17,255.255.255.255 via 26.20.0.17, 0 hops
route to 192.82.105.0,255.255.255.0 via 26.20.0.16, 2 hops
route to 26.20.0.16,255.255.255.255 via 26.20.0.16, 0 hops
route to 26.20.0.72,255.255.255.255 via 26.20.0.72, 0 hops
route to 26.20.0.0,255.255.255.0 via 26.20.0.17, 2 hops

Protocols

ARP Subnet routing: enabled
OSPF: disabled
RIP: enabled
  Originate default off
  Per-interface address flags:
     intf  0                    IP & RIP are disabled on this interface
     intf  1   129.53.1.102     Send net and subnet routes
                                Override static routes
               129.53.2.102     Send net and subnet routes
               129.53.3.102     Send net and subnet routes
               129.53.4.102     Send net and subnet routes
               129.53.5.102     Send net and subnet routes
               129.53.6.102     Send net and subnet routes
               129.53.7.102     Send net and subnet routes
               129.53.16.102    Send net and subnet routes
     intf  2   129.53.100.102   Send net and subnet routes
     intf  3   26.8.0.66        RIP disabled for this interface

Accept RIP updates always for:
[NONE]

EGP: disabled


Routing table dump

Type   Dest net         Mask     Cost Age  Next hop(s)    
Stat* 0.0.0.0          00000000  2    0    26.20.0.17      
RIP   129.53.0.0       FFFF0000  2    10   129.53.1.101    
Dir*  129.53.1.0       FFFFFF00  1    0    Eth/0           
Dir*  129.53.2.0       FFFFFF00  1    0    Eth/0           
Dir*  129.53.3.0       FFFFFF00  1    0    Eth/0           
Dir*  129.53.4.0       FFFFFF00  1    0    Eth/0           
Dir*  129.53.5.0       FFFFFF00  1    0    Eth/0           
Dir*  129.53.6.0       FFFFFF00  1    0    Eth/0           
Dir*  129.53.7.0       FFFFFF00  1    0    Eth/0           
Dir*  129.53.16.0      FFFFFF00  1    0    Eth/0           
Dir*  26.0.0.0         FF000000  1    0    X25/0           
Stat*  26.9.0.40        FFFFFFFF  1    0    129.53.1.101    
Dir*  129.53.100.0     FFFFFF00  1    0    Eth/1           
Stat*  129.238.0.0      FFFF0000  2    0    129.53.100.200  
Stat*  26.5.0.48        FFFFFFFF  2    0    129.53.100.200  
Stat*  26.29.0.48       FFFFFFFF  2    0    129.53.100.200  
Stat*  26.2.0.48        FFFFFFFF  2    0    129.53.100.200  
RIP    129.53.128.0     FFFFFF00  2    30   129.53.100.125  
Stat*  192.82.105.0     FFFFFF00  2    0    26.20.0.16      
Stat*  129.83.0.0       FFFF0000  2    0    26.3.0.66       
Stat*  26.0.0.0         FFFFFF00  2    0    26.20.0.17      
Stat*  26.1.0.0         FFFFFF00  2    0    26.20.0.17      
Stat*  26.3.0.0         FFFFFF00  2    0    26.20.0.17      
Stat*  26.6.0.0         FFFFFF00  2    0    26.20.0.17      
Stat*  26.6.0.66        FFFFFFFF  1    0    26.6.0.66    
Stat*  26.6.0.103       FFFFFFFF  1    0    26.6.0.103      
Stat*  26.8.0.0         FFFFFF00  2    0    26.20.0.17      
Stat*  26.8.0.66        FFFFFFFF  0    0    26.8.0.66       
Stat*  26.9.0.0         FFFFFF00  2    0    26.20.0.17      
Stat*  26.10.0.0        FFFFFF00  2    0    26.20.0.17      
Stat*  26.11.0.0        FFFFFF00  2    0    26.20.0.17      
Stat*  26.12.0.0        FFFFFF00  2    0    26.20.0.17      
Stat*  26.13.0.0        FFFFFF00  2    0    26.20.0.17
Stat*  26.14.0.0        FFFFFF00  2    0    26.20.0.17      
Stat*  26.15.0.0        FFFFFF00  2    0    26.20.0.17      
Stat*  26.16.0.0        FFFFFF00  2    0    26.20.0.17      
Stat*  26.17.0.0        FFFFFF00  2    0    26.20.0.17      
Stat*  26.18.0.0        FFFFFF00  2    0    26.20.0.17      
Stat*  26.19.0.0        FFFFFF00  2    0    26.20.0.17      
Stat*  26.21.0.0        FFFFFF00  2    0    26.20.0.17      
Stat*  26.21.0.104      FFFFFFFF  1    0    26.21.0.104     
Stat*  26.22.0.0        FFFFFF00  2    0    26.20.0.17      
Stat*  26.14.0.66       FFFFFFFF  0    0    26.14.0.66      
Stat*  26.13.0.66       FFFFFFFF  1    0    26.13.0.66      
Stat*  26.31.0.73       FFFFFFFF  1    0    26.31.0.73      
Stat*  26.3.0.66        FFFFFFFF  1    0    26.3.0.66       
Stat*  26.7.0.26        FFFFFFFF  1    0    26.7.0.26       
Stat*  26.15.0.66       FFFFFFFF  1    0    26.15.0.66      
Stat*  26.0.0.66        FFFFFFFF  1    0    26.0.0.66       
Stat*  26.17.0.45       FFFFFFFF  1    0    26.17.0.45      
Stat*  26.2.0.67        FFFFFFFF  1    0    26.2.0.67       
Stat*  26.23.0.0        FFFFFF00  2    0    26.20.0.17      
Stat*  26.24.0.0        FFFFFF00  2    0    26.20.0.17      
Stat*  26.25.0.0        FFFFFF00  2    0    26.20.0.17      
Stat*  26.26.0.0        FFFFFF00  2    0    26.20.0.17      
Stat*  26.27.0.0        FFFFFF00  2    0    26.20.0.17      
Stat*  26.28.0.0        FFFFFF00  2    0    26.20.0.17      
Stat*  26.29.0.0        FFFFFF00  2    0    26.20.0.17      
Stat*  26.30.0.0        FFFFFF00  2    0    26.20.0.17      
Stat*  26.31.0.0        FFFFFF00  2    0    26.20.0.17      
Stat*  26.30.0.101      FFFFFFFF  1    0    26.30.0.101     
Stat*  26.2.0.0         FFFFFF00  2    0    26.20.0.17      
Stat*  26.4.0.0         FFFFFF00  2    0    26.20.0.17      
Stat*  26.5.0.0         FFFFFF00  2    0    26.20.0.17      
Stat*  26.7.0.0         FFFFFF00  2    0    26.20.0.17      
Stat*  26.12.0.124      FFFFFFFF  0    0    26.12.0.124   
Stat*  26.20.0.17       FFFFFFFF  0    0    26.20.0.17      
Stat*  26.20.0.16       FFFFFFFF  0    0    26.20.0.16      
Stat*  26.20.0.72       FFFFFFFF  0    0    26.20.0.72      
Stat*  26.20.0.0        FFFFFF00  2    0    26.20.0.17      

Default gateway in use.
Type Cost Age  Next hop
Stat 2    0    26.20.0.17      

Routing table size: 2000 nets (96000 bytes), 70 nets known

rvs@proteon.com (Ray V. Samora) (09/11/90)

David,

After looking at your configuration, I can offer a few tips to help
improve throughput.

You should increase the frame layer window size from 5 to 7, 7 is the
default setting for mod8 and will help increase the number of frame
layer frames in transit prior to needing end-to-end acknowledgement.
Also, I noticed the packet window size is set to 5, some nets
(Telenet) require a setting of 2.  If 5 is ok with the psn, try for 7,
this will also help throughput.

The default packet size setting at 256 is ok, however the larger the
better, say 512.  Larger settings cut down on the need for
segmentation and reassembly which are costly.  The maximum packet size
setting is also too high is the negotiated packet size steps down to
256, this leads to a lot of buffer waste that can't be used.

You have flow control negotiation turned on, this is good if the
remote DTEs support this, otherwise hand tailored configuration that
is acceptable for both ends is called for.  Also, the default window
should be set <= packet window size for optimal negotiation.

The max calls out setting (default at 4) can be increased which will
yield more circuits in the event things are backing up.  In addition,
what is the interface data rate (modem) set at, try to get that
increased if you can.  Also, the circuit idle time is set to 15
seconds, circuits with bursty traffic will benifit with a higher value
to avoid the need to restablish circuits to the same destinations.