I really believe this is a BUG, tell me if I'm wrong please.

If I add a routing info in adsl table that forces *all* packets for test_ip
to go throught isdn router I do see icmp reply.  

If I don't add 'ip route add host IP ...' the packets go the same way
(becouse of 'ip rule fwmark staff' + ip -t mangle...) but then they don't
show up (ie: they come back, but are discarded, as explained below)


sandro
*%-/


>    when pinging a test host I see 'icmp reply' getting back with tcpdump but
>    ping doesn't show them. What is in the middle (between tcpdump and ping)? 
>    
> 
> 
>    The setup
>    ---------
> 
>    I have a firewall with 2 gateways, adsl and isdn. Main gateway is via
>    adsl, backup via isdn. I setup 2 table 'adsl' and 'isdn'. You can find a
>    description below.
> 
>    I made a script to test both tables. That mainly
>       1. adds an 
>          iptables -t mangle -A OUTPUT -d my_test_ping_node -j MARK --set-mark 
> 3
>       2. adds:
>          ip rule add fwmark 3 table isdn
>       3. ip route flush cloned
>       4. ping to my_test_ping_node (here 217.27.90.70)
> 
> 
>     I correctly obtain that ping packets go to the router, reach the test,
>     get back to the interface... but ping doesn't show anything
> 
> 
>     I see them w/ tcpdump on the firewall:
> 
> 12:42:00.671314 IP 192.168.111.1 > 217.27.90.70: icmp 64: echo request seq 1
> 12:42:00.720840 IP 217.27.90.70 > 192.168.111.1: icmp 64: echo reply seq 1
>     
>     I'm sure i'm not firewalling (I use log, and nothing gets logged). If I
>     change default route to isdn, ping works correctly.
> 
>     This is not the first time I get into this situation, but I never
>     understood what solved it.
> 
>     I'm convinced it is a routing problem, but I'm clueless: what can it be in
>     between the packet as seen by tcpdump and the fact that ping shows it?
> 
>     Why should the kernel fail understanding it is for itself?
> 
>     Is there a way to see which rule a packet is really using?
> 
>     Thanks a lot for any possible explanation
>     sandro 
>     *:-)
> 
> 
>     lo:        127.0.0.1/8
> [eth0]:
>   eth1:   192.168.11.254/24
>   eth2:     80.20.60.252/29  ==> GW 80.20.60.249 - main adsl
>   eth3:    192.168.111.1/24  ==> GW 192.168.111.254 - isdn
> [eth4]:
> 
> ### TABLE main:
> 
> 80.20.60.248/29 dev eth2  proto kernel  scope link  src 80.20.60.252
> 192.168.111.0/24 dev eth3  proto kernel  scope link  src 192.168.111.1
> 192.168.11.0/24 dev eth1  proto kernel  scope link  src 192.168.11.254
> default via 80.20.60.249 dev eth2
> 
> ### TABLE adsl:
> 80.20.60.248/29 dev eth2  scope link  src 80.20.60.252
> 192.168.111.0/24 dev eth3  scope link  src 192.168.111.1
> 192.168.11.0/24 dev eth1  scope link  src 192.168.11.254
> default via 80.20.60.249 dev eth2
> 
> ### TABLE isdn:
> 80.20.60.248/29 dev eth2  scope link  src 80.20.60.252
> 192.168.111.0/24 dev eth3  scope link  src 192.168.111.1
> 192.168.11.0/24 dev eth1  scope link  src 192.168.11.254
> default via 192.168.111.254 dev eth3
> ### RULES:
> 
> 0:      from all lookup local
> 39:     from all fwmark 0x3 lookup isdn        
> 40:     from 80.20.60.248/29 lookup adsl
> 41:     from 192.168.111.0/24 lookup isdn
> 48:     from 192.168.11.0/24 lookup adsl
> 50:     from all iif eth3 lookup isdn
> 52:     from all iif eth2 lookup adsl
> 32766:  from all lookup main
> 32767:  from all lookup default
> 
> 
> 
> 
> -- 
> Sandro Dentella  *:-)
> e-mail: [EMAIL PROTECTED] 
> http://www.tksql.org                    TkSQL Home page - My GPL work
> -
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to [EMAIL PROTECTED]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
Sandro Dentella  *:-)
e-mail: [EMAIL PROTECTED] 
http://www.tksql.org                    TkSQL Home page - My GPL work
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to