home *** CD-ROM | disk | FTP | other *** search
/ Freelog Special Edition 1: Linux / CD1.iso / doc / HOWTO / mini / IP-Subnetworking < prev    next >
Text File  |  1998-10-14  |  24KB  |  557 lines

  1.   IP Sub-Networking Mini-Howto
  2.   Robert Hart, hartr@interweft.com.au
  3.   v1.0, 31 March 1997
  4.  
  5.   This document describes why and how to subnetwork an IP network - that
  6.   is using a single A, B or C Class network number to function correctly
  7.   on several interconnected networks.
  8.  
  9.   1.  Copyright
  10.  
  11.   This document is distributed under the terms of the GNU Public License
  12.   (GPL).
  13.  
  14.   This document is directly supported by InterWeft IT Consultants
  15.   (Melbourne, Australia).
  16.  
  17.   The latest version of this document is available at the InterWeft WWW
  18.   site at InterWeft IT Consultants <http://www.interweft.com.au/> and
  19.   from The Linux Documentation Project <http://sunsite.unc.edu/LDP>.
  20.  
  21.   2.  Introduction
  22.  
  23.   With available IP network numbers rapidly becoming an endangered
  24.   species, efficient use of this increasingly scarce resource is
  25.   important.
  26.  
  27.   This document describes how to split a single IP network number up so
  28.   that it can be used on several different networks.
  29.  
  30.   This document concentrates on C Class IP network numbers - but the
  31.   principles apply to A and B class networks as well.
  32.  
  33.   2.1.  Other sources of information
  34.  
  35.   There are a number of other sources of information that are of
  36.   relevance for both detailed and background information on IP numbers.
  37.   Those recommended by the author are:-
  38.  
  39.   ╖  The Linux Network Administrators Guide
  40.      <http://sunsite.unc.edu/LDP/LDP/nag/nag.html>.
  41.  
  42.   ╖  The Linux System Administration Guide
  43.      <http://linuxwww.db.erau.edu/SAG/>.
  44.  
  45.   ╖  TCP/IP Network Administration by Craig Hunt, published by O'Reilly
  46.      and Associates <http://www.ora.com/catalog/tcp/noframes.html>.
  47.  
  48.   3.  The Anatomy of IP numbers
  49.  
  50.   Before diving into the delight of sub-networking, we need to establish
  51.   some IP number basics.
  52.  
  53.   3.1.  IP numbers belong to Interfaces - NOT hosts!
  54.  
  55.   First of all, let's clear up a basic cause of misunderstanding - IP
  56.   numbers are not assigned to hosts. IP numbers are assigned to network
  57.   interfaces on hosts.
  58.   Eh - what's that?
  59.  
  60.   Whilst many (if not most) computers on an IP network will possess a
  61.   single network interface (and have a single IP number as a
  62.   consequence), this is not the only way things happen. Computers and
  63.   other devices can have several (if not many) network interfaces - and
  64.   each interface has its own IP number.
  65.  
  66.   So a device with 6 active interfaces (such as a router) will have 6 IP
  67.   numbers - one for each interface to each network to which it is
  68.   connected. The reason for this becomes clear when we look at an IP
  69.   network!
  70.  
  71.   Despite this, most people refer to host addresses when referring to an
  72.   IP number. Just remember, this is simply shorthand for the IP number
  73.   of this particular interface on this host. Many (if not the majority)
  74.   of devices on the Internet have only a single interface and thus a
  75.   single IP number.
  76.  
  77.   3.2.  IP Numbers as "Dotted Quads"
  78.  
  79.   In the current (IPv4) implementation of IP numbers, IP numbers consist
  80.   of 4 (8 bit) bytes - giving a total of 32 bits of available
  81.   information.  This results in numbers that are rather large (even when
  82.   written in decimal notation). So for readability (and organisational
  83.   reasons) IP numbers are usually written in the 'dotted quad' format.
  84.   The IP number
  85.  
  86.                192.168.1.24
  87.  
  88.   is an example of this - 4 (decimal) numbers separated by (.) dots.
  89.  
  90.   As each one of the four numbers is the decimal representation of an 8
  91.   bit byte, each of the 4 numbers can range from 0 to 255 (that is take
  92.   on 256 unique values - remember, zero is a value too).
  93.  
  94.   In addition, part of the IP number of a host identifies the network on
  95.   which the host resides, the remaining 'bits' of the IP number identify
  96.   the host (oops - network interface) itself. Exactly how many bits are
  97.   used by the network ID and how many are available to identify hosts
  98.   (interfaces) on that network is determined by the network 'class'.
  99.  
  100.   3.3.  Classes of IP Networks
  101.  
  102.   There are three classes of IP numbers
  103.  
  104.   ╖  Class A IP network numbers use the leftmost 8 bits (the leftmost of
  105.      the dotted quads) to identify the network, leaving 24 bits (the
  106.      remaining three dotted quads) to identify host interfaces on that
  107.      network.
  108.      Class A addresses always have the leftmost bit of the leftmost byte
  109.      a zero - that is a decimal value of 0 to 127 for the first dotted
  110.      quad. So there are a maximum of 128 class A network numbers
  111.      available, with each one containing up to 33,554,430 possible
  112.      interfaces.
  113.  
  114.      However, the networks 0.0.0.0 (known as the default route) and
  115.      127.0.0.0 (the loop back network) have special meanings and are not
  116.      available for use to identify networks. So there are only 126
  117.      available A class network numbers.
  118.  
  119.   ╖  Class B IP network numbers use the leftmost 16 bits (the leftmost
  120.      two dotted quads) to identify the network, leaving 16 bits (the
  121.      last two dotted quads) to identify host interfaces. Class B
  122.      addresses always have the leftmost 2 bits of the leftmost byte set
  123.      to 1 0. This leaves 14 bits left to specify the network address
  124.      giving 32767 available B class networks. B Class networks thus have
  125.      a range of 128 to 191 for the first of the dotted quads, with each
  126.      network containing up to 32,766 possible interfaces.
  127.  
  128.   ╖  Class C IP network numbers use the leftmost 24 bits (the leftmost
  129.      three bytes) to identify the network, leaving 8 bits (the rightmost
  130.      byte) to identify host interfaces. Class C addresses always start
  131.      with the leftmost 3 bits set to 1 1 0 or a range of 192 to 255 for
  132.      the leftmost dotted quad. There are thus 4,194,303 available C
  133.      class network numbers, each containing 254 interfaces. (C Class
  134.      networks with the first byte greater than 223 are however reserved
  135.      and unavailable for use).
  136.  
  137.   In summary:
  138.  
  139.                Network class   Usable range of first byte values (decimal)
  140.                        A                 1 to 126
  141.                        B               128 to 191
  142.                        C               192 to 254
  143.  
  144.   There are also special addresses that are reserved for 'unconnected'
  145.   networks - that is networks that use IP but are not connected to the
  146.   Internet, These addresses are:-
  147.  
  148.   ╖  One A Class Network
  149.      10.0.0.0
  150.  
  151.   ╖  16 B Class Networks
  152.      172.16.0.0 - 172.31.0.0
  153.  
  154.   ╖  256 C Class Networks 192.168.0.0 - 192.168.255.0
  155.  
  156.   You will note that this document uses these sequences throughout to
  157.   avoid confusion with 'real' networks and hosts.
  158.  
  159.   3.4.  Network numbers, interface addresses and broadcast addresses
  160.  
  161.   IP numbers can have three possible meanings:-
  162.  
  163.   ╖  the address of an IP network (a group of IP devices sharing common
  164.      access to a transmission medium - such as all being on the same
  165.      Ethernet segment). A network number will always have the interface
  166.      (host) bits of the address space set to 0 (unless the network is
  167.      sub-networked - as we shall see);
  168.  
  169.   ╖  the broadcast address of an IP network (the address used to 'talk',
  170.      simultaneously, to all devices in an IP network). Broadcast
  171.      addresses for a network always have the interface (host) bits of
  172.      the the address space set to 1 (unless the network is sub-networked
  173.      - again, as we shall see).
  174.  
  175.   ╖  the address of an interface (such as an Ethernet card or PPP
  176.      interface on a host, router, print server etc). These addresses can
  177.      have any value in the host bits except all zero or all 1 - because
  178.      with the host bits all 0, the address is a network address and with
  179.      the host bits all 1 the address is the broadcast address.
  180.  
  181.   In summary and to clarify things
  182.  
  183.        For an A class network...
  184.        (one byte of network address space followed by three bytes of host
  185.        address space)
  186.  
  187.                10.0.0.0 is an A Class  network number  because all the host
  188.                        bits of the address space are 0
  189.                10.0.1.0 is a host address on this network
  190.                10.255.255.255.255 is the broadcast address of this network
  191.                        because all the host bits of the address space are 1
  192.  
  193.        For a B class network...
  194.        (two bytes of network address space followed by two bytes of host
  195.        address space)
  196.  
  197.                172.17.0.0 is a B Class network number
  198.                172.17.0.1 is a host address on this network
  199.                172.17.255.255 is the network broadcast address
  200.  
  201.        For a C Class network...
  202.        (three bytes of network address space followed by one byte of host
  203.        address space)
  204.  
  205.                192.168.3.0 is a C Class network number
  206.                192.168.3.42 is a host address on this network
  207.                192.168.3.255 is the network broadcast address
  208.  
  209.   Almost all IP network numbers remaining available for allocation at
  210.   present are C Class addresses.
  211.  
  212.   3.5.  The network mask
  213.  
  214.   The network mask is more properly called the subnetwork mask. However,
  215.   it is generally referred to as the network mask.
  216.  
  217.   It is the network mask and its implications on how IP addresses are
  218.   interpreted locally on an IP network segment that concerns us most
  219.   here, as this determines what (if any) sub-networking occurs.
  220.  
  221.   The standard (sub-) network mask is all the network bits in an address
  222.   set to '1' and all the host bits set to '0'. This means that the
  223.   standard network masks for the three classes of networks are:-
  224.  
  225.   ╖  A Class network mask: 255.0.0.0
  226.  
  227.   ╖  B Class network mask: 255.255.0.0
  228.  
  229.   ╖  C Class network mask: 255.255.255.0
  230.  
  231.   There are two important things to remember about the network mask:-
  232.  
  233.   ╖  The network mask affects only the local interpretation of local IP
  234.      numbers (where local means on this particular network segment);
  235.  
  236.   ╖  The network mask is not an IP number - it is used to modify how
  237.      local IP numbers are interpreted locally.
  238.  
  239.   4.  What are subnets?
  240.  
  241.   A subnet is a way of taking a single IP network address and locally
  242.   splitting it up so that this single network IP address can actually be
  243.   used on several interconnected local networks. Remember, a single IP
  244.   network number can only be used on a single network.
  245.  
  246.   The important word here is locally: as far as the world outside the
  247.   machines and physical networks covered by the sub-netted IP network
  248.   are concerned, nothing whatsoever has changed - it is still just a
  249.   single IP network. This is important - sub-networking is a local
  250.   configuration and is invisible to the rest of the world.
  251.  
  252.   5.  Why subnetwork?
  253.  
  254.   The reasons behind sub-networking date back to the early specification
  255.   of IP - where just a few sites were running on Class A network
  256.   numbers, which allow for millions of connected hosts.
  257.  
  258.   It is obviously a huge traffic and administration problem if all IP
  259.   computers at a large site need to be connected to the same network:
  260.   trying to manage such a huge beast would be a nightmare and the
  261.   network would (almost certainly) collapse under the load of its own
  262.   traffic (saturate).
  263.  
  264.   Enter sub-networking: the A class IP network address can be split up
  265.   to allow its distribution across several (if not many) separate
  266.   networks.  The management of each separate network can easily be
  267.   delegated as well.
  268.  
  269.   This allows small, manageable networks to be established - quite
  270.   possibly using different networking technologies. Remember, you cannot
  271.   mix Ethernet, Token Ring, FDDI, ATM etc on the same physical network -
  272.   they can be interconnected, however!
  273.  
  274.   Other reasons for sub-networking are:-
  275.  
  276.   ╖  Physical site layout can create restrictions (cable run lengths) in
  277.      terms of the how the physical infrastructure can be connected,
  278.      requiring multiple networks. Sub-networking allows this to be done
  279.      in an IP environment using a single IP network number.
  280.      This is in fact now very commonly done by ISPs who wish to give
  281.      their permanently connected clients with local networks static IP
  282.      numbers.
  283.  
  284.   ╖  Network traffic is sufficiently high to be causing significant slow
  285.      downs. By splitting the network up using subnetworks, traffic that
  286.      is local to a network segment can be kept local - reducing overall
  287.      traffic and speeding up network connectivity without requiring more
  288.      actual network bandwidth;
  289.  
  290.   ╖  Security requirements may well dictate that different classes of
  291.      users do not share the same network - as traffic on a network can
  292.      always be intercepted by a knowledgeable user. Sub-networking
  293.      provides a way to keep the marketing department from snooping on
  294.      the R & D network traffic (or students from snooping on the
  295.      administration network)!
  296.  
  297.   ╖  You have equipment which uses incompatible networking technologies
  298.      and need to interconnect them (as mentioned above).
  299.  
  300.   6.  How to subnetwork a IP network number
  301.  
  302.   Having decided that you need to subnetwork your IP network number, how
  303.   do you go about it? The following is an overview of the steps which
  304.   will then be explained in detail:-
  305.  
  306.   ╖  Set up the physical connectivity (network wiring and network
  307.      interconnections - such as routers;
  308.  
  309.   ╖  Decide how big/small each subnetwork needs to be in terms of the
  310.      number of devices that will connect to it - ie how many usable IP
  311.      numbers are required for each individual segment.
  312.  
  313.   ╖  Calculate the appropriate network mask and network addresses;
  314.  
  315.   ╖  Give each interface on each network its own IP address and the
  316.      appropriate network mask;
  317.  
  318.   ╖  Set up the routes on the routers and the appropriate gateways,
  319.      routes and/or default routes on the networked devices;
  320.  
  321.   ╖  Test the system, fix problems and then relax!
  322.  
  323.   For the purpose of this example, we will assume we are sub-networking
  324.   a single C class network number: 192.168.1.0
  325.  
  326.   This provides for a maximum of 254 connected interfaces (hosts), plus
  327.   the obligatory network number (192.168.1.0) and broadcast address
  328.   (192.168.1.255).
  329.  
  330.   6.1.  Setting up the physical connectivity
  331.  
  332.   You will need to install the correct cabling infrastructure for all
  333.   the devices you wish to interconnect designed to meet your physical
  334.   layout.
  335.  
  336.   You will also need a mechanism to interconnect the various segments
  337.   together (routers, media converters etc.).
  338.  
  339.   A detailed discussion of this is obviously impossible here. Should you
  340.   need help, there are network design/installation consultants around
  341.   who provide this sort of service. Free advice is also available on a
  342.   number of Usenet news groups (such as comp.os.linux.networking).
  343.  
  344.   6.2.  Subnetwork sizing
  345.  
  346.   There is a play off between the number of subnetworks you create and
  347.   'wasted' IP numbers.
  348.  
  349.   Every individual IP network has two addresses unusable as interface
  350.   (host) addresses - the network IP number itself and the broadcast
  351.   address. When you subnetwork, each subnetwork requires its own, unique
  352.   IP network number and broadcast address - and these have to be valid
  353.   addresses from within the range provided by the IP network that you
  354.   are sub-networking.
  355.  
  356.   So, by sub-networking an IP network into two separate subnetworks,
  357.   there are now two network addresses and two broadcast addresses -
  358.   increasing the 'unusable' interface (host) addresses; creating 4
  359.   subnetworks creates eight unusable interface (host) addresses and so
  360.   on.
  361.  
  362.   In fact the smallest usable subnetwork consists of 4 IP numbers:-
  363.  
  364.   ╖  Two usable IP interface numbers - one for the router interface on
  365.      that network and one for the single host on that network.
  366.  
  367.   ╖  One network number.
  368.  
  369.   ╖  One broadcast address.
  370.  
  371.   Quite why one would want to create such a small network is another
  372.   question! With only a single host on the network, any network
  373.   communication must go out to another network. However, the example
  374.   does serve to show the law of diminishing returns that applies to sub-
  375.   networking.
  376.  
  377.   In principle, you can only divide your IP network number into 2^n
  378.   (where n is one less that the number of host bits in your IP network
  379.   number) equally sized subnetworks (you can subnetwork a subnetwork and
  380.   combine subnetworks however).
  381.  
  382.   So be realistic about designing your network design - you want the
  383.   minimum number of separate local networks that is consistent with
  384.   management, physical, equipment and security constraints!
  385.  
  386.   6.3.  Calculating the subnetwork mask and network numbers
  387.  
  388.   The network mask is what performs all the local magic of dividing an
  389.   IP network into subnetworks.
  390.  
  391.   The network mask for an un-sub-networked IP network number is simply a
  392.   dotted quad which has all the 'network bits' of the network number set
  393.   to '1' and all the host bits set to '0'.
  394.  
  395.   So, for the three classes of IP networks, the standard network masks
  396.   are:-
  397.  
  398.   ╖  Class A (8 network bits) : 255.0.0.0
  399.  
  400.   ╖  Class B (16 network bits): 255.255.0.0
  401.  
  402.   ╖  Class C (24 network bits): 255.255.255.0
  403.  
  404.   The way sub-networking operates is to borrow one or more of the
  405.   available host bits and make then make interfaces locally interpret
  406.   these borrowed bits as part of the network bits. So to divide a
  407.   network number into two subnetworks, we would borrow one host bit by
  408.   setting the appropriate bit in the network mask of the first (normal)
  409.   host bit to '1'.
  410.  
  411.   For a C Class address, this would result in a netmask of
  412.   11111111.11111111.11111111.10000000
  413.   or 255.255.255.128
  414.  
  415.   For our C Class network number of 192.168.1.0, these are some of the
  416.   sub-networking options you have:-
  417.  
  418.   ______________________________________________________________________
  419.   No of      No of
  420.   subnets    Hosts/net    netmask
  421.   2            126        255.255.255.128 (11111111.11111111.11111111.10000000)
  422.   4             62        255.255.255.192 (11111111.11111111.11111111.11000000)
  423.   8             30        255.255.255.224 (11111111.11111111.11111111.11100000)
  424.   16            14        255.255.255.240 (11111111.11111111.11111111.11110000)
  425.   32             6        255.255.255.248 (11111111.11111111.11111111.11111000)
  426.   64             2        255.255.255.252 (11111111.11111111.11111111.11111100)
  427.   ______________________________________________________________________
  428.  
  429.   In principle, there is absolutely no reason to follow the above way of
  430.   subnetworking where network mask bits are added from the most
  431.   significant host bit to the least significant host bit. However, if
  432.   you do not do it this way, the resulting IP numbers will be in a very
  433.   odd sequence! This makes it extremely difficult for us humans to
  434.   decide to which subnetwork an IP number belongs as we are not too good
  435.   at thinking in binary (computers on the other hand are and will use
  436.   whatever scheme you tell them with equal equanimity).
  437.  
  438.   Having decided on the appropriate netmask, you then need to work out
  439.   what the various Network and broadcast addresses are - and the IP
  440.   number range for each of these networks. Again, considering only a C
  441.   Class IP Network number and listing only the final (host part) we
  442.   have:-
  443.  
  444.   ______________________________________________________________________
  445.   Netmask         Subnets Network B'cast  MinIP   MaxIP   Hosts  Total Hosts
  446.   --------------------------------------------------------------------------
  447.       128            2       0     127       1     126    126
  448.                            128     255     129     254    126     252
  449.  
  450.       192            4       0      63       1      62     62
  451.                             64     127      65     126     62
  452.                            128     191     129     190     62
  453.                            192     255     193     254     62     248
  454.  
  455.       224            8       0      31       1      30     30
  456.                             32      63      33      62     30
  457.                             64      95      65      94     30
  458.                             96     127      97     126     30
  459.                            128     159     129     158     30
  460.                            160     191     161     190     30
  461.                            192     223     193     222     30
  462.                            224     255     225     254     30     240
  463.   ______________________________________________________________________
  464.  
  465.   As can be seen, there is a very definite sequence to these numbers,
  466.   which make them fairly easy to check. The 'downside' of sub-networking
  467.   is also visible in terms of the reducing total number of available
  468.   host addresses as the number of subnetworks increases.
  469.  
  470.   With this information, you are now in a position to assign host and
  471.   network IP numbers and netmasks.
  472.  
  473.   7.  Routing
  474.  
  475.   If you are using a Linux PC with two network interfaces to route
  476.   between two (or more) subnets, you need to have IP Forwarding enabled
  477.   in your kernel. Do a
  478.  
  479.   ______________________________________________________________________
  480.           cat /proc/ksyms | grep ip_forward
  481.   ______________________________________________________________________
  482.  
  483.   You should get back something like...
  484.  
  485.   ______________________________________________________________________
  486.   00141364 ip_forward_Rf71ac834
  487.   ______________________________________________________________________
  488.  
  489.   If you do not, then you do not have IP-Forwarding enabled in your
  490.   kernel and you need to recompile and install a new kernel.
  491.  
  492.   For the sake of this example, let us assume that you have decided to
  493.   subnetwork you C class IP network number 192.168.1.0 into 4 subnets
  494.   (each of 62 usable interface/host IP numbers). However, two of these
  495.   subnets are being combined into a larger single network, giving three
  496.   physical networks.
  497.   These are :-
  498.  
  499.   ______________________________________________________________________
  500.   Network         Broadcast       Netmask                 Hosts
  501.   192.168.1.0     192.168.1.63    255.255.255.192         62
  502.   192.168.1.64    192.168.1.127   255.255.255.192         62
  503.   182.168.1.128   192.168.1.255   255.255.255.126         124 (see note)
  504.   ______________________________________________________________________
  505.  
  506.   Note: the reason the last network has only 124 usable network
  507.   addresses (not 126 as would be expected from the network mask) is that
  508.   it is really a 'super net' of two subnetworks. Hosts on the other two
  509.   networks will interpret 192.168.1.192 as the network address of the
  510.   'non-existent' subnetwork. Similarly, they will interpret
  511.   192.168.1.191 as the broadcast address of the 'non-existent'
  512.   subnetwork.
  513.  
  514.   So, if you use 192.168.1.191 or 192 as host addresses on the third
  515.   network, then machines on the two smaller networks will not be able to
  516.   communicate with them.
  517.  
  518.   This illustrates an important point with subnetworks - the usable
  519.   addresses are determined by the SMALLEST subnetwork in that address
  520.   space.
  521.  
  522.   7.1.  The routing tables
  523.  
  524.   Let us assume that a computer running Linux is acting as a router for
  525.   this network. It will have three network interfaces to the local LANs
  526.   and possibly a fourth interface to the Internet (which would be its
  527.   default route.
  528.  
  529.   Let us assume that the Linux computer uses the lowest available IP
  530.   address in each subnetwork on its interface to that network. It would
  531.   configure its network interfaces as
  532.  
  533.   ______________________________________________________________________
  534.   Interface       IP Address      Netmask
  535.   eth0            192.168.1.1     255.255.255.192
  536.   eth1            192.168.1.65    255.255.255.192
  537.   eth2            192.168.1.129   255.255.255.128
  538.   ______________________________________________________________________
  539.  
  540.   The routing it would establish would be
  541.  
  542.   ______________________________________________________________________
  543.   Destination     Gateway         Genmask         Iface
  544.   192.168.1.0     0.0.0.0         255.255.255.192 eth0
  545.   192.168.1.64    0.0.0.0         255.255.255.192 eth1
  546.   192.168.1.128   0.0.0.0         255.255.255.128 eth2
  547.   ______________________________________________________________________
  548.  
  549.   On each of the subnetworks, the hosts would be configured with their
  550.   own IP number and net mask (appropriate for the particular network).
  551.   Each host would declare the Linux PC as its gateway/router, specifying
  552.   the Linux PCs IP address for its interface on to that particular
  553.   network.
  554.  
  555.   Robert Hart Melbourne, Australia March 1997.
  556.  
  557.