I've made a handful of changes based up on Chris and Willy's suggestions,
which I've included below.  This avoids the nf_conntrack errors in the logs.

I would like to skip nf_conntrack altogether.  I've been digging around to
try to learn how to do that, but I now admit I don't know how.  I can't just
drop the module, as it's currently in use.

[mmar...@w1 w1]$ sudo modprobe -n -r nf_conntrack
FATAL: Module nf_conntrack is in use.

What do I need to change in my iptables rules to pave the way for removing
this module.  Once I've got that straight, how do I then disable the module.
I'm happy to get an RTFM response if I'm just being stupid. Point me at the
right M ;)

Michael Marano


---- iptables rules script ---------------
#!/bin/sh

sudo /sbin/iptables -F
sudo /sbin/iptables -A INPUT -i lo -j ACCEPT
sudo /sbin/iptables -A INPUT -i ! lo -d 127.0.0.0/8 -j REJECT
sudo /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo /sbin/iptables -A OUTPUT -j ACCEPT

# don't track incoming or outgoing port 80
sudo /sbin/iptables -t raw -A PREROUTING -p tcp --dport 80 -j NOTRACK
sudo /sbin/iptables -t raw -A PREROUTING -p tcp --dport 8080 -j NOTRACK
sudo /sbin/iptables -t raw -A PREROUTING -p tcp --dport 81 -j NOTRACK

# don't track traffic starting from the private ip
sudo /sbin/iptables -t raw -A PREROUTING     -p tcp -s 10.176.45.165 -j
NOTRACK

# these may not actually be useful, but I'm leaving them in.
sudo /sbin/iptables -t raw -A OUTPUT     -p tcp --sport 80 -j NOTRACK
sudo /sbin/iptables -t raw -A OUTPUT     -p tcp --sport 8080 -j NOTRACK
sudo /sbin/iptables -t raw -A OUTPUT     -p tcp --sport 81 -j NOTRACK

sudo /sbin/iptables -A INPUT -p tcp -m state --state NEW --dport 22 -j
ACCEPT
sudo /sbin/iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
sudo /sbin/iptables -A INPUT -j REJECT
sudo /sbin/iptables -A FORWARD -j REJECT
---- iptables rules script ---------------



---- additions to sysctl.conf ---------------
#
# TCP tuning 
#
# from 
http://agiletesting.blogspot.com/2009/03/haproxy-and-apache-performance-tuni
ng.html
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 1024 65023
net.ipv4.tcp_max_syn_backlog = 10240
net.ipv4.tcp_max_tw_buckets = 400000
net.ipv4.tcp_max_orphans = 60000
net.ipv4.tcp_synack_retries = 3
net.core.somaxconn = 40000

# from  
http://serverfault.com/questions/11106/best-linux-network-tuning-tips
net.ipv4.route.max_size = 262144
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 18000
net.ipv4.neigh.default.gc_thresh1 = 1024
net.ipv4.neigh.default.gc_thresh2 = 2048
net.ipv4.neigh.default.gc_thresh3 = 4096
net.netfilter.nf_conntrack_max = 128000
net.netfilter.nf_conntrack_expect_max = 4096

# additions based on questions to the haproxy mailing list
# http://www.mail-archive.com/haproxy@formilux.org/msg01321.html
net.ipv4.tcp_timestamps = 1
net.core.netdev_max_backlog = 40000
# these were all lower than the default values already set, so I left them
out
#net.ipv4.tcp_rmem = 4096 8192 16384
#net.ipv4.tcp_wmem = 4096 8192 16384
#net.ipv4.tcp_mem = 65536 98304 131072

---- additions to sysctl.conf ---------------



