Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Jan 2009 07:04:35 +0100
From:      Max Laier <max@love2party.net>
To:        freebsd-net@freebsd.org
Cc:        jmaps-fbsdnet@fireburns.net
Subject:   Re: Multiple ISP routing by port
Message-ID:  <200901270704.36034.max@love2party.net>
In-Reply-To: <20090127051809.GA21017@fireburns.net>
References:  <20090127051809.GA21017@fireburns.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 27 January 2009 06:18:09 jmaps-fbsdnet@fireburns.net wrote:
> I've read through what I could find in this list and also in the top 50
> results on google... I can't find anything that'll actually make this work.
>
> My DSL ISP is too far away to give me anything faster than 1.5mbps down. In
> despiration I signed up for comcast to use for bulk traffic.
>
> Thus, I want to route critical traffic (22, 25, 53, (maybe) 80, 443)
> through the DSL provider and the rest through cable.
>
> I really feel like this should be possible with PF with something like:
>
> nat on $dsl_if from ($int_if:network) to any port $dslports -> ($dsl_if)
> nat on $cbl_if from ($int_if:network) to any -> ($cbl_if)
>
> or
>
> pass in quick on $int_if route-to { ($dsl_if $dsl_gw) } proto { tcp udp }
> from ($int_if:network) to any port $dslports
>
> Neither (or both) seem to do it. All traffic ends up getting routed through
> whichever ISP i have set as the default route.

Take a look at: http://www.openbsd.org/faq/pf/pools.html#outgoing

You are probably missing the following part of the setup:
| To ensure that packets with a source address belonging to $ext_if1 are 
| always routed to $ext_gw1 (and similarly for $ext_if2 and $ext_gw2), the 
| following two lines should be included in the ruleset:
|
|    pass out on $ext_if1 route-to ($ext_if2 $ext_gw2) from $ext_if2 \
|       to any
|    pass out on $ext_if2 route-to ($ext_if1 $ext_gw1) from $ext_if1 \
|       to any 

This obviously has to be adapted for you specific setup - but in general this 
works as expected.

> Now, I hear i can go over to linux and just configure both default routes
> at the same time (trivial with iproute2). But I'd rather avoid that if at
> all possible.
>
> Is there some trick I'm missing? Does quagga (bgpd) allow for this kind of
> routing scheme?

-- 
/"\  Best regards,                      | mlaier@freebsd.org
\ /  Max Laier                          | ICQ #67774661
 X   http://pf4freebsd.love2party.net/  | mlaier@EFnet
/ \  ASCII Ribbon Campaign              | Against HTML Mail and News



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200901270704.36034.max>