Re: iptables resources consumed

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

 



On 07/07/08 00:32, Elison Niven wrote:
My main application will know these IP addresses and port numbers through the negotiation. Once the negotiation is done actual RTP data will flow to and from the DSPs and this data has to sent from eth0 to eth2 and from eth2 to eth0.

Ok. So let's think about this with the forwarding of RTP packets prohibited (DROPed) until your application allows (sets up DNATing) of the packets. What will happen, how will things respond, if the first (few?) RTP packets get dropped / rejected before the DNATing is enabled?

Presuming that the possibility of the first (few) RTP packets being dropped is ok, I would do the following:
 - All only the inbound traffic that you want (SSH, HTTP, NTP, etc.).
 - Block all inbound to be processed traffic by default.
 - Block all inbound to be forwarded traffic by default.
 - Block all outbound to be forwarded traffic by default.
- Have your control program dynamically update the NATing rules to forward traffic you want. - Have your control program dynamically update the forwarding rules to allow the NATed traffic to be forwarded.

After the call is over, my main application will do another call to iptables to remove the above added rule.

*nod*

No, packets that the DSPs send are not to be prevented from going out on eth0.

Ok.

This sounds like it will be much easier to set things up to block (DROP) all forwarded traffic by default and set up exceptions for what you do want forwarded and / or allow inbound for (local) processing.

iptables -t filter -P INPUT DROP
iptables -t filter -A INPUT -i eth2 -j ACCEPT
iptables -t filter -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -t filter -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
...

iptables -t filter -P FORWARD DROP
iptables -t filter -A FORWARD -i eth0 -o eth2 -d <DSP1> -p udp --dport 8000 -j ACCEPT
iptables -t filter -A FORWARD -i eth2 -o eth0 -p udp --sport 8000 -j ACCEPT
...

iptables -t nat -A PREROUTING -i eth0 -d <eth0 IP> -p udp --dport 8000 -j DNAT --to-destination <DSP1>
...

Something to consider. With your control program dynamically adjusting the rules, you may not need to monitor packet state. So if you can set up NATing with out connection tracking, you will have less load on your kernel. However I don't know if you can do NATing with out connection tracking being in the kernel as I always have needed connection tracking. If you do have to have connection tracking, you may be able to use the RAW table and it's NOTRACK target to avoid the connection tracking overhead. Some experimentation will say for sure. Or, perhaps someone else will help clarify this.



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

[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