Annotation of embedaddon/choparp/README, revision 1.1.1.1

1.1       misho       1: choparp README
                      2: $Id: README,v 1.2 2002/11/07 22:53:23 quinot Exp $
                      3: 
                      4:    Copyright (c) 1997 Takamichi Tateoka (tree@mma.club.uec.ac.jp)
                      5:    Copyright (c) 2002 Thomas Quinot (thomas@cuivre.fr.eu.org)
                      6: 
                      7: Changes and original English man page from the FreeBSD port by
                      8: Jun-ichiro itojun Hagino <itojun@freebsd.org>.
                      9: 
                     10: Changes from the NetBSD package by Darrin B. Jewell <dbj@netbsd.org>.
                     11: 
                     12: choparp is a proxy ARP daemon. It listens for ARP requests on a
                     13: network interface, and sends ARP replies with a specified MAC
                     14: addresses when the requested IP addresses matches a user-provided
                     15: list.
                     16: 
                     17: For example, assume following VLSM subnet.  R1 and H1 must have
                     18: routing entry for subnet B (172.21.139.32/28).
                     19: 
                     20:   +----+                            +----+
                     21:   | R1 |                            | H1 |
                     22:   +-+--+                            +----+
                     23:     | 172.21.139.1                    | 172.21.139.96
                     24:     |                                 |
                     25:   --+--------+------------------------+--------------- subnet A
                     26:              |                                   172.21.139.0/24
                     27:              | 172.21.139.2
                     28:            +----+
                     29:            | R2 |
                     30:            +----+
                     31:              | 172.21.139.33
                     32:              |
                     33:        ------+-----------------+---------------------- subnet B
                     34:                                |                 172.21.139.32/28
                     35:                                | 172.21.139.33
                     36:                              +----+
                     37:                              | H2 |
                     38:                              +----+
                     39: 
                     40: If you can not set such routing entry, R1 and H1 treat hosts on the
                     41: subnet B as on the subnet A.  In this case, H1 broadcast ARP request
                     42: for H2 to send a message for H2.  This request will fail since this
                     43: request can not reach to subnet B (and H2), thus H1 cannot tail with
                     44: H2.
                     45: 
                     46: choparp running on R2 replies for ARP request, which is looking for
                     47: MAC address of H2, as R2 is H2 on subnet A.  Hosts on subnet A send
                     48: packets for H2 to R2 (because R2 replies H2 is R2), and R2 can forward
                     49: the packets to R2 with ordinary way.  As a result, H1 and H2 can talk
                     50: each other.  You can *chop* subnet B from subnet A without any routing
                     51: modification on subnet A.
                     52: 
                     53: This is a same way as proxy ARP described in RFC1027.
                     54: 
                     55: For above example, you should run choparp on R2, set if_name parameter
                     56: as the interface on 172.21.139.2, network parameter as
                     57: 172.21.139.32/255.255.255.240 (or 172.21.139.32/28).  You should not
                     58: use 172.21.139.32 and 172.21.139.47 as IP address for hosts because
                     59: they are used as network address and broadcast address for subnet B.
                     60: 
                     61: Enjoy!
                     62: 
                     63: /*
                     64:    choparp - cheap & omitted proxy arp
                     65: 
                     66:    Copyright (c) 1997 Takamichi Tateoka (tree@mma.club.uec.ac.jp)
                     67:    Copyright (c) 2002 Thomas Quinot (thomas@cuivre.fr.eu.org)
                     68:    
                     69:    Redistribution and use in source and binary forms, with or without
                     70:    modification, are permitted provided that the following conditions
                     71:    are met:
                     72:    1. Redistributions of source code must retain the above copyright
                     73:       notice, this list of conditions and the following disclaimer.
                     74:    2. Redistributions in binary form must reproduce the above copyright
                     75:       notice, this list of conditions and the following disclaimer in the
                     76:       documentation and/or other materials provided with the distribution.
                     77:    3. Neither the name of the authors nor the names of their contributors
                     78:       may be used to endorse or promote products derived from this software
                     79:       without specific prior written permission.
                     80:    
                     81:    THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
                     82:    ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     83:    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     84:    ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
                     85:    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     86:    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     87:    OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     88:    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     89:    LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     90:    OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     91:    SUCH DAMAGE.
                     92: */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>