How two bridge two DSL lines
by Jean-Yves Avenard » Sat, 05 Feb 2005 11:47:50 GMT
Hello
SHDSL not being available in our area we've been offered by our ISP to
use two 512/512 SDSL lines to make a 1mbit symmetrical link.
They recommend the use of a cisco router that will combine the two links
into one by balancing the packets between the two connections (e.g. 1
packet goes on DSL1, the next one on DSL2 etc...).
On the ISP side they would also do the same thing by sending IP packets
across the two DSL link.
Now the question is, would FreeBSD allow me to do this? I found some
references using the Balance program ( http://www.**--****.com/ ) or
using IPFW rules and probablity match.
I don't really like any of those solutions; balance only works with TCP
traffic and IPFW rules means that should one link goes down I'll be
stuck with a 512/512 link losing 50% of the packets.
Also FreeBSD not being RFC1122 compliant I'm not sure how it's possible
to set up two default gateway.
Any help or link will be appreciated. The ultimate goal is really to
have a 1mbit link only 1 mbit/s transfer over a single connection ; not
2x512kbit/s max.
Thank you in advance
Jean-Yves
Re: How two bridge two DSL lines
by Matt Pearce » Sat, 05 Feb 2005 14:23:02 GMT
See my Whirlpool response ;-)
http://www.**--****.com/ #r2
Matt.
Re: How two bridge two DSL lines
by jpd » Sat, 05 Feb 2005 20:42:24 GMT
Begin < XXXX@XXXXX.COM >
You could indeed just use a cisco. If you can get one cheapish, and
it helps keep your ISP happy, why not?
Use netgraph(4) to spread the load, maybe? Take a look at it and its
ng_one2many(4) node type. For an introduction, see
http://www.**--****.com/
--
j p d (at) d s b (dot) t u d e l f t (dot) n l .
Re: How two bridge two DSL lines
by per » Sun, 06 Feb 2005 07:39:32 GMT
In article < XXXX@XXXXX.COM > jpd
< XXXX@XXXXX.COM > writes:
Yes, I think netgraph is the "right" way to do this on FreeBSD. Even
"better" than ng_one2many(4) could be ng_fec(4) (only on 5.x it seems) -
does just what a Cisco does!:-) However it will probably not achieve the
desired goal of having a single session be able to use the full 1 Mbit,
since it should try to keep all packets for a given session on the same
link - round-robin (which ng_one2many does) can in general be pretty bad
as it may make packets arrive out of order, but is probably the only way
to achieve that goal. (It's certainly not guaranteed to do it though -
TCP may be very unhappy with out-of-order packets, resulting in unneeded
retransmits and other throughput-reducing things.)
--Per Hedeland
XXXX@XXXXX.COM
Re: How two bridge two DSL lines
by jpd » Sun, 06 Feb 2005 09:03:03 GMT
Begin <cu0tj4$1nhv$ XXXX@XXXXX.COM >
There's some patches floating around for 4.*, but I can't be arsed to
look them up ATM. And for a new setup it may be better to go 5.3.
Does cisco support the use of fec with a couple of xDSL devices in
between? *google* feh, cisco supports a myriad of ways to effect the
load balancing, not all of which preserve order. OTOH, while reading
cisco's explanation, it occurred to me that if one has cisco (or
generally, fec- and PAgP-capable) switches, one could vlan out three
ports, two of which aggregated to the xDSL modems. After that comes
the FreeBSD box do to sundry routing stuff. The modems requiring PPPoE
convolutes this idea.
I'm inclined to tell tcp to shut up and deal with it--it's one of
it's features after all. As it happens, there's been some work on the
reassembly of tcp streams on FreeBSD recently, with rather positive
results. It might even be MFCed somewhere soonish. That probably
won't help much if the hosts aren't running FreeBSD -- routers don't
reassemble. One could circumvent this with a (caching?) proxy.
--
j p d (at) d s b (dot) t u d e l f t (dot) n l .
Re: How two bridge two DSL lines
by Jean-Yves Avenard » Tue, 08 Feb 2005 09:06:03 GMT
Hello
Thank you all for this help and references. Always good to know those stuff.
It is my understanding that the two DSL lines will be bridged either in
the DSLAM or at the ISP concentrator. Therefore out-of-order packets
shouldn't be an issue and no fragmented packets will ever reach the
internet. It's purely between me and my ISP.
I guess for the time-being I will have to find some pricing on the cisco
router.
Cheers
Jean-Yves
Re: How two bridge two DSL lines
by jpd » Tue, 08 Feb 2005 20:39:47 GMT
Begin < XXXX@XXXXX.COM >
^^^^^^^^^
<pedant> I keep on saying this too, much to my own chagrin: DSL already
stands for Digital Subscriber Line. </pedant>
Err, unless the link between you and ``the other side of the DSLs''
has another layer of ppp (eg, PPPoE), fragments _will_ get out to the
'net. Intermediate routers don't reassemble fragments.
Packets arriving out of order is something that can happen anytime, but
as some implementations are clearly worse at handling the phenomenon
than others, it pays to keep the percentage of packets that do arrive
out of order low, insofar that is possible.
Have to, no. But it is an option. The great thing about cisco is that you
can buy the same for years on end. The downside to that is that you'll be
paying the same inflated price for the entire span, if you buy from cisco.
--
j p d (at) d s b (dot) t u d e l f t (dot) n l .
Similar Threads:
1.two dsl connections, two routers, dual nics on linux box , want to run two websites
Hello,
I have two dsl connections, with one public ip on each. I have a linux
box with two nic cards.
xx.xx.xx.xx(WAN)---ROUTER(LAN23.123.45.110) ---- MYLINUX
(23.123.45.107) eth1
yy.yy.yy.yy(WAN)---ROUTER(LAN192.182.1.1) ---- MYLINUX
(192.168.1.100) eth0
I have apache listening on both interfaces.
Problem:
1. How do I make the packets route back to the gateway from which they
originate.
Currently the gateway marked as "default" is able to serve content
from the apache. The other one cannot.
I tried adding static routes, but that didn't work.
Any help is appreciated.
Thanks
Jay
---------------------------------------------------------------------
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref
Use Iface
adsl-23-123-45- adsl-23-123-45- 255.255.255.255 UGH 0 0
0 eth1
23.123.45.0 * 255.255.255.0 U 0 0
0 eth1
192.168.1.0 * 255.255.255.0 U 0 0
0 eth0
loopback * 255.0.0.0 U 0 0
0 lo
default 192.168.1.1 0.0.0.0 UG 1 0
0 eth0
eth0 Link encap:Ethernet HWaddr 00:0D:87:57:A0:DE
inet addr:192.168.1.100 Bcast:192.168.1.255
Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3060612 errors:0 dropped:0 overruns:0 frame:0
TX packets:3577217 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:1566982235 (1494.3 Mb) TX bytes:1126616733 (1074.4
Mb)
Interrupt:11 Base address:0xe000
eth1 Link encap:Ethernet HWaddr 00:40:05:39:0E:EA
inet addr:23.123.45.107 Bcast:68.123.24.255
Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:90635 errors:0 dropped:0 overruns:0 frame:0
TX packets:31082 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:23017102 (21.9 Mb) TX bytes:13283751 (12.6 Mb)
Interrupt:11 Base address:0xe000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:11888 errors:0 dropped:0 overruns:0 frame:0
TX packets:11888 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:6920794 (6.6 Mb) TX bytes:6920794 (6.6 Mb)
2.Two screens, two kbds, two users ?
3.Compare two files line-by-line
I'm not sure if there is an easy way to do this, but I thought it was
worth asking. I have two files which contain filenames and sum data. I
would like to compare the files line-by-line and output filenames for
which the sum data is different to a third file. I have no idea how I
can read two files in parallel for comparison, though. Shell scripts
(mine, anyway) are very linear -- they don't exactly lend themselves
to multitasking. Anyone have any pointers?
4.merge two files line by line...
I have 2 files:
file1:
x y z
a b c
file 2:
12:00
12:01
12:02
I want to merge these files such that the output looks like:
x y z
a b c
12:00
x y z
d c f
12:01
x y z
t h y
12:02
Is this easily possible?
Thanks in advance
5.get all lines between two lines
I have a huge file (more than 8 million lines), it is a log file and
each message body starts with timestamp information. Sample:
2008-09-19-06.05.40.704851-240 I516287092C387 LEVEL: Severe
PID : 413900 TID : 1 PROC : db2agent (DB)
0
.
.
.
.
.
.
.
2008-09-20-06.05.40.704851-240 I516287092C387 LEVEL: Severe
.
.
.
.
I would like to get details between two timestamps, like I need all
lines saved to a new file that are between 2008-09-19-06.05.40.704851
and 2008-09-20-06.05.40.704851.
could someone point me to right direction on how I should approach
this? Thanks!
6. Generate two lines code for each line
7. Using two DSL modems
8. Load Balancing between two DSL Modems