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 knownrvs@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.