Guest User!

You are not Sophos Staff.

[CONFIRMED] [7.385] Multipath rules issue

Hi,

we have try the new features "MULTIPATH RULES & UPLINK BALANCING....." on a ASG appliance 220 with OS v 7.380 for testing.

We are using two different adsl lines, first bound on eth1 and second on eth2. (eth0 is for internal network)

The configuration we used in our case is as follows :

A) Uplink Balancing : 

Type: Multipath
Interfaces: eth1 (first)
                eth2 (second)
Automatic monitoring: ON

--------------------------------------------------------------

B) Multipath rules :

1- Internal Network --> Any --> Any --> ADSL1 (eth1, itf.persistence by interface) 

2- Internal Network --> Http --> Any --> ADSL2 (eth2, itf.persistence by interface)

--------------------------------------------------------------

First only rule 1 is active and we see that correctly traffic comes through ADSL1 interface.

After that we have activated the second rule and also correctly we see that now traffic went out via ADSL2 interface.

Then we deactivated second rule.
Now we aspect that traffic go out through ADSL1 again but strangely it still leave via ADSL2!!
We disabled both rules but it persists to go out through ADSL2!

Can some one help us?

many thanx
  • Hi there, 

    the magic is that if traffic came in through adsl2, it also will go out adsl2 automagically, even without a multipath rule.

    The multipath rule only affects outbound traffic coming from the firewall or the internal network. 

    i hope that explains it. 

    regards
    Gert
  • Thanks Gert, we know this.

    We also know that, if ADSL1 interface go down, automagically (as you say) traffic switch to ADSL2 and this sound good...

    But we want to get something like this :

    all http traffic from internal network must go out through ADSL1 and

    everything else traffic (FTP,SMTP,VOICE,POP,ecc.) to ADSL2.

    Is this possible with Multipath rules or not?

    We also want to decide when http traffic must exit via ADSL1 or not.
    Is this possible enabling/disabling an appropriate multipath rule?

    Do you have any advice for us?

    thx
  • The order of the multipath rules is important!
    If the first rule matches, the second will not apply!

    Therefore move the more specific rules to top and the less specific ones to the bottom.
    In your case:

    1- Internal Network --> Http --> Any --> ADSL2 (eth2, itf.persistence by interface)
    2- Internal Network --> Any --> Any --> ADSL1 (eth1, itf.persistence by interface)

    This should use ADSL2 only for HTTP traffic coming from Internal Network
    and all other traffice from Internal network goes over ADSL1.

    If no multipath rule match, e.g. other internal hosts not within Internal Network,
    the default multipath rule will apply:

    Traffic is balanced over all availible interfaces, interface persistence by source IP address.
  • Perfect!

    This works. Now http traff go out on ADSL2 and the rest through ADSL1.

    But why if I disable the 1st rule 
    1- Internal Network --> Http --> Any --> ADSL2 (eth2, itf.persistence by interface)] traffic doesn't go out via ADSL1 ??

    It continue to goes over ADSL2..
    Seem that 2nd rule doesn't match!
  • After disabling the first rule, whats in /proc/net/multipath, "cat /proc/net/multipath" ?

    Note: This only affects new connecitons, not already established ones.
  • With 1st rule active I have this /proc/net/multipath :

    [00] proto 6 src 192.168.0.0-192.168.0.255 port 0-65535 dst 0.0.0.0-0.0.0.0 port 8080-8080 :: static 2
    [01] proto 6 src 192.168.0.0-192.168.0.255 port 0-65535 dst 0.0.0.0-0.0.0.0 port 80-80 :: static 2
    [02] proto 6 src 192.168.0.0-192.168.0.255 port 0-65535 dst 0.0.0.0-0.0.0.0 port 3128-3128 :: static 2
    [03] proto 6 src 192.168.0.0-192.168.0.255 port 0-65535 dst 0.0.0.0-0.0.0.0 port 443-443 :: static 2
    [04] proto 0 src 192.168.0.0-192.168.0.255 port 0-0 dst 0.0.0.0-0.0.0.0 port 0-0 :: static 1

    and http traffic goes over ADSL2

    Without 1st rule active I have :

    [00] proto 0 src 192.168.0.0-192.168.0.255 port 0-0 dst 0.0.0.0-0.0.0.0 port 0-0 :: static 1


    but if I go for example to What Is My IP Address? - IP Address Lookup, Internet Speed Test, IP Info, plus more, I see again the ip address of my ADSL2 !
  • You can enable debugging of multipath rules with the following command:
    "echo debug > /proc/net/multipath"

    or disable it again with:
    "echo nodebug > /proc/net/multipath"

    All debug messages go to /var/log/kernel.log. Can you see that the rule is matching and the source IP address is correct?
  • Other mysterious things are :

    If UPLINK is enabled in failover mode on dashboard I see that eth2 is in state "STANDBY" and link is in "ERROR".

    Also if UPLINK is enabled, but in multipath mode, on dashboard I see that eth2 link is in "ERROR" again and state in "UP" this time.

    Nevertheless, I can ping successfully from firewall my router attached to eth2 and I can also ping via eth2 outside (ping -I eth2 some.thing.outside) in both case. This means that link is "UP".
    So why asg dashboard tell me that it is in ERROR??

    Could this affects the multipath rules functionality?

    Only if I disable UPLINK feature on dashboard I can see eth2 link "UP" ....

    see attachments...

    [:S]
  • ok 
    Debugging multipath I got a lot of useful infos

    this is a part of kernel.log 

    2009:01:20-11:42:06 BETA kernel: [ASG MultiPath] [2] 192.168.0.30:0 -> 217.199.191.101:80 proto 6
    2009:01:20-11:42:06 BETA kernel: [ASG MultiPath] We got a winner! Rule 1

    this is ok. If traffic is HTTP, rule 1 is matched so traffic goes over ADSL1

    but then I find this :

    2009:01:20-11:53:58 BETA kernel: [ASG MultiPath] [2] 192.168.0.30:0 -> X.X.X.X:21 proto 6
    2009:01:20-11:53:58 BETA kernel: [ASG MultiPath] We got a winner! Rule 4
    2009:01:20-11:53:58 BETA kernel: [ASG MultiPath] Rule 4 skipped due negative interface status!
    2009:01:20-11:53:58 BETA kernel: [ASG MultiPath] [2] 192.168.0.30:0 -> X.X.X.X:21 proto 6
    2009:01:20-11:53:58 BETA kernel: [ASG MultiPath] We got a winner! Rule 4
    2009:01:20-11:53:58 BETA kernel: [ASG MultiPath] Rule 4 skipped due negative interface status!

    I try to make a ftp session with an our external ftp server.
    The rule 4 is matched but SKIPPED DUE NEGATIVE INTERFACE STATUS!

    Infact my eth2 LINK on dashboard is shown as in ERROR...! [:O]