diff options
-rw-r--r-- | TODO | 28 | ||||
-rw-r--r-- | ip6t_MAP66.c | 2 |
2 files changed, 6 insertions, 24 deletions
@@ -1,18 +1,15 @@ -Idea to think about: --salt 3b5b91c5a2 XOR client addresses for some more privacy +* Idea to think about: --salt 3b5b91c5a2 XOR client addresses for some more privacy the salt can be added e.g. when restarting router/iptables or may be generated for a particular host once. Purpose: hide MAC addresses behind the address mapping gateway -Check compat with tcpdump. Linux2.4 needs to copy skb() for that, but it oopses +* one map16 function for all cases? -Update csum, see http://www.faqs.org/rfcs/rfc1624.html for these -protos (see http://www.firstpr.com.au/ip/ivip/checksums/ ): +* Implment bit-offset for arbitrary prefix length -IPPROTO_TCP, IPPROTO_UDP, IPPROTO_DCCP, IPPROTO_AH?, IPPROTO_ICMPV6, IPPROTO_UDPLITE -break NEXTHDR_NONE +* Check compat with tcpdump. Linux2.4 needs to copy skb() for that -> oops -Evnt mit ipv6_gso_pull_exthdrs() oder ipv6_find_hdr() oder nf_ct_ipv6_skip_exthdr() -Evnt linux-2.4: mit ipv6_skip_exthdr() +* Check ipv6_skip_exthdr(). Correct handling of skb.len? Otherwise do this: unsigned int ptr = skb_network_offset(skb) + sizeof(struct ipv6hdr); u_int8_t c = ipv6hdr.nexthdr; @@ -36,18 +33,3 @@ while (c != NEXTHDR_NONE && ip6t_ext_hdr(currenthdr)) { c = hp->nexthdr; ptr += hdrlen; } - -gai.conf ip ranges: -::1/128 0 (localhost) -::/0 1 (?all IPv6, including global unicast?) -2002::/16 2 (6to4) -::/96 3 (ipv4 compat, deprecated) -::ffff:0:0/96 4 (ipv4 mapped) -fec0::/10 5 (ubuntu, site local unicast, deprecated) -fc00::/7 6 (ubuntu, unique local unicast) -2001:0::/32 7 (ubuntu, teredo) - -2000::/3 (global unicast) -2001::/16 (for ISPs) -2001:db8::/32 (doku) -3ffe::/16 (6bone) diff --git a/ip6t_MAP66.c b/ip6t_MAP66.c index 8a2e70b..ea04c7d 100644 --- a/ip6t_MAP66.c +++ b/ip6t_MAP66.c @@ -55,7 +55,7 @@ static void map16( memcpy(addr, to, sizeof(u_int16_t) * len_to); } -/* Perform mapping with csum update */ +/* Perform mapping with csum update, see RFC 1624 */ static void map_csum( struct in6_addr* addr, const struct in6_addr* to, |