conntrack iptables

Jacek Konieczny jajcus w bnet.pl
Pią, 24 Cze 2005, 16:00:03 CEST


On Fri, Jun 24, 2005 at 01:50:31PM +0200, Karol Kreński wrote:
> Witam,
> 
> "Connection tracking is accomplished with the state option in iptables".
> Czy w poniższym (--state) używam obciążającego zasoby connection
> tracking? 

Jak najbardziej.

> Moduł ip_conntrack jest załadowany.

I to wystarczy. Możesz nie mieć żadnych regółek, ale jak tylko moduł
ip_conntrack jest załadowany (załaduje się nawet przy "iptables -t nat -L"),
to wydajność routera spada gdzieś o dwa rzędy wielkości.

> Wydaje mi się, że widziałem komentarze "Wolno Ci działa bo masz pewnie
> conntrack włączony". Jeżeli istnieje lżejsza wersja / jeżeli można
> wyłączyć connection tracking w iptables to jak powinna wyglądać poniższa
> reguła input?
> 
> # output rules
> /usr/sbin/iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 195.187.79.45 2>/dev/null

Jak używasz SNAT (maskarada, czy dowolny inny NAT), to musisz użyć
conntrack. Inaczej się nie da.

> # input rules
> /usr/sbin/iptables -A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT 2>/dev/null

To też bez conntrack nie ma sensu. Ale bez innych regółek też nie.
A zamiast tego, to do pozostałych regółek (tylko dotyczących tcp) można
dodawać "--syn". Albo nawet w tej "! --syn". Daje to dużo mniejsze
możliwości niż "-m state", ale nie wymaga ip_conntrack, co na mocno
obciążonym routerze (tysiące hostów i dziesiątki megabitów pasma do
obsłużenia) ma olbrzymie znaczenie.


Pozdrowienia,
	Jacek



Więcej informacji o liście dyskusyjnej pld-users-pl