All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Terry Moës" <T.Moes@student.ulg.ac.be>
To: netfilter-devel@vger.kernel.org
Subject: Re: NAT66 : A first implementation
Date: Fri, 15 Jul 2011 11:16:43 +0200	[thread overview]
Message-ID: <4E20057B.4010302@student.ulg.ac.be> (raw)
In-Reply-To: <4E20051D.7080208@student.ulg.ac.be>

I won't react to anything that has been replied before me about the 
utility of NAT in general. I obviously agree with those of you that 
think it's worth a try !


On 15/07/11 01:15, Jan Engelhardt wrote:
> As such, anything revolving around that topic is closely eyed and
> dismantled. (The Linux camp generally being one that likes to DTRT and
> cook their ideas through, at least more than some
> purely-commercially-oriented huts.)
>
I don't like NAT either. But, by definition, RFC means Request for 
Comments, and I don't know how to make any constructive comment without 
trying to implement it, and see pros and cons...
> As for the thesis paper:
>
> - At times, the document reads like a speech, owing to certain
> linguistic constructs such as enumerations, relatively short sentences
> ("election campaingn" style), and a somewhat abundant use of exclamation
> marks.
I'm not seeing myself as an English-master, and this is the first real 
big project I had in English, thus yes, I agree it can be difficult to 
read. But I don't think we are on this list to criticize my level in 
English.
>> This feature [NAT] is very common in IPv4 networks today - it made the
>> delay of the X-Day possible - and will surely have its applications in
>> IPv6 networks.
> Possible yes, however, delaying of the x-day was surely not one of its
> design goals. As such, the delay seems more like a side-effect at
> first — and then when it became apparent that address space runs out
> "soon", NAT became a constant abuse.
I don't see where I say "Its goal was" in this sentence. A constant 
abuse, maybe, but an abuse that helped the most people to have an 
Internet access at home. Some are conservative and will say it is not 
such a good thing, but I'm not one of them. Some must have said the same 
thing when the Television, next the phone have become so popular...

Let's not forget also that, the more people are using internet, the more 
servers we need; and the more servers we need, the more IP addresses we 
need; ...; quicker will be be the need of IPv6. And I think, as many 
others, that it is time for IPv6 to come, not only for the number of 
available addresses, but for many other reasons !
>
> Side-effect is too soft. Calling NAT a security device comes like
> premeditated deception of end-users.
I insisted enough on the fact that a NAT Device is NOT a security 
device. And it IS a side-effect; too "soft" is somewhat psychologically 
subjective.
But I didn't think either it was a primary and desired effect, until one 
member of my jury, who is a recognized and well-known security expert, 
told me that NAT has two primary interests in today's Internet : 
Multi-Homing and... Security!

Having said that, I don't think "side-effect" is too soft!
> There is a difference between needed address and available addresses. If
> people did not need so many, they could fit all their hosts in the
> available address space instead - and would not need NAT.
Yes. But these addresses were needed, thus they needed NAT. I don't 
understand your point here.
> In fact, each IPv6 hosts usually already has more than one address - and
> one of them is the fe80::/ link-scope prefix. So they are generally
> already multi-homed once one has added a unicast address to an
> interface.
Yes, and these link-scope addresses are not routable, and if you add a 
unicast address from the prefix of one ISP, another one will reject this 
prefix. Therefore, the utility of NAT66!
>> Fast execution NAT in IPv4 is slowed because the NAT device has to
>> recompute the checksums every time a packet goes through; we want to
>> circumvent this limitation.
> You need to recompute them anyway when doing L7 substitution.
Yes, that's something that remains to be done on the implementation I 
provided. And my knowledge is that there is very more packets of L7 
protocols that do not need a L7 substitution, than those that need!
Please, don't read : "there is few L7 protocols that need substitution" 
; I'm talking about the volume of data transferred !
> A 128-bit entity can very well be atomic if the programming language
> implementation decides to make it so. Just because yours does not do it
> currently does not mean it will never be.
Yes, but the title of my thesis say "in a Linux kernel", and I'm not 
thinking that the kernel is compiled in a way that 128 bits are atomic !
But you're right on one point : I should have enlightened that by saying 
"by the time of this writing, and in the Linux kernel".
>
> This statement seems incorrect. One type's representation may be a trap
> representation for another type. Again, just because that is not the
> case in contemporary implementations does not mean it is not possible.
Same as before.
>> routers cannot fragment a packet on their own anymore, and cannot
>> reassemble fragments either.
> While I can agree with this statement, be aware that "routers" running
> nf_conntrack will undoubtedly reassemble in all cases, save perhaps for
> packets delievered to raw sockets due to the order of raw-socket
> delivery and nf_defrag.
My knowledge so far is that the reassembling routine in the conntrack 
(in IPv6) is authorized only in the INPUT chain (Pierre Rondou, who is 
from same University and has same jury of mine has been confronted to 
this problem).
And if some modules in the kernel need to reassemble, I'm not, and I can 
very well work with packet fragmented.

