Skip to content

Commit 80ef8a7

Browse files
committed
Closed issues:
#1: iptables' state module is obsolete #2: Set /proc/sys/net/ipv4/ip_forward = 1
1 parent f924ca3 commit 80ef8a7

4 files changed

Lines changed: 21 additions & 18 deletions

File tree

README.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,11 @@ Documentation is included as comments in the output, here is a dump using the st
143143
# --sport, etc.
144144
145145
#Example Provider 1
146-
#[0:0] -A PREROUTING -i eth0 -m state --state NEW -p tcp --dport XXX -j CONNMARK --set-mark 1
146+
#[0:0] -A PREROUTING -i eth0 -m conntrack --ctstate NEW -p tcp --dport XXX -j CONNMARK --set-mark 1
147147
#Example Provider 2
148-
#[0:0] -A PREROUTING -i eth0 -m state --state NEW -p tcp --dport XXX -j CONNMARK --set-mark 2
148+
#[0:0] -A PREROUTING -i eth0 -m conntrack --ctstate NEW -p tcp --dport XXX -j CONNMARK --set-mark 2
149149
#Example Provider 3
150-
#[0:0] -A PREROUTING -i eth0 -m state --state NEW -p tcp --dport XXX -j CONNMARK --set-mark 3
150+
#[0:0] -A PREROUTING -i eth0 -m conntrack --ctstate NEW -p tcp --dport XXX -j CONNMARK --set-mark 3
151151
152152
#Mark packets with the outgoing interface:
153153
#
@@ -165,21 +165,21 @@ Documentation is included as comments in the output, here is a dump using the st
165165
#New inbound connections: mark the connection with the incoming interface.
166166
167167
#Example Provider 1
168-
[0:0] -A PREROUTING -i eth1 -m state --state NEW -j CONNMARK --set-mark 1
168+
[0:0] -A PREROUTING -i eth1 -m conntrack --ctstate NEW -j CONNMARK --set-mark 1
169169
#Example Provider 2
170-
[0:0] -A PREROUTING -i eth2 -m state --state NEW -j CONNMARK --set-mark 2
170+
[0:0] -A PREROUTING -i eth2 -m conntrack --ctstate NEW -j CONNMARK --set-mark 2
171171
#Example Provider 3
172-
[0:0] -A PREROUTING -i eth3 -m state --state NEW -j CONNMARK --set-mark 3
172+
[0:0] -A PREROUTING -i eth3 -m conntrack --ctstate NEW -j CONNMARK --set-mark 3
173173
174174
#New outbound connections: mark the connection with the outgoing interface
175175
#(chosen by the multipath routing).
176176
177177
#Example Provider 1
178-
[0:0] -A POSTROUTING -o eth1 -m state --state NEW -j CONNMARK --set-mark 1
178+
[0:0] -A POSTROUTING -o eth1 -m conntrack --ctstate NEW -j CONNMARK --set-mark 1
179179
#Example Provider 2
180-
[0:0] -A POSTROUTING -o eth2 -m state --state NEW -j CONNMARK --set-mark 2
180+
[0:0] -A POSTROUTING -o eth2 -m conntrack --ctstate NEW -j CONNMARK --set-mark 2
181181
#Example Provider 3
182-
[0:0] -A POSTROUTING -o eth3 -m state --state NEW -j CONNMARK --set-mark 3
182+
[0:0] -A POSTROUTING -o eth3 -m conntrack --ctstate NEW -j CONNMARK --set-mark 3
183183
184184
COMMIT
185185
@@ -245,9 +245,9 @@ COMMIT
245245
#This is just a very basic example, add your own rules for the INPUT chain.
246246
247247
[0:0] -A INPUT -i lo -j ACCEPT
248-
[0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
248+
[0:0] -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
249249
250-
[0:0] -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
250+
[0:0] -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
251251
252252
[0:0] -A FORWARD -i eth0 -o eth1 -j LAN_WAN
253253
[0:0] -A FORWARD -i eth0 -o eth2 -j LAN_WAN

lib/fault_tolerant_router/generate_iptables.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ def generate_iptables
2323
END
2424
UPLINKS.each_with_index do |uplink, i|
2525
puts "##{uplink[:description]}"
26-
puts "#[0:0] -A PREROUTING -i #{LAN_INTERFACE} -m state --state NEW -p tcp --dport XXX -j CONNMARK --set-mark #{BASE_FWMARK + i}"
27-
puts "#[0:0] -A PREROUTING -i #{DMZ_INTERFACE} -m state --state NEW -p tcp --dport XXX -j CONNMARK --set-mark #{BASE_FWMARK + i}" if DMZ_INTERFACE
26+
puts "#[0:0] -A PREROUTING -i #{LAN_INTERFACE} -m conntrack --ctstate NEW -p tcp --dport XXX -j CONNMARK --set-mark #{BASE_FWMARK + i}"
27+
puts "#[0:0] -A PREROUTING -i #{DMZ_INTERFACE} -m conntrack --ctstate NEW -p tcp --dport XXX -j CONNMARK --set-mark #{BASE_FWMARK + i}" if DMZ_INTERFACE
2828
end
2929
puts <<END
3030
@@ -49,7 +49,7 @@ def generate_iptables
4949
END
5050
UPLINKS.each_with_index do |uplink, i|
5151
puts "##{uplink[:description]}"
52-
puts "[0:0] -A PREROUTING -i #{uplink[:interface]} -m state --state NEW -j CONNMARK --set-mark #{BASE_FWMARK + i}"
52+
puts "[0:0] -A PREROUTING -i #{uplink[:interface]} -m conntrack --ctstate NEW -j CONNMARK --set-mark #{BASE_FWMARK + i}"
5353
end
5454
puts <<END
5555
@@ -59,7 +59,7 @@ def generate_iptables
5959
END
6060
UPLINKS.each_with_index do |uplink, i|
6161
puts "##{uplink[:description]}"
62-
puts "[0:0] -A POSTROUTING -o #{uplink[:interface]} -m state --state NEW -j CONNMARK --set-mark #{BASE_FWMARK + i}"
62+
puts "[0:0] -A POSTROUTING -o #{uplink[:interface]} -m conntrack --ctstate NEW -j CONNMARK --set-mark #{BASE_FWMARK + i}"
6363
end
6464
puts <<END
6565
@@ -135,9 +135,9 @@ def generate_iptables
135135
#This is just a very basic example, add your own rules for the INPUT chain.
136136
137137
[0:0] -A INPUT -i lo -j ACCEPT
138-
[0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
138+
[0:0] -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
139139
140-
[0:0] -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
140+
[0:0] -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
141141
142142
END
143143
UPLINKS.each do |uplink|

lib/fault_tolerant_router/monitor.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ def monitor
6262
command "ip route del table #{BASE_TABLE + i} &> /dev/null"
6363
end
6464

65+
#enable IP forwarding
66+
command 'echo 1 > /proc/sys/net/ipv4/ip_forward'
67+
6568
#disable "reverse path filtering" on the uplink interfaces
6669
command 'echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter'
6770
UPLINKS.each do |uplink|
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
module FaultTolerantRouter
2-
VERSION = '1.0.0'
2+
VERSION = '1.0.1'
33
end

0 commit comments

Comments
 (0)