File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / choparp / README
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 16:49:51 2012 UTC (12 years, 3 months ago) by misho
Branches: choparp, MAIN
CVS tags: v20150613p0, v20021107p0, v20021107, HEAD
choparp

    1: choparp README
    2: $Id: README,v 1.1.1.1 2012/02/21 16:49:51 misho 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>