BTW, if you know a module/a way to reassemble a packet in transit in the 
kernel, I'm curious to know it !
> nf_conntrack (required by nf_nat) forces reassembly of
> packets exactly because the L4 header is part of the tracking tuple.
In IPv6 also ?
>> int i; // A loop counter
> 	“A loop counter!? Nobody would have expected _that_!”
What do you mean ?

If what makes you react is the comment, I will say "a comment not very 
useful is more than nothing, which is approximately the level of comment 
in the kernel, and that really is a pain in the ass when you're trying 
to understand something ; and if I was the reader of this portion of 
code, such a comment would surely not hinder me".

And if it's the fact that there is a loop counter that makes you react, 
because it's a mistake, explain to me why this is a mistake would 
certainly be useful !

>> This negotiation happens in a ASCII format data flow and not in a
>> binary format. Therefore, the change of the connection information in
>> the ASCII format may change the length of the packet after the NAT
>> manipulation.
> Note however that binary encodings can also exist as variable-length. So
> binary is not the magic scepter. Think of UTF-8.
What I meant here, is that the length of the IP address may change in 
ASCII format (2001:db8:1::1 => 2001:db8:1:babe::1) has 5 more characters 
in ASCII format. You can have a binary encoding which is 
variable-length, you will never have the same number of bits in both cases.

--
Terry Moës (20061420)
Université de Liège - Faculté des Sciences Appliquées
2ème année Master Ingénieur Civil en Informatique - Délégué
Représentant Etudiant - Conseil de Faculté
FFSA Administrateur -http://www.ffsa.be
T.Moes@student.ulg.ac.be

-- 

N-HiTec - Nova High Technology Engineering and Consulting

Responsable des Infrastructures - Vice-Président

Web :http://www.nhitec.com
Tél :   04/366.20.01

--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2011-07-15  9:16 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-14 15:47 NAT66 : A first implementation Terry Moës
2011-07-14 16:22 ` Jan Engelhardt
2011-07-14 16:27   ` Terry Moës
2011-07-14 23:15     ` Jan Engelhardt
2011-07-14 23:17       ` David Miller
2011-07-14 23:37         ` Rick Jones
2011-07-15 15:43           ` Rick Jones
2011-07-14 23:55         ` Jan Engelhardt
2011-07-17  5:09           ` Krzysztof Olędzki
2011-07-17 22:23             ` Ed W
2011-07-17 23:54               ` Krzysztof Olędzki
2011-07-18  8:38                 ` Ed W
2011-07-15  0:48         ` Jeff Haran
2011-07-15  2:29           ` Adam Roach
2011-07-15 22:12             ` Jeff Haran
2011-07-16  3:08               ` Adam Roach
2011-07-18  2:05         ` YOSHIFUJI Hideaki
2011-07-18 15:50         ` Patrick McHardy
2011-07-21  7:15           ` Harald Welte
2011-07-15  5:48       ` Philip Craig
2011-07-15 10:29         ` Jan Engelhardt
     [not found]       ` <4E20051D.7080208@student.ulg.ac.be>
2011-07-15  9:16         ` Terry Moës [this message]
2011-07-15 11:09           ` Jan Engelhardt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4E20057B.4010302@student.ulg.ac.be \
    --to=t.moes@student.ulg.ac.be \
    --cc=netfilter-devel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.