IPv6 NAT Code
Status: Beta
Brought to you by:
qycaitian
File | Date | Author | Commit |
---|---|---|---|
ChangeLog | 2011-11-04 | qycaitian | [r15] Fixed a bug on getting router's MAC address |
LICENSE | 2010-10-30 | qycaitian | [r1] |
Makefile | 2012-08-28 | qycaitian | [r16] |
README | 2012-08-28 | qycaitian | [r16] |
balancer.cpp | 2011-05-17 | qycaitian | [r13] |
balancer.h | 2011-05-17 | qycaitian | [r13] |
entry.cpp | 2012-08-28 | qycaitian | [r16] |
factory.cpp | 2011-05-17 | qycaitian | [r13] |
factory.h | 2011-05-05 | qycaitian | [r10] |
forwarder.cpp | 2011-06-09 | qycaitian | [r14] |
forwarder.h | 2011-06-09 | qycaitian | [r14] |
ip_wan_map.cpp | 2011-05-17 | qycaitian | [r13] |
ip_wan_map.h | 2011-05-09 | qycaitian | [r11] |
ipv6_nat.cpp | 2011-11-04 | qycaitian | [r15] Fixed a bug on getting router's MAC address |
ipv6_nat.h | 2011-05-05 | qycaitian | [r10] |
ipv6_nat.sh | 2011-05-03 | qycaitian | [r9] |
ipv6nat_port_map.conf | 2011-05-10 | qycaitian | [r12] |
load_monitor.cpp | 2011-05-17 | qycaitian | [r13] |
load_monitor.h | 2011-05-17 | qycaitian | [r13] |
port_map.cpp | 2011-05-17 | qycaitian | [r13] |
port_map.h | 2011-05-17 | qycaitian | [r13] |
protocol.cpp | 2011-05-17 | qycaitian | [r13] |
protocol.h | 2011-05-17 | qycaitian | [r13] |
restrictor.cpp | 2011-05-17 | qycaitian | [r13] |
restrictor.h | 2011-05-17 | qycaitian | [r13] |
IPv6 NAT - A NAT(network address translation) for IPv6 1. Instructions This is a simple NAT for IPv6. Make sure if you really need it before using it. (If you don't know what is a NAT, you don't need it.) Before running this, please: * Disable IPv6 kernel forwarding; * Block out-going IPv6 TCP reset packets on WAN interface; * Block out-going ICMPv6 neighbour-advertisement packets on LAN interface; * Block out-going ICMPv6 destination-unreachable packets. Usage: ipv6_nat LAN_interface [-w WAN_interface_number] WAN_interface0 [WAN0_router_MAC] [WAN_interface1 [WAN1_router_MAC]]... "ipv6_nat.sh" is an example to run this tool. Static port mapping is configured in /etc/ipv6nat_port_map.conf , each line of which contains a port mapping definition. For example: tcp 4422 00:AA:BB:CC:DD:EE 2001:2:3:4:00af:cfaa:bbcc:ddee 22 0 defined a TCP port mapping from [2001:2:3:4:00af:cfaa:bbcc:ddee]:22 to [WAN IP]:4422 via WAN interface 0, where 00:AA:BB:CC:DD:EE is the MAC address of [2001:2:3:4:00af:cfaa:bbcc:ddee]. NOTE: each line starts with '#' will be treated as comment and ignored! 2. System Requirements * OS is Linux; * IPv6 is compiled into the kernel; * ip6tables is installed. 3. Functions * IPv6 auto configuration (If you run it on the gateway, all the PCs in the LAN will get 'fake' IPv6 global addresses and IPv6 route); * Port forwarding for TCP, UDP and ICMP-Echo; * Static port mapping for TCP and UDP; * Multiple WAN interfaces are supported. 4. License (GPL License) Copyright (C) 2010-2012 CTQY <qiyi.caitian@gmail.com> This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.