routing mit connmark

crane

New Member
Hey ho,

ich hab jetzt schon viel Google und das IRC befragt aber bisher immer noch nicht eine Lösung zu meinem Problem gefunden.

Ich markiere ein Paket mittels iptables und connmark und will das jedes Paket was zu dieser Verbindung gehört über tap0 raus geschickt wird und nicht über eth0.

Hier mal meine Configs und Rules:

Code:
===== iptables-save ===== 
# Generated by iptables-save v1.4.8 on Sun Jul  1 16:25:39 2012 
*mangle 
:PREROUTING ACCEPT [112271:8852141] 
:INPUT ACCEPT [112271:8852141] 
:FORWARD ACCEPT [0:0] 
:OUTPUT ACCEPT [96884:7942207] 
:POSTROUTING ACCEPT [96884:7942207] 
COMMIT 
# Completed on Sun Jul  1 16:25:39 2012 
# Generated by iptables-save v1.4.8 on Sun Jul  1 16:25:39 2012 
*nat 
:PREROUTING ACCEPT [13427:1050239] 
:POSTROUTING ACCEPT [2366:170399] 
:OUTPUT ACCEPT [2366:170399] 
-A PREROUTING -m state --state RELATED,ESTABLISHED -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff  
-A PREROUTING -i tap0 -m state --state NEW -j CONNMARK --set-xmark 0x4aa/0xffffffff  
-A PREROUTING -m connmark --mark 0x4aa -j MARK --set-xmark 0x4aa/0xffffffff  
COMMIT 
# Completed on Sun Jul  1 16:25:39 2012 
# Generated by iptables-save v1.4.8 on Sun Jul  1 16:25:39 2012 
*filter 
:INPUT ACCEPT [16524:1406599] 
:FORWARD ACCEPT [0:0] 
:OUTPUT ACCEPT [15108:1226503] 
:fail2ban-ssh - [0:0] 
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh  
-A INPUT -m mark --mark 0x4aa -j LOG --log-prefix "MARKED INPUT: "  
-A OUTPUT -m state --state RELATED,ESTABLISHED -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff  
-A OUTPUT -m mark --mark 0x4aa -j LOG --log-prefix "MARKED OUTPUT: "  
-A fail2ban-ssh -j RETURN  
COMMIT 
# Completed on Sun Jul  1 16:25:39 2012 


===== cat /etc/iproute2/rt_tables ===== 
# 
# reserved values 
# 
255    local 
254    main 
253    default 
0    unspec 
# 
# local 
# 
#1    inr.ruhep 
201 tap0.out 


===== ip rule ls ===== 
0:    from all lookup local  
32765:    from all fwmark 0x4aa lookup tap0.out  
32766:    from all lookup main  
32767:    from all lookup default  


===== ip route show table tap0.out ===== 
default via 10.8.0.2 dev tap0 


===== ip route ls ===== 
10.8.0.0/24 dev tap0  proto kernel  scope link  src 10.8.0.1  
10.8.1.0/24 dev tap1  proto kernel  scope link  src 10.8.1.1  
[...]


Aber irgendwie haut das hinten und vorne nicht hin... Ich sehe in /var/log/messages dank meiner Logrule in iptables das die Pakete richtig markiert werden. Aber leider greift das routing nicht. :(
 
Fehler gefunden...

Netfilter packet flow

Wenn man sich mal diese schicke Grafik anschaut sieht man das ich in der falschen Table gearbeitet habe... Die Regeln aus mangle PREROUTING raus und in mangle OUTPUT rein und siehe da, es klappt. ;)
 
Back
Top