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.