> From: <ch...@sargy.co.uk>
> Date: Wed, 07 Oct 2009 11:24:23 +0100
> To: Michael Marano <mmar...@futureus.com>
> Cc: <haproxy@formilux.org>
> Subject: Re: Kernel tuning recommendations
> 
> Here is the adjusted IPv4 settings I use on my haproxy box - I picked
> these up from around the web, and they seem to work for me, not that
> they are in use on a particularly high volume site currently.
> 
> Chris
> 
> net.ipv4.tcp_tw_reuse = 1
> net.ipv4.ip_local_port_range = 1024 65023
> net.ipv4.tcp_max_syn_backlog = 10240
> net.ipv4.tcp_max_tw_buckets = 400000
> net.ipv4.tcp_max_orphans = 60000
> net.ipv4.tcp_synack_retries = 3
> net.ipv4.tcp_max_syn_backlog = 45000
> net.ipv4.tcp_timestamps = 1
> net.ipv4.tcp_rmem = 4096 8192 16384
> net.ipv4.tcp_wmem = 4096 8192 16384
> net.ipv4.tcp_mem = 65536 98304 131072
> net.core.somaxconn = 40000
> net.core.netdev_max_backlog = 40000
> 
> 
> 
> Quoting Michael Marano <mmar...@futureus.com>:
> 
>> Subsequent load tests proved me wrong.  I¹m still getting the nf_conntrack
>> messages.  Perhaps I¹ve misconfigigured my iptables rules?
>> 
>> 
>> # bits of /var/log/messages
>> 
>> Oct  6 21:58:40 w1 kernel: [3718555.091684] printk: 2 messages suppressed.
>> Oct  6 21:58:40 w1 kernel: [3718555.091705] nf_conntrack: table full,
>> dropping packet.
>> Oct  6 21:58:41 w1 kernel: [3718290.353966] device eth0 entered promiscuous
>> mode
>> Oct  6 21:58:43 w1 kernel: [3718558.070993] nf_conntrack: table full,
>> dropping packet.
>> Oct  6 21:58:44 w1 kernel: [3718559.097679] nf_conntrack: table full,
>> dropping packet.
>> 
>> 
>> I¹ve got this in a shell script:
>> 
>> 
>> ----
>> #!/bin/sh
>> 
>> sudo /sbin/iptables -F
>> sudo /sbin/iptables -A INPUT -i lo -j ACCEPT
>> sudo /sbin/iptables -A INPUT -i ! lo -d 127.0.0.0/8 -j REJECT
>> sudo /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
>> sudo /sbin/iptables -A OUTPUT -j ACCEPT
>> 
>> # tell iptables to skip tracking on ports haproxy is monitoring
>> sudo /sbin/iptables -t raw -A PREROUTING -p tcp --dport 80 -j NOTRACK
>> sudo /sbin/iptables -t raw -A PREROUTING -p tcp --dport 8080 -j NOTRACK
>> 
>> # ... Rules to allow stuff...
>> 
>> sudo /sbin/iptables -A INPUT -j REJECT
>> sudo /sbin/iptables -A FORWARD -j REJECT
>> ------
>> 
>> But then when I list my tables, I¹m not seeing anything about the  NOTRACK
>> rules.
>> 
>> -----
>> Chain INPUT (policy ACCEPT)
>> target     prot opt source               destination
>> ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
>> REJECT     all  --  0.0.0.0/0            127.0.0.0/8         reject-with
>> icmp-port-unreachable
>> ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state
>> RELATED,ESTABLISHED
>> ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:81
>> ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80
>> ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:443
>> ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:8080
>> 
>> ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp
>> dpt:22
>> ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 8
>> REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with
>> icmp-port-unreachable
>> 
>> Chain FORWARD (policy ACCEPT)
>> target     prot opt source               destination
>> REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with
>> icmp-port-unreachable
>> 
>> Chain OUTPUT (policy ACCEPT)
>> target     prot opt source               destination
>> ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
>> 
>> Chain RH-Firewall-1-INPUT (0 references)
>> target     prot opt source               destination
>> 
>> -----
>> 
>> 
>> 
>> 
>> Michael Marano
>> 
>> 
>> From: Michael Marano <mmar...@futureus.com>
>> Date: Tue, 06 Oct 2009 13:49:02 -0700
>> To: Stefan Johansson <phu...@hotmail.com>, <haproxy@formilux.org>
>> Conversation: Kernel tuning recommendations
>> Subject: Re: Kernel tuning recommendations
>> 
>> Stefan,
>> 
>> That seems to have eliminated any log messages in my staging environment
>> under a load test.  I think that will do the trick. Thanks for your help.
>> 
>> Any general recommendations for sysctl settings would still be appreciated.
>> This is the first time I¹ve had to tune the kernel settings so any guidance
>> will help.
>> 
>> Michael Marano
>> 
>> 
>> From: Stefan Johansson <phu...@hotmail.com>
>> Date: Tue, 6 Oct 2009 22:27:49 +0200
>> To: Michael Marano <mmar...@futureus.com>, <haproxy@formilux.org>
>> Subject: RE: Kernel tuning recommendations
>> 
>> iptables -t raw -A PREROUTING -p tcp --dport 80 -j NOTRACK
>> 
>> 
>> 
> 
> 
> 
> ----------------------------------------------------------------
> This message was sent using IMP, the Internet Messaging Program.
> 


Reply via email to