sater@cs.vu.nl (Staveren van Hans) (07/03/90)
Recently I posted a question to these groups to which, to my surprise, I received no reactions at all. This seems strange since it addresses a problem that many of us are going to face. Now there is of course the possibility that this is so obvious that you were all embarrassed by the question, but I doubt it. Suppose part of a network looks like this --------------------------------------------------------- network A | | | ----------------- ----------------- ---------- | A.1 | | A.2 | | A.3 | | Host foo | | Host bar | |Host zot| | B.6 | | B.7 | | | ----------------- ----------------- ---------- | | --------------------------------------------------------- network B so two parallel networks with some multihomed and some singlehomed hosts. Further suppose that network B is preferable to network A, because of load, politics or because it is 10x as fast (hint: FDDI vs Ethernet). How would one set up addressing and routing for such a configuration? Using the DNS address lookup you get two addresses for each machine, but most software doesn't understand that currently and only uses the first one. Now the documentation suggests that you can order the addresses so that certain preferred networks come in front, but looking at our bind source code shows that that is not implemented. So host foo looks up host bar, and gets the address set (A.2, B.7). Both addresses are on directly connected networks. How do you make sure that either it uses B.7, or it uses A.2 but still routes it over network B. Ideally this should be done by the routing layer of course, but current routing software will probably send a packet for A.2 onto network A, unless a host route for A.2 points to B.7. You can of course set up all these routes by hand, but if the network size increases this gets to be too much trouble. You could imagine that host bar propagates a host route for A.2 on network B, and all hosts are persuaded that network A is expensive by messing around with metrics, but that would lead to a proliferation of host routes floating around the network, and maybe even propagating to the rest of the Internet, which would be extremely undesirable. How do people solve this? Do people actually have situations like this already? Inquiring minds want to know. Hans van Staveren Vrije Universiteit Amsterdam, Holland
mrc@Tomobiki-Cho.CAC.Washington.EDU (Mark Crispin) (07/04/90)
In article <7050@star.cs.vu.nl> sater@cs.vu.nl (Staveren van Hans) writes: >Suppose part of a network looks like this > > --------------------------------------------------------- network A > | | | > ----------------- ----------------- ---------- > | A.1 | | A.2 | | A.3 | > | Host foo | | Host bar | |Host zot| > | B.6 | | B.7 | | | > ----------------- ----------------- ---------- > | | > --------------------------------------------------------- network B > >so two parallel networks with some multihomed and some singlehomed hosts. >Further suppose that network B is preferable to network A, because of >load, politics or because it is 10x as fast (hint: FDDI vs Ethernet). >How would one set up addressing and routing for such a configuration? TOPS-20 had a concept (which I invented) called "preferred IP address" and "preferred network" which answered this question. There was, from the beginning, a "default IP address" which was used in IP datagrams where it was not obvious which local address of a multi-homed host was best to use as the source IP address. The problem was that very often network A would be a lower-speed backbone and network B a higher-speed stub network. The default mechanism would ensure that host foo would use its A.1 address in talking to host zot and host zowie on a network C (since the only way to reach the B.6 address from outside of network B would be to go through an A->B gateway, so you might as well use the A.1 address and save a hop). In talking to host bink which only had a B.8 address, host foo would use its B.6 address. The problem was which address to use for bar. Hence the "preferred" address and network, which would take precedence in any choice between a "preferred" and any other (including the default) address. Foo and bar would make network A be "default" and network B be "preferred." I'm surprised Unix hasn't picked up on this yet. _____ | ____ ___|___ /__ Mark Crispin, 206 842-2385, R90/6 pilot, DoD#0105 _|_|_ -|- || __|__ / / 6158 Lariat Loop NE "Gaijin! Gaijin!" |_|_|_| |\-++- |===| / / Bainbridge Island, WA "Gaijin ha doko ka?" --|-- /| |||| |___| /\ USA 98110-2098 "Niichan ha gaijin." /|\ | |/\| _______ / \ "Chigau. Gaijin ja nai. Omae ha gaijin darou" / | \ | |__| / \ / \"Iie, boku ha nihonjin." "Souka. Yappari gaijin!" Hee, dakedo UNIX nanka wo tsukatte, umaku ikanaku temo shiranai yo.
hedrick@athos.rutgers.edu (Charles Hedrick) (07/04/90)
You haven't gotten an answer because there's no good answer. It depends upon the routing and domain technology that you use, and even then solutions tend to be kludges rather than general solutions. We prefer to keep all routing knowledge in our routers, so generally hosts do not run routing protocols. Our routers do proxy ARP, so we normally use default routes with a zero metric, i.e. route add default `hostname` 0 This causes all destinations to be treated as if they were on the local Ethernet. With more than one Ethernet address, I normally set things up to use the default on the "preferred" Ethernet, and hardwire routes for the specific subnets that I want on the other Ethernet. Typically it's just the connected subnet, which of course happens automatically. The problem with this is that you don't automatically change to take advantage of the secondary network if the primary one is down. However Ethernets so seldom go down that this isn't a concern for me. In general the Internet has not solved the problem of how hosts find routers, particularly with multiple Ethernets. There are lots of solutions known in principle, but the commonly used TCP/IP implementations don't have the right features to use the known solutions. 4.3 is a lot better than 4.2, but still doesn't really supply all the necessary features. The IETF hasn't helped, by failing to specify a gateway-finding mechanism, such as the proposed "ICMP wheres-my-gateway".
vjs@rhyolite.wpd.sgi.com (Vernon Schryver) (07/05/90)
In article <7050@star.cs.vu.nl>, sater@cs.vu.nl (Staveren van Hans) writes: > Recently I posted a question ... > Further suppose that network B is preferable to network A, because of > load, politics or because it is 10x as fast (hint: FDDI vs Ethernet). > How would one set up addressing and routing for such a configuration? > ... > Hans van Staveren > Vrije Universiteit > Amsterdam, Holland This problem exists within FDDI itself. FDDI is a dual ring of two 100Mbit counter rotating rings. 100Mbit/sec is only 10 times faster than 10MHz ethernet, and so is not considered "fast" by some of us. Notice that workstations today are 100 times faster than in the early 1980's when 10MHz ethernet became popular (i.e. 0.25-1.0 VUPS then and 5 to 200 VUPS now) (1 VUPS=1 "MIPS"=1 VAX 11/780). The birthday paradox ensures that either an FDDI ring will almost never be "wrapped" or it will be partitioned too much of the time. This means that dual attached, dual-MAC stations could at least in principle push more bytes than single-MAC stations. Unfortunately, the only currently publically demonstrated and known scheme for using both rings involves using two IP networks, one for each ring. This works, but is at best a clunky kludge. In the absense of some smarter routing, applications must somehow split their traffic between two IP hostnumbers. There are applications for which this is not a hardship, but it is in general far from satisfying. Proposals for combining both rings into a single IP network have been made, but to the best of my knowledge, there is no such single-IP network proposal that has had all of the holes, gotchas, and boundary cases covered. The single-network proposals involve varying but substantial amounts of complexity in the link layers, including extensions to ARP. As far as I know, the current draft standards (ie. IETF) suggest using a dual-IP-network until a single-IP-network scheme is completed and accepted. It would be really swell if someone could solve the FDDI-ethernet load balancing problem that at least two people have mentioned in recent months in this forum. It would make the trivial to implement dual-IP-network solution for FDDI tolerable, eliminating the need for the complicated ARP and other link layer extensions needed for the single-IP-network ideas. Vernon Schryver Silicon Graphics vjs@sgi.com
jcohn@NOTE2.NSF.GOV (Jonathan Charles Cohn) (07/05/90)
OSPF does have some of the features required to put higher priority on certain networks. However, I do not know how it interfaces with hosts that are not multihomed. Jonathan Cohn
kwe@bu-it.bu.edu (Kent England) (07/16/90)
In article <7050@star.cs.vu.nl>, sater@cs.vu.nl (Staveren van Hans) writes: > Recently I posted a question to these groups to which, to my surprise, > I received no reactions at all. This seems strange since it addresses a > problem that many of us are going to face. Now there is of course the > possibility that this is so obvious that you were all embarrassed by > the question, but I doubt it. > > Suppose part of a network looks like this > > --------------------------------------------------------- network A > | | | > ----------------- ----------------- ---------- > | A.1 | | A.2 | | A.3 | > | Host foo | | Host bar | |Host zot| > | B.6 | | B.7 | | | > ----------------- ----------------- ---------- > | | > --------------------------------------------------------- network B > > so two parallel networks with some multihomed and some singlehomed hosts. > Further suppose that network B is preferable to network A, because of > load, politics or because it is 10x as fast (hint: FDDI vs Ethernet). > How would one set up addressing and routing for such a configuration? > What is the Internet Protocol supposed to do? In the TCP/IP frame of reference, IP was designed to route internet datagrams from source address to destination address. IP understands interfaces. But applications understand hosts/servers/service-entities. How does one tie an "entity" to a "set of addresses" as one moves down the protocol stack? How does one deal with so-called multi-homed hosts? The answer is, IP does not deal with the issue. Should it? Good philosophical question... and can of worms. Let us assume that IP should not deal with entities, only interfaces (addresses). Can the applications (or some other level in the stack) deal with the translation of entity name to "ordered set of addresses"? I think they can. I would suggest that the place to attack this problem is in the resolver. I recall discussions in times past about whether the name servers should be able to do this based on source address, but it seemed to me at that time that that was impossible for the name servers to do, since the source entity could be multi-homed. The resolver will need to be able to get some kind of routing or preference metric from the network layer. Many options. I would also suggest that there are many places in the protocol stack where a domain name would work better than an ip- address. Of course, machines may have many names, but at least we have the concept of canonical name. We also have the concept of multicast (implying groups of servers that are in some sense equivalent). So we are torn in search of the correct paradigm and are tied to others' past decisions in the history of TCP/IP. More grist for the philosophers... --Kent