Annotation of embedaddon/choparp/README, revision 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>