git: kernel - Implement IPV6 subnet routing / proxy ND6 (equiv to proxy ARP)

Matthew Dillon dillon at crater.dragonflybsd.org
Wed Sep 4 10:48:18 PDT 2013


commit 2a810c210b34f19e4102f4047516d132bdce66a7
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Wed Sep 4 10:39:55 2013 -0700

    kernel - Implement IPV6 subnet routing / proxy ND6 (equiv to proxy ARP)
    
    * Do not require per-host RTF_ANNOUNCE/AF_LINK entries.  They still
      work but they aren't needed any more (and they are such a huge bitch
      to set up anyway... best to avoid them).
    
    * Machine must have net.inet6.ip6.forwarding mode enabled.
    
    * Internet-facing interface must be promiscuous mode.
    
    * Will automatically proxy ND6 any subnets if the interface
      is different from the one receiving the multicast.  So e.g.
      you can route IPV6 which would otherwise have to be switched.
    
      The subnet interface must currently be different because if it
      were the same the solicitation would be directly received by the
      target host anyway (being a multicast) and we would compete with
      it.  This is also a good safety.
    
      Example:
    
      ifconfig igb0 inet6 2999:499:1:555:1::72/80	For DNS
      ifconfig igb0 inet6 2999:499:1:555:1::1/80	For subnet default route
      ifconfig igb1 inet6 2999:499:1:555::2/80	For internet router
      ifconfig igb1 promisc
      route add -inet6 default 2999:499:1:555::1
    
      The internet router is doing a terminal /64 block, e.g. it's address
      is 2999:499:1:555::1/64, but we want to break the net up further and
      route portions of it instead of switch.

Summary of changes:
 sys/netinet6/ip6_input.c | 20 +++++--------------
 sys/netinet6/nd6_nbr.c   | 52 ++++++++++++++++++++++++++++++++++++++----------
 2 files changed, 47 insertions(+), 25 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/2a810c210b34f19e4102f4047516d132bdce66a7


-- 
DragonFly BSD source repository


More information about the Commits mailing list