BCP38: don't slow down established connections (#2838)
authorTörök Edwin <redacted>
Sun, 12 Jun 2016 13:09:05 +0000 (16:09 +0300)
committerToke Høiland-Jørgensen <redacted>
Sun, 12 Jun 2016 13:09:05 +0000 (15:09 +0200)
Enabling BCP38 causes an iptables rule to be inserted before this rule:
ACCEPT     all  --  anywhere             anywhere             ID:66773300 ctstate RELATED,ESTABLISHED

This makes all forwarded packets go through the BCP38 ipset match, which slows
down download speed from 440 Mbit/s to 340 Mbit/s.

Only apply BCP38 match rules if state is NEW.

Bump package version.

Signed-off-by: Török Edwin <redacted>
net/bcp38/Makefile
net/bcp38/files/run.sh

index 280bcc504f817a93e3c7a9b1dfa3a0506dbae980..9ca19109e1f9ff0a021834d309c668c8a69f1492 100644 (file)
@@ -6,7 +6,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=bcp38
-PKG_VERSION:=4
+PKG_VERSION:=5
 PKG_RELEASE:=1
 PKG_LICENCE:=GPL-3.0+
 
index bafdf3bb86cc6056e3ca7773e9c3cae0faf14fa2..00d50342e0e2e0d55a6a7090ac77cb76b566a179 100755 (executable)
@@ -72,9 +72,9 @@ setup_iptables()
        iptables -N "$IPTABLES_CHAIN" 2>/dev/null
        iptables -F "$IPTABLES_CHAIN" 2>/dev/null
 
-       iptables -I output_rule -j "$IPTABLES_CHAIN"
-       iptables -I input_rule -j "$IPTABLES_CHAIN"
-       iptables -I forwarding_rule -j "$IPTABLES_CHAIN"
+       iptables -I output_rule -m state --state NEW -j "$IPTABLES_CHAIN"
+       iptables -I input_rule -m state --state NEW -j "$IPTABLES_CHAIN"
+       iptables -I forwarding_rule -m state --state NEW -j "$IPTABLES_CHAIN"
 
        # always accept DHCP traffic
        iptables -A "$IPTABLES_CHAIN" -p udp --dport 67:68 --sport 67:68 -j RETURN
@@ -90,9 +90,9 @@ destroy_ipset()
 
 destroy_iptables()
 {
-       iptables -D output_rule -j "$IPTABLES_CHAIN" 2>/dev/null
-       iptables -D input_rule -j "$IPTABLES_CHAIN" 2>/dev/null
-       iptables -D forwarding_rule -j "$IPTABLES_CHAIN" 2>/dev/null
+       iptables -D output_rule -m state --state NEW -j "$IPTABLES_CHAIN" 2>/dev/null
+       iptables -D input_rule -m state --state NEW -j "$IPTABLES_CHAIN" 2>/dev/null
+       iptables -D forwarding_rule -m state --state NEW -j "$IPTABLES_CHAIN" 2>/dev/null
        iptables -F "$IPTABLES_CHAIN" 2>/dev/null
        iptables -X "$IPTABLES_CHAIN" 2>/dev/null
 }
git clone https://git.99rst.org/PROJECT