diff options
Diffstat (limited to 'share/doc/handbook/routing.sgml')
-rw-r--r-- | share/doc/handbook/routing.sgml | 279 |
1 files changed, 0 insertions, 279 deletions
diff --git a/share/doc/handbook/routing.sgml b/share/doc/handbook/routing.sgml deleted file mode 100644 index 4b20bf1..0000000 --- a/share/doc/handbook/routing.sgml +++ /dev/null @@ -1,279 +0,0 @@ -<!-- $Id$ --> -<!-- The FreeBSD Documentation Project --> -<!-- <!DOCTYPE linuxdoc PUBLIC '-//FreeBSD//DTD linuxdoc//EN'> --> - - <sect><heading>Gateways and routes<label id="routing"></heading> - - <p><em>Contributed by &a.gryphon;.<newline>6 October 1995.</em> - - For one machine to be able to find another, there must be a - mechanism in place to describe how to get from one to the - other. This is called Routing. A ``route'' is a defined - pair of addresses: a <bf>destination</bf> and a - <bf>gateway</bf>. The pair indicates that if you are - trying to get to this <em>destination</em>, send along - through this <em>gateway</em>. There are three types of - destinations: individual hosts, subnets, and ``default''. The - ``default route'' is used if none of the other routes - apply. We will talk a little bit more about default routes - later on. There are also three types of gateways: - individual hosts, interfaces (also called ``links''), and - ethernet hardware addresses. - - <sect1><heading>An example</heading> - - <p>To illustrate different aspects of routing, we will use - the following example which is the output of the command - <tt>netstat -r</tt>: - -<tscreen><verb> -Destination Gateway Flags Refs Use Netif Expire - -default outside-gw UGSc 37 418 ppp0 -localhost localhost UH 0 181 lo0 -test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77 -10.20.30.255 link#1 UHLW 1 2421 -foobar.com link#1 UC 0 0 -host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0 -host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 => -host2.foobar.com link#1 UC 0 0 -224 link#1 UC 0 0 -</verb></tscreen> - - The first two lines specify the default route (which we - will cover in the next section) and the <tt>localhost</tt> route. - - The interface (<tt>Netif</tt> column) that it specifies to use - for <tt>localhost</tt> is <tt>lo0</tt>, also known as the - loopback device. This says to keep all traffic for this - destination internal, rather than sending it out over the - LAN, since it will only end up back where it started - anyway. - - The next thing that stands out are the - ``<tt>0:e0:...</tt>'' addresses. These are ethernet - hardware addresses. FreeBSD will automatically identify any - hosts (<tt>test0</tt> in the example) on the local ethernet and - add a route for that host, directly to it over the ethernet - interface, <tt>ed0</tt>. There is also a timeout - (<tt>Expire</tt> column) associated with this type of route, - which is used if we fail to hear from the host in a - specific amount of time. In this case the route will be - automatically deleted. These hosts are identified using a - mechanism known as RIP (Routing Information Protocol), - which figures out routes to local hosts based upon a - shortest path determination. - - FreeBSD will also add subnet routes for the local subnet - (<tt>10.20.30.255</tt> is the broadcast address for the subnet - <tt>10.20.30</tt>, and <tt>foobar.com</tt> is the domain name - associated with that subnet). The designation <tt>link#1</tt> - refers to the first ethernet card in the machine. You will - notice no additional interface is specified for those. - - Both of these groups (local network hosts and local - subnets) have their routes automatically configured by a - daemon called <tt>routed</tt>. If this is not run, then only - routes which are statically defined (ie. entered - explicitly) will exist. - - The <tt>host1</tt> line refers to our host, which it knows by - ethernet address. Since we are the sending host, FreeBSD - knows to use the loopback interface (<tt>lo0</tt>) rather than - sending it out over the ethernet interface. - - The two <tt>host2</tt> lines are an example of what happens - when we use an ifconfig alias (see the section of ethernet - for reasons why we would do this). The <tt>=></tt> - symbol after the <tt>lo0</tt> interface says that not only are - we using the loopback (since this is address also refers to - the local host), but specifically it is an alias. Such - routes only show up on the host that supports the alias; - all other hosts on the local network will simply have a - <tt>link#1</tt> line for such. - - The final line (destination subnet <tt>224</tt>) deals with - MultiCasting, which will be covered in a another section. - - The other column that we should talk about are the - <tt>Flags</tt>. Each route has different attributes that are - described in the column. Below is a short table of some of - these flags and their meanings: - - <descrip> - - <tag/U/ <bf/Up:/ The route is active. - - <tag/H/ <bf/Host:/ The route destination is a single host. - - <tag/G/ <bf/Gateway:/ Send anything for this destination - on to this remote system, which will figure out from - there where to send it. - - <tag/S/ <bf/Static:/ This route was configured manually, - not automatically generated by the system. - - <tag/C/ <bf/Clone:/ Generates a new route based upon this - route for machines we connect to. This type of route is - normally used for local networks. - - <tag/W/ <bf/WasCloned/ Indicated a route that was - auto-configured based upon a local area network (Clone) - route. - - <tag/L/ <bf/Link:/ Route involves references to ethernet - hardware. - - </descrip> - - - <sect1><heading>Default routes</heading> - - <p>When the local system needs to make a connection to - remote host, it checks the routing table to determine if - a known path exists. If the remote host falls into a - subnet that we know how to reach (Cloned routes), then - the system checks to see if it can connect along that - interface. - - If all known paths fail, the system has one last option: - the <bf>default</bf> route. This route is a special type - of gateway route (usually the only one present in the - system), and is always marked with a ``<tt>c</tt>'' in - the flags field. For hosts on a local area network, this - gateway is set to whatever machine has a direct - connection to the outside world (whether via PPP link, or - your hardware device attached to a dedicated data line). - - If you are configuring the default route for a machine - which itself is functioning as the gateway to the outside - world, then the default route will be the gateway machine - at your Internet Service Provider's (ISP) site. - - Let us look at an example of default routes. This is a - common configuration: -<tscreen><verb> -[Local2] <--ether--> [Local1] <--PPP--> [ISP-Serv] <--ether--> [T1-GW] -</verb></tscreen> - - The hosts <tt>Local1</tt> and <tt>Local2</tt> are at your - site, with the formed being your PPP connection to your - ISP's Terminal Server. Your ISP has a local network at - their site, which has, among other things, the server - where you connect and a hardware device (T1-GW) attached - to the ISP's Internet feed. - - The default routes for each of your machines will be: - -<tscreen><verb> -host default gateway interface ----- --------------- --------- -Local2 Local1 ethernet -Local1 T1-GW PPP -</verb></tscreen> - - A common question is ``Why (or how) would we set the - T1-GW to be the default gateway for Local1, rather than - the ISP server it is connected to?''. - - Remember, since the PPP interface is using an address on - the ISP's local network for your side of the connection, - routes for any other machines on the ISP's local network - will be automatically generated. Hence, you will already - know how to reach the T1-GW machine, so there is no need - for the intermediate step of sending traffic to the ISP - server. - - As a final note, it is common to use the address ``<tt>...1</tt>'' - as the gateway address for your local network. So (using - the same example), if your local class-C address space - was <tt>10.20.30</tt> and your ISP was using <tt>10.9.9</tt> then the - default routes would be: - -<tscreen><verb> -Local2 (10.20.30.2) --> Local1 (10.20.30.1) -Local1 (10.20.30.1, 10.9.9.30) --> T1-GW (10.9.9.1) -</verb></tscreen> - - <sect1><heading>Dual homed hosts</heading> - - <p>There is one other type of configuration that we should - cover, and that is a host that sits on two different - networks. Technically, any machine functioning as a - gateway (in the example above, using a PPP connection) - counts as a dual-homed host. But the term is really only - used to refer to a machine that sits on two local-area - networks. - - In one case, the machine as two ethernet cards, each - having an address on the separate subnets. Alternately, - the machine may only have one ethernet card, and be using - ifconfig aliasing. The former is used if two physically - separate ethernet networks are in use, the latter if - there is one physical network segment, but two logically - separate subnets. - - Either way, routing tables are set up so that each subnet - knows that this machine is the defined gateway (inbound - route) to the other subnet. This configuration, with the - machine acting as a Bridge between the two subnets, is - often used when we need to implement packet filtering or - firewall security in either or both directions. - - <sect1><heading>Routing propagation</heading> - - <p>We have already talked about how we define our routes to - the outside world, but not about how the outside world - finds us. - - We already know that routing tables can be set up so that - all traffic for a particular address space (in our - examples, a class-C subnet) can be sent to a particular - host on that network, which will forward the packets - inbound. - - When you get an address space assigned to your site, your - service provider will set up their routing tables so that - all traffic for your subnet will be sent down your PPP - link to your site. But how do sites across the country - know to send to your ISP? - - There is a system (much like the distributed DNS - information) that keeps track of all assigned - address-spaces, and defines their point of connection to - the Internet Backbone. The ``Backbone'' are the main - trunk lines that carry Internet traffic across the - country, and around the world. Each backbone machine has - a copy of a master set of tables, which direct traffic - for a particular network to a specific backbone carrier, - and from there down the chain of service providers until - it reaches your network. - - It is the task of your service provider to advertise to - the backbone sites that they are the point of connection - (and thus the path inward) for your site. This is known - as route propagation. - -<!-- - <sect1><heading>Multicast Routing</heading> ---> - - <sect1><heading>Troubleshooting</heading> - - <p>Sometimes, there is a problem with routing propagation, - and some sites are unable to connect to you. Perhaps the - most useful command for trying to figure out where a - routing is breaking down is the <tt>traceroute(8)</tt> - command. It is equally useful if you cannot seem to make - a connection to a remote machine (ie. <tt>ping(8)</tt> - fails). - - The <tt>traceroute(8)</tt> command is run with the name - of the remote host you are trying to connect to. It will - show the gateway hosts along the path of the attempt, - eventually either reaching the target host, or - terminating because of a lack of connection. - - For more information, see the manual page for - <tt>traceroute(8)</tt>. - |