RE: "-o" specifier in DNAT definition?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Robert P. J. Day wrote:
> On 19 Apr 2003, Joel Newkirk wrote:
> 
>> On Sat, 2003-04-19 at 07:54, Robert P. J. Day wrote:
>>>   in a book i'm reading discussing (among other things),
>>> setting up DNAT, there is a sample rule:
>>> 
>>>   # iptables -t nat -A PREROUTING -i eth0 -o eth1
>>> 	-d <internal server IP address>
>>> 	-j DNAT --to-destination 192.168.0.1
>>> 
>>> the question: how can the explicit specification of the "-o"
>>> interface affect this? 
>>> 
>>>   after all, it's quite possible that the interface that
>>> would normally be chosen to forward to the internal
>>> server would not be the one listed with "-o".  (perhaps the admin
>>> made a mistake.) 
>>> 
>>>   if there is an obvious conflict here, what happens?
>>> does this DNAT just go unsatisfied?
>> 
>> 
>> Everything before "-j" is matching, the "-j" tells it what you want
>> done if the packet matches.  So the "-o" is simply testing which
>> interface the packet is targetted to go out.
>> 
>> The problem here is that the "-o" match isn't valid in PREROUTING,
>> since (as the name implies) it takes place before the routing
>> decision, so the destination (obviously since this is where we can
>> DNAT) and therefore the outbound interface are still unknown.
>> 
>> So there IS a conflict here, between "-o" and PREROUTING in a sense,
>> and the result will be that the rule won't even be created.  If you
>> try to enter this rule manually you will be informed "Can't use -o
>> with PREROUTING".
> 
> yup, that makes sense.  it's getting tiring perusing books that
> sell themselves as howto-iptables-firewall books that have these
> kinds of errors.  argh.
> 

what book?



[Index of Archives]     [Linux Netfilter Development]     [Linux Kernel Networking Development]     [Netem]     [Berkeley Packet Filter]     [Linux Kernel Development]     [Advanced Routing & Traffice Control]     [Bugtraq]

  Powered by Linux