jon@CS.UCL.AC.UK.UUCP (05/28/87)
three questions 1. We've subnetted the UCL net a lot recently using cisco routers. does 4.3 adjust its mtu down when crossing a subnet router as well as when crossing a gateway? 2. has anyone had trouble with pyramids tcp going through routers? we observe tcp hangups and connection failures when attempting ftp/rcp bulk transfers from a Sun 3 to a pyramid 98x. Packet loss in cisco is about 1/3 of every large packet (sun sending 2-3 1000 byte packets bakc to back, pyramid advertising 8K window). 3. Has anyone got a distributed tool for invalidating the arp caches on a pile of 4.2 systems (for when we move a proxy arp router)? jon
hedrick@TOPAZ.RUTGERS.EDU (Charles Hedrick) (05/29/87)
4.3 should use the full MTU when going through a subnet gateway. There is a parameter SUBNETSARELOCAL in in.c that controls whether in_localaddr says that other subnets are local or not. This routine is called by tcp_mss, which is used to compute the MSS for a conversation. However we have seen some really odd code in some 4.3-derived versions of tcp_mss, so you may want to see that your particular kernels do the right thing. We know of no inherent problems with TCP through Cisco routers. If your problem is with Ethernet to Ethernet gateways, I have no explanation. There is a trivial bug in some versions of Cisco's serial line support that would cause packet loss in gateways that use serial lines to connect them. I suggest contacting Cisco, as a fix is available. To see whether this is problem, try SHOW INTERFACES and see whether you are seeing a huge number of giants. In general, Cisco has good enough monitoring facilities that by using various options of SHOW you should normally be able to see what is going on. One warning: NFS produces sequences of up to 6 packets that are spaced very close. This is unfriendly with any gateway. Some configurations of Cisco gateways simply can't handle this at all. You want to use the read and write buffer size parameters in mount (or /etc/fstab) to specify that writes should be no larger than 2 packets. We use 2048, but any number less than 2 * 1460 should probably work. Pyramid does not yet have these options. If you are using a Pyramid as a client across a gateway, please contact me and I'll give you the necessary patch. (Tell me whether you have source. I'm not sure how to give you a binary patch, but I'll try.) It is fine to use a Pyramid as a server across the gateway. These very closely spaced packets do not happen with TCP as far as I know. I assume you know about the arp program? You should rsh the appropriate arp command to invalidate the arp tables. Both Sun and Pyramid have this program.