Re: Gigabit Linux Routers

2008-12-21 Thread Kevin Oberman
 Date: Sun, 21 Dec 2008 12:58:42 +0900
 From: Adrian Chadd adr...@creative.net.au
 
 On Sat, Dec 20, 2008, Ingo Flaschberger wrote:
 
  I'm not shure if this setup would ever be stable.
  also with ucarp tweaks.
  hopefully freebsd supports soon more than 1 route.
  
 
 FreeBSD, like all good open source projects, gets features supported when
 people code them up.
 
 So if you'd like to see FreeBSD support it, either code it up, or
 pay someone to code it up. Then everyone benefits. :)

I might mention that the development branch of FreeBSD (8-current) now
supports multiple routing tables, so it looks like it is on the
way. Note that these are being done for broader purposes than those
being discussed in this thread, but I believe that they will do most of
what is needed.

If you are interested, I'm sure Julian would appreciate testing and
input. 
-- 
R. Kevin Oberman, Network Engineer
Energy Sciences Network (ESnet)
Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab)
E-mail: ober...@es.net  Phone: +1 510 486-8634
Key fingerprint:059B 2DDF 031C 9BA3 14A4  EADA 927D EBB3 987B 3751


pgpPzYL8hfss2.pgp
Description: PGP signature


Re: Gigabit Linux Routers

2008-12-20 Thread Florian Weimer
* David Coulson:

 Comparing Imagestream and Vyatta to Juniper is crazy. The first two
 are software based platforms (with perhaps some hardware off-load for
 checksums and whatnot), where as the Juniper pretty much just uses BSD
 for control-plane features (BGP, for example, and controlling the
 hardware that actually does packet switching/routing).

Juniper has software-based offerings, too.  Not everybody pushes
multi-gigabit traffic volumes at which (software on) special
processors seem to be required.



Re: Gigabit Linux Routers

2008-12-20 Thread Chris Adams
Once upon a time, David Coulson da...@davidcoulson.net said:
 Comparing Imagestream and Vyatta to Juniper is crazy. The first two are 
 software based platforms (with perhaps some hardware off-load for 
 checksums and whatnot), where as the Juniper pretty much just uses BSD 
 for control-plane features (BGP, for example, and controlling the 
 hardware that actually does packet switching/routing).

Well, the J-series are fully software-based routers.  Still, they have
their own routing daemons and such.
-- 
Chris Adams cmad...@hiwaay.net
Systems and Network Administrator - HiWAAY Internet Services
I don't speak for anybody but myself - that's enough trouble.



Re: Gigabit Linux Routers

2008-12-20 Thread Brandon Bennett
 Well, the J-series are fully software-based routers.  Still, they have
 their own routing daemons and such.

The difference is that Juniper, even on th J-series box, completely
separates the control plane and fowarding plane.

The forwarding plane on a M or T series is going to be a ppc based
chip along with ASIC to do the real lifitng.  In the J-series it is a
emulated FPC running on real-time BSD.

The control plane on both platform is freebsd based. This is also what
an Olive is.  The control plane with no FPC.   You'll also note
horrible forwarding performance on an Olive.

So  a J-series it cannot be compared to a Vyatta or Imagestream even
though it's software based.  I think IOS can be compared more so
(combined fowarding and control planes on software routers)

-Brandon

http://www.juniper.net/company/presscenter/pr/2005/pr-050131.html
http://www.linuxdevices.com/news/NS4066781213.html



Re: Gigabit Linux Routers

2008-12-20 Thread Adrian Chadd
On Sat, Dec 20, 2008, Ingo Flaschberger wrote:

 I'm not shure if this setup would ever be stable.
 also with ucarp tweaks.
 hopefully freebsd supports soon more than 1 route.
 

FreeBSD, like all good open source projects, gets features supported when
people code them up.

So if you'd like to see FreeBSD support it, either code it up, or
pay soemone to code it up. Then everyone benefits. :)



Adrian




Re: Gigabit Linux Routers

2008-12-19 Thread Joe Greco
 Dear Joe,
  Several different traffic shaping strategies are available, and I think
  all of them go far beyond simple.
 
 ipfw 100 add pipe 1 all from 192.168.0.0/24 to any xmit vlan1
 ipfw pipe 1 config bw 95Mbit/s queue 200Kbytes
 
 thats simple.

Yes, but the point was that the feature was listed as simple traffic
shaping.  You can do *complicated* traffic shaping too, which was the
reason I commented on that.  Usually the ability to do complicated
traffic shaping means you can do simple traffic shaping too.  ;-)

  cons: only 1 route for each network, vrrp failover is not easy to
 implement with quagga and ospf, no multipath routing
 
  carp seems easy to implement, even with quagga and ospf.  At least, it's
  set up on a lab setup here and everything appears to work as expected.
 
 example setup:
 
 A(ospf)---B
 \/
   \  /
\/
 \  /
  \/
   lan1
 
 A and B share 1 virtual ip for lan1 (192.168.0.1/24).
 problems:
 *) only 1 ip-net supported (no aliases)

So, you want, what, like multiple aliases on the network?  I just tried
adding an alias with the normal alias syntax, and it looks to work.

rtr0# ifconfig vlan20; ifconfig carp20
vlan20: flags=8943UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST metric 0 mtu 
1500
options=3RXCSUM,TXCSUM
ether 00:04:23:b7:8e:08
inet 206.55.68.194 netmask 0xffe0 broadcast 206.55.68.223
media: Ethernet autoselect
status: active
vlan: 20 parent interface: lagg0
carp20: flags=49UP,LOOPBACK,RUNNING metric 0 mtu 1500
inet 206.55.68.193 netmask 0xffe0
inet 206.55.68.196 netmask 0x
carp: BACKUP vhid 1 advbase 1 advskew 0

rtr1# ifconfig vlan20; ifconfig carp20
vlan20: flags=8943UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST metric 0 mtu 
1500
ether 00:80:c8:cd:43:1d
inet 206.55.68.195 netmask 0xffe0 broadcast 206.55.68.223
media: Ethernet autoselect
status: active
vlan: 20 parent interface: lagg1
carp20: flags=49UP,LOOPBACK,RUNNING metric 0 mtu 1500
inet 206.55.68.193 netmask 0xffe0
inet 206.55.68.196 netmask 0x
carp: MASTER vhid 1 advbase 1 advskew 0

switch20 ping 206.55.68.193
Pinging 206.55.68.193 with 56 bytes of data:

56 bytes from 206.55.68.193: icmp_seq=1. time=0 ms
56 bytes from 206.55.68.193: icmp_seq=2. time=0 ms
56 bytes from 206.55.68.193: icmp_seq=3. time=0 ms
56 bytes from 206.55.68.193: icmp_seq=4. time=0 ms

206.55.68.193 PING Statistics
4 packets transmitted, 4 packets received, 0% packet loss
round-trip (ms) min/avg/max = 0/0/0


switch20 ping 206.55.68.194
Pinging 206.55.68.194 with 56 bytes of data:

56 bytes from 206.55.68.194: icmp_seq=1. time=0 ms
56 bytes from 206.55.68.194: icmp_seq=2. time=0 ms
56 bytes from 206.55.68.194: icmp_seq=3. time=0 ms
56 bytes from 206.55.68.194: icmp_seq=4. time=0 ms

206.55.68.194 PING Statistics
4 packets transmitted, 4 packets received, 0% packet loss
round-trip (ms) min/avg/max = 0/0/0


switch20 ping 206.55.68.195
Pinging 206.55.68.195 with 56 bytes of data:

56 bytes from 206.55.68.195: icmp_seq=1. time=0 ms
56 bytes from 206.55.68.195: icmp_seq=2. time=0 ms
56 bytes from 206.55.68.195: icmp_seq=3. time=0 ms
56 bytes from 206.55.68.195: icmp_seq=4. time=0 ms

206.55.68.195 PING Statistics
4 packets transmitted, 4 packets received, 0% packet loss
round-trip (ms) min/avg/max = 0/0/0


switch20 ping 206.55.68.196
Pinging 206.55.68.196 with 56 bytes of data:

56 bytes from 206.55.68.196: icmp_seq=1. time=0 ms
56 bytes from 206.55.68.196: icmp_seq=2. time=0 ms
56 bytes from 206.55.68.196: icmp_seq=3. time=0 ms
56 bytes from 206.55.68.196: icmp_seq=4. time=0 ms

206.55.68.196 PING Statistics
4 packets transmitted, 4 packets received, 0% packet loss
round-trip (ms) min/avg/max = 0/0/0


switch20

Mmm, generally, it looks to me like it works, but the above is the
entirety of my testing, so I could easily be wrong.

 *) carp is i bound, carp-dev line openbsd is in development
   (not shure if already stable)

You mean inbound?  Well, yes.  That's reasonably practical.  It isn't
entirely clear what other paradigms would look like (i.e. if the host
system didn't have a native address on the wire), though several ideas
spring to mind.

Am I correct in assuming that you mean to have no native interface on
the network in question, and only a CARP interface?  Or am I reading in
between the lines incorrectly?

 *) if carp switch over:
   t=0: A is master, has route 192.168.0.1/24
B has route 192.168.0.1/24 via ospf
   t=1: A goes down, route disappear (need linkstate in ospf)
   t=2: B carp takes over 192.168.0.1/24
   B can not add 192.168.0.1/24 route as it is still
   known via ospf
   t=3: B gets update to remove route 192.168.0.1/24 via ospf
   t=4: 192.168.0.1/24 route has disappeared, failover broken.
 
 with 

Re: Gigabit Linux Routers

2008-12-19 Thread Ingo Flaschberger

Dear Joe,


Yes, but the point was that the feature was listed as simple traffic
shaping.  You can do *complicated* traffic shaping too, which was the
reason I commented on that.  Usually the ability to do complicated
traffic shaping means you can do simple traffic shaping too.  ;-)


with linux?
really?


Mmm, generally, it looks to me like it works, but the above is the
entirety of my testing, so I could easily be wrong.


you have ospf between this 2 boxes?
show me them routing table.
do a failover and show the routing table again,


*) carp is i bound, carp-dev line openbsd is in development
(not shure if already stable)


You mean inbound?  Well, yes.  That's reasonably practical.  It isn't
entirely clear what other paradigms would look like (i.e. if the host
system didn't have a native address on the wire), though several ideas
spring to mind.

Am I correct in assuming that you mean to have no native interface on
the network in question, and only a CARP interface?  Or am I reading in
between the lines incorrectly?


only carp-int has the ip's.


*) if carp switch over:
t=0: A is master, has route 192.168.0.1/24
 B has route 192.168.0.1/24 via ospf
t=1: A goes down, route disappear (need linkstate in ospf)
t=2: B carp takes over 192.168.0.1/24
B can not add 192.168.0.1/24 route as it is still
known via ospf
t=3: B gets update to remove route 192.168.0.1/24 via ospf
t=4: 192.168.0.1/24 route has disappeared, failover broken.

with ucarp, some special scripts and source code changed I was able
to handle this situation, but not with carp and ospf (at least at
freebsd 6.3)


I agree that this is a problematic scenario.  FreeBSD 5.* and 6.* are
pretty worthless to us, so we've pretty much jumped from 4 to 7, and
so my knowledge of the networking improvements in between are limited.


I have not yet tested freebsd 7, as the multicast kernel interface 
changed and quagge ospf breaked. also I need(ed) a stable platform.



Under FreeBSD 4, there is indeed a great deal of pain associated with
routes coming in via a routing protocol that are also theoretically
available on a directly-attached interface.

I just tried downing rtr1: vlan20 on the above (which is FreeBSD 7,
obviously) and from rtr1's PoV the network did move correctly to an
alternate route via OSPF, but upon re-enabling the vlan20 interface,
the OSPF route remained.  Now, it seemed to all work again when I
did the following:


yes, thats the problem.


# ifconfig vlan20 up
# route delete -net 206.55.68.192
# ifconfig vlan20 inet 206.55.68.195 netmask 0xffe0


I have changed ucarp todo so, but you also need
gratious arp and such stuff to get a real, flawless failover.


which re-established the local link.  That's not ideal, but it is a lot
better than FreeBSD 4, where things were just breaking all over if you
did strange things like this.

For most important things around here, we use OSPF with stub routes so
the failure of a particular ethernet is not necessarily of great concern,
but it would be nice to see things like this know how to DTRT.


DTRT?

Kind regards,
Ingo Flaschberger



Re: Gigabit Linux Routers

2008-12-19 Thread Joe Greco
 Dear Joe,
  Yes, but the point was that the feature was listed as simple traffic
  shaping.  You can do *complicated* traffic shaping too, which was the
  reason I commented on that.  Usually the ability to do complicated
  traffic shaping means you can do simple traffic shaping too.  ;-)
 
 with linux?
 really?

Reread the message...  the text was in reply to a discussion of FreeBSD
features.  And, yes, really.  ipfw, pf, and ipf solutions are all
trivially available, giving you a selection of rule types and altq or
dummynet shaping options that can be tied into extremely flexible rules.

  Mmm, generally, it looks to me like it works, but the above is the
  entirety of my testing, so I could easily be wrong.
 
 you have ospf between this 2 boxes?

Yes.  vlan20 is OSPF-enabled, as a matter of fact, and both routers are
on it.  The goal was to see if I could get a network that was smart enough
for both OSPF-enabled hosts (no static gateway needs to be config'ed)
and non-OSPF hosts (CARP as default gateway).

 show me them routing table.
 do a failover and show the routing table again,

I did that experiment below.  I didn't grab snapshots of the routing table
at the time, but I described the effect.  Essentially, upon downing of the
interface, the local link via the vlan20 interface went away, and was 
promptly replaced by the OSPF route (generally good/desirable).  Further
discussion was in my previous message.

  *) carp is i bound, carp-dev line openbsd is in development
 (not shure if already stable)
 
  You mean inbound?  Well, yes.  That's reasonably practical.  It isn't
  entirely clear what other paradigms would look like (i.e. if the host
  system didn't have a native address on the wire), though several ideas
  spring to mind.
 
  Am I correct in assuming that you mean to have no native interface on
  the network in question, and only a CARP interface?  Or am I reading in
  between the lines incorrectly?
 
 only carp-int has the ip's.

Really?  Interesting.  I'm trying to think of how that would be configured.
How does the system identify which ethernet interface to use, or is this
something that's specific to Linux?

  *) if carp switch over:
 t=0: A is master, has route 192.168.0.1/24
  B has route 192.168.0.1/24 via ospf
 t=1: A goes down, route disappear (need linkstate in ospf)
 t=2: B carp takes over 192.168.0.1/24
 B can not add 192.168.0.1/24 route as it is still
 known via ospf
 t=3: B gets update to remove route 192.168.0.1/24 via ospf
 t=4: 192.168.0.1/24 route has disappeared, failover broken.
 
  with ucarp, some special scripts and source code changed I was able
  to handle this situation, but not with carp and ospf (at least at
  freebsd 6.3)
 
  I agree that this is a problematic scenario.  FreeBSD 5.* and 6.* are
  pretty worthless to us, so we've pretty much jumped from 4 to 7, and
  so my knowledge of the networking improvements in between are limited.
 
 I have not yet tested freebsd 7, as the multicast kernel interface 
 changed and quagge ospf breaked. also I need(ed) a stable platform.

I'm aware of the Quagga OSPF issues, having grinched about them a number
of times in various places.  For what it is worth, there's a patch that
appears to work, but which was thought to not really be a correct fix.
Several people, including us, however, are using it with apparent success.
 
  Under FreeBSD 4, there is indeed a great deal of pain associated with
  routes coming in via a routing protocol that are also theoretically
  available on a directly-attached interface.
 
  I just tried downing rtr1: vlan20 on the above (which is FreeBSD 7,
  obviously) and from rtr1's PoV the network did move correctly to an
  alternate route via OSPF, but upon re-enabling the vlan20 interface,
  the OSPF route remained.  Now, it seemed to all work again when I
  did the following:
 
 yes, thats the problem.
 
  # ifconfig vlan20 up
  # route delete -net 206.55.68.192
  # ifconfig vlan20 inet 206.55.68.195 netmask 0xffe0
 
 I have changed ucarp todo so, but you also need
 gratious arp and such stuff to get a real, flawless failover.

Don't know.
 
  which re-established the local link.  That's not ideal, but it is a lot
  better than FreeBSD 4, where things were just breaking all over if you
  did strange things like this.
 
  For most important things around here, we use OSPF with stub routes so
  the failure of a particular ethernet is not necessarily of great concern,
  but it would be nice to see things like this know how to DTRT.
 
 DTRT?

Do the right thing.

... JG
-- 
Joe Greco - sol.net Network Services - Milwaukee, WI - http://www.sol.net
We call it the 'one bite at the apple' rule. Give me one chance [and] then I
won't contact you again. - Direct Marketing Ass'n position on e-mail spam(CNN)
With 24 million small businesses in the US alone, that's way too many apples.



Re: Gigabit Linux Routers

2008-12-19 Thread Ingo Flaschberger

Dear Joe,


I did that experiment below.  I didn't grab snapshots of the routing table
at the time, but I described the effect.  Essentially, upon downing of the
interface, the local link via the vlan20 interface went away, and was
promptly replaced by the OSPF route (generally good/desirable).  Further
discussion was in my previous message.


I'm not shure if this setup would ever be stable.
also with ucarp tweaks.
hopefully freebsd supports soon more than 1 route.


only carp-int has the ip's.


Really?  Interesting.  I'm trying to think of how that would be configured.
How does the system identify which ethernet interface to use, or is this
something that's specific to Linux?


I'm not shure how I have configured that (~6months ago).
Now with ucarp I use a /32 for the interfaces as ip and
the virtual ip is added as an alias.


I'm aware of the Quagga OSPF issues, having grinched about them a number
of times in various places.  For what it is worth, there's a patch that
appears to work, but which was thought to not really be a correct fix.
Several people, including us, however, are using it with apparent success.


As far I remember, freebsd changed the multicast-interface to 
linux-style. Source code seems to be already there, only makefile needs to 
be changed, to support freebsd 7 and 7.


Kind regards,
Ingo Flaschberger



Re: Gigabit Linux Routers

2008-12-19 Thread Martin List-Petersen
Henry Yen wrote:
 On Fri, Dec 19, 2008 at 18:32:40PM -0700, Michael Loftis wrote:
 --On December 18, 2008 4:02:14 PM -0800 Bruce Robertson 
 br...@greatbasin.net wrote:

 Imagestream does nice work as well.

 I'll second the plug for imagestream as well.

 Soucy, Ray wrote:
 If all you're looking for is basic routing though, it might be
 worthwhile just getting a Vyatta appliance.
 
 Aren't both Imagestream and Vyatta routers built atop a Linux platform?
 

So is Juniper a BSD base (if I recall correct). The difference is the
selection of hardware and added routing hardware.

The issue is, that those additions, that Juniper, Imagestream and Vyatta
add, are not available on the standard platform, so it can't be quite
compared.

Kind regards,
Martin List-Petersen

-- 
Airwire - Ag Nascadh Pobal an Iarthar
http://www.airwire.ie
Phone: 091-865 968



Re: Gigabit Linux Routers

2008-12-19 Thread Randy Bush

So is Juniper a BSD base (if I recall correct). The difference is the
selection of hardware and added routing hardware.


juniper uses a freebsd base.  but the stack, routing protocols, 
forwarding, drivers, ... are quite different.


randy



Re: Gigabit Linux Routers

2008-12-19 Thread Brandon Galbraith
I wasn't aware of imagestream using any custom (asic) hardware, except
the T1/3 cards in the concentrator we bought from them (worked like a
champ, btw).

-brandon

On 12/19/08, Martin List-Petersen mar...@airwire.ie wrote:
 Henry Yen wrote:
 On Fri, Dec 19, 2008 at 18:32:40PM -0700, Michael Loftis wrote:
 --On December 18, 2008 4:02:14 PM -0800 Bruce Robertson
 br...@greatbasin.net wrote:

 Imagestream does nice work as well.

 I'll second the plug for imagestream as well.

 Soucy, Ray wrote:
 If all you're looking for is basic routing though, it might be
 worthwhile just getting a Vyatta appliance.

 Aren't both Imagestream and Vyatta routers built atop a Linux platform?


 So is Juniper a BSD base (if I recall correct). The difference is the
 selection of hardware and added routing hardware.

 The issue is, that those additions, that Juniper, Imagestream and Vyatta
 add, are not available on the standard platform, so it can't be quite
 compared.

 Kind regards,
 Martin List-Petersen

 --
 Airwire - Ag Nascadh Pobal an Iarthar
 http://www.airwire.ie
 Phone: 091-865 968



-- 
Sent from my mobile device

Brandon Galbraith
Voice: 630.400.6992
Email: brandon.galbra...@gmail.com



Re: Gigabit Linux Routers

2008-12-19 Thread Martin List-Petersen
Brandon Galbraith wrote:
 I wasn't aware of imagestream using any custom (asic) hardware, except
 the T1/3 cards in the concentrator we bought from them (worked like a
 champ, btw).

It doesn't have to be hardware. Even their custom developed drivers and
software isn't available on anything but their platform.

But true, their products show, what can be done even without custom
hardware. It's a matter of optimizing the drivers and a careful
selection of hardware.

All I was referring to, is that if you take a Linux box, Quagga, stock
hardware, you might not get quite the same results. And don't get me
wrong, we use Quagga and are quite happy with it.

Kind regards,
Martin List-Petersen


 
 -brandon
 
 On 12/19/08, Martin List-Petersen mar...@airwire.ie wrote:
 Henry Yen wrote:
 On Fri, Dec 19, 2008 at 18:32:40PM -0700, Michael Loftis wrote:
 --On December 18, 2008 4:02:14 PM -0800 Bruce Robertson
 br...@greatbasin.net wrote:

 Imagestream does nice work as well.

 I'll second the plug for imagestream as well.

 Soucy, Ray wrote:
 If all you're looking for is basic routing though, it might be
 worthwhile just getting a Vyatta appliance.
 Aren't both Imagestream and Vyatta routers built atop a Linux platform?

 So is Juniper a BSD base (if I recall correct). The difference is the
 selection of hardware and added routing hardware.

 The issue is, that those additions, that Juniper, Imagestream and Vyatta
 add, are not available on the standard platform, so it can't be quite
 compared.

 Kind regards,
 Martin List-Petersen

 --
 Airwire - Ag Nascadh Pobal an Iarthar
 http://www.airwire.ie
 Phone: 091-865 968


 


-- 
Airwire - Ag Nascadh Pobal an Iarthar
http://www.airwire.ie
Phone: 091-865 968



Re: Gigabit Linux Routers

2008-12-19 Thread David Coulson
It doesn't - It's just an x86 PC. I have Vyatta running inside VMware 
ESX, not well, but it works ;-)


Comparing Imagestream and Vyatta to Juniper is crazy. The first two are 
software based platforms (with perhaps some hardware off-load for 
checksums and whatnot), where as the Juniper pretty much just uses BSD 
for control-plane features (BGP, for example, and controlling the 
hardware that actually does packet switching/routing).


Brandon Galbraith wrote:

I wasn't aware of imagestream using any custom (asic) hardware, except
the T1/3 cards in the concentrator we bought from them (worked like a
champ, btw).




Re: Gigabit Linux Routers

2008-12-18 Thread Chris
Thanks to the list again.
There's lots more options than I'd considered.

I think it's likely that I'll stick with what I know, which is Linux not
FreeBSD and Quagga. The lack of a need to learn new stuff is the my main
motivation behind this because I'm unlikely to break things as frequently.

One final quick question on the NICs if I can. Following Mike's suggestion
about specific Intel chipsets (82575 or 82576) it looks like it's much
easier to source the chipsets mentioned by David (82571EB). If these NICs
are embedded on the motherboard is it going to be of disadvantage in terms
of performance ? I take the point of the interrupts being the key, kindly
thrown into the mix by Eugeniu.

A nice man called John mailed me off list and mentioned this off-the-shelf
build. On that note does anyone have any experience of Lannerinc's
appliances mentioned above by Ingo or John's suggested RouterBoard: the
1000 series seems good, just short on ram on the basic spec.  At sub £500
notes, it's cheaper than buying a basic server and it's designed to do the
job you need.  http://www.routerboard.com/prices.html;. Both appliances seem
to perform well in the throughput tests.

Now to look at very affordable layer 2, Gigabit 3com switches with good pps.

Chris


Re: Gigabit Linux Routers

2008-12-18 Thread Eugeniu Patrascu

Chris wrote:



Now to look at very affordable layer 2, Gigabit 3com switches with good pps.


You should take a look at HP. They have very good gigabit switches and 
also offer lifetime guarantee on them.


HP actually has a CLI to configure the switch, not the crap 3Com has.



Re: Gigabit Linux Routers

2008-12-18 Thread Jeroen Wunnink
This might be of some use, it's a document written by one of the AMS-IX 
engineers, it's a little aged (almost 2 years old) so there should be 
some improvement in the numbers, but it might give you some insight in 
the bottlenecks when pushing a Linux server to it's max (10Gigabit in 
this case)


http://noc.easycolocate.nl/10-GE_Routing_on_Linux.pdf



David Coulson wrote:
The boxes (3650s) came with Broadcom BCM5708 on-board, but I push most 
of my traffic over these:


1c:00.1 Ethernet controller: Intel Corporation 82571EB Gigabit 
Ethernet Controller (rev 06)

   Subsystem: Intel Corporation PRO/1000 PT Dual Port Server Adapter
   Flags: bus master, fast devsel, latency 0, IRQ 58
   Memory at c7ea (32-bit, non-prefetchable) [size=128K]
   Memory at c7e8 (32-bit, non-prefetchable) [size=128K]
   I/O ports at 6020 [size=32]
   Capabilities: [c8] Power Management version 2
   Capabilities: [d0] Message Signalled Interrupts: 64bit+ 
Queue=0/0 Enable+

   Capabilities: [e0] Express Endpoint IRQ 0
   Capabilities: [100] Advanced Error Reporting

There are four Intel ports in the boxes, so traffic may or may not 
stay on the same PCI-X card depending how things are flowing.


Chris wrote:

David: May I ask which NICs you use in the IBM boxes ? I see the Intels
recommended by Mike have dual ports on one board (the docs say Two 
complete
Gigabit Ethernet connections in a single device • Lower latency due 
to one

electrical load on the bus).
  





--

Met vriendelijke groet,

Jeroen Wunnink,
EasyHosting B.V. Systeembeheerder
systeembeh...@easyhosting.nl

telefoon:+31 (035) 6285455  Postbus 48
fax: +31 (035) 6838242  3755 ZG Eemnes

http://www.easyhosting.nl
http://www.easycolocate.nl





Re: Gigabit Linux Routers

2008-12-18 Thread Ingo Flaschberger

Dear Chris,


One final quick question on the NICs if I can. Following Mike's suggestion
about specific Intel chipsets (82575 or 82576) it looks like it's much
easier to source the chipsets mentioned by David (82571EB). If these NICs
are embedded on the motherboard is it going to be of disadvantage in terms
of performance ? I take the point of the interrupts being the key, kindly
thrown into the mix by Eugeniu.


For a new system you should go with pci-e cards.


A nice man called John mailed me off list and mentioned this off-the-shelf
build. On that note does anyone have any experience of Lannerinc's
appliances mentioned above by Ingo


I have posted thos off-list, for the list:
http://www.lannerinc.com/DM/FW-7550_DM.pdf
pros: cheap, cf-disk support, low power (~50W)
cons: only 1GB Ram (enough for 1million routes),
pci-connected intel 82541GI, 32bit, 33MHZ
acpi max-temp is set to low in bios and needs
an acpi-aml file to be loaded

http://www.axiomtek.de/uploads/na-820.pdf
pros: 7x pci-e
www.endian.com use them.
http://www.endian.com/en/products/hardware/macro-x2/

OS:
Freebsd:
pros: very stable, quagge runs very well, fastforwarding support,
simple traffic shaping, interrupt less polling supported
cons: only 1 route for each network, vrrp failover is not easy to
implement with quagga and ospf, no multipath routing
Linux:
pros: more than 1 route for each network possible,
interrupt less polling should be supported?
fastforwarding ?
cons: no multipath routing

Cpu's:
Single-core-cpus performs better at freebsd than multi-core ones

At freebsd-net mailinglist there is a very long thread about 
freebsd-routers.


Kind regards,
Ingo Flaschberger



Re: Gigabit Linux Routers

2008-12-18 Thread Eugeniu Patrascu

Ingo Flaschberger wrote:

OS:
Freebsd:
pros: very stable, quagge runs very well, fastforwarding support,
simple traffic shaping, interrupt less polling supported
cons: only 1 route for each network, vrrp failover is not easy to
implement with quagga and ospf, no multipath routing
Linux:
pros: more than 1 route for each network possible,
interrupt less polling should be supported?
fastforwarding ?
cons: no multipath routing


	Are you sure ? Because there is an option in the kernel, under advanced 
routing setup to enable multipath routing.
	And also, with iproute2, you can add multiple gateways with 
different/equal weights for a specific prefix





Re: Gigabit Linux Routers

2008-12-18 Thread Marshall Eubanks


On Dec 18, 2008, at 4:13 AM, Jeroen Wunnink wrote:

This might be of some use, it's a document written by one of the AMS- 
IX engineers, it's a little aged (almost 2 years old) so there  
should be some improvement in the numbers, but it might give you  
some insight in the bottlenecks when pushing a Linux server to it's  
max (10Gigabit in this case)


http://noc.easycolocate.nl/10-GE_Routing_on_Linux.pdf



Note that this test did not involve full BGP. Given the problems that  
used to occur on some name
brand routers when BGP took up too much CPU, I would be careful  
extrapolating these results if you

are planning on running full BGP. As the paper itself says,
 In a real-world situation the device might be running BGP, with a full
routing table. This will surely affect the performance of the device.

Regards
Marshall






David Coulson wrote:
The boxes (3650s) came with Broadcom BCM5708 on-board, but I push  
most of my traffic over these:


1c:00.1 Ethernet controller: Intel Corporation 82571EB Gigabit  
Ethernet Controller (rev 06)
  Subsystem: Intel Corporation PRO/1000 PT Dual Port Server  
Adapter

  Flags: bus master, fast devsel, latency 0, IRQ 58
  Memory at c7ea (32-bit, non-prefetchable) [size=128K]
  Memory at c7e8 (32-bit, non-prefetchable) [size=128K]
  I/O ports at 6020 [size=32]
  Capabilities: [c8] Power Management version 2
  Capabilities: [d0] Message Signalled Interrupts: 64bit+  
Queue=0/0 Enable+

  Capabilities: [e0] Express Endpoint IRQ 0
  Capabilities: [100] Advanced Error Reporting

There are four Intel ports in the boxes, so traffic may or may not  
stay on the same PCI-X card depending how things are flowing.


Chris wrote:
David: May I ask which NICs you use in the IBM boxes ? I see the  
Intels
recommended by Mike have dual ports on one board (the docs say  
Two complete
Gigabit Ethernet connections in a single device • Lower latency  
due to one

electrical load on the bus).






--

Met vriendelijke groet,

Jeroen Wunnink,
EasyHosting B.V. Systeembeheerder
systeembeh...@easyhosting.nl

telefoon:+31 (035) 6285455  Postbus 48
fax: +31 (035) 6838242  3755 ZG Eemnes

http://www.easyhosting.nl
http://www.easycolocate.nl








Re: Gigabit Linux Routers

2008-12-18 Thread Colin Alston
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Ingo Flaschberger wrote:
 cons: only 1 route for each network, vrrp failover is not easy to
 implement with quagga and ospf, no multipath routing

Anyone cares about VRRPD when you have Heartbeat?

 Linux:
 pros: more than 1 route for each network possible,
 interrupt less polling should be supported?
 fastforwarding ?
 cons: no multipath routing

In what way is multipath routing not supported? Iproute2 and contrack
has done this for ages. Equal metric round robin is also possible and
works very well, only problem is it's not capacity sensitive.
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFJSjpg0FZZWLfHKjURAi5vAJ9KM3lS2vzG/ssh0UqkSijul1q8DACcDxAZ
GijQNdu+5YYdNuO1LBtkCNA=
=VmHM
-END PGP SIGNATURE-



Re: Gigabit Linux Routers

2008-12-18 Thread Florian Weimer
* Alex Thurlow:

 Depending on your WAN interface, there's actually a decent amount of
 stuff out there.  The cheaper alternative to me has actually always been
 to get some old cisco hardware with the proper interfaces and use it for
 media conversion.  I have a 6500 with Sup1As in it.  It can't take BGP
 feeds with the amount of memory it has, but with the right cards, it
 will give my router Ethernet and push a few million pps with no problem.

But you have to ask your peer to enable eBGP multihop, right?  Or are
there some TTL tricks you can play?

-- 
Florian Weimerfwei...@bfk.de
BFK edv-consulting GmbH   http://www.bfk.de/
Kriegsstraße 100  tel: +49-721-96201-1
D-76133 Karlsruhe fax: +49-721-96201-99



Re: Gigabit Linux Routers

2008-12-18 Thread Etaoin Shrdlu

Eugeniu Patrascu wrote:


Chris wrote:



Now to look at very affordable layer 2, Gigabit 3com switches with 
good pps.



You should take a look at HP. They have very good gigabit switches and 
also offer lifetime guarantee on them.


HP actually has a CLI to configure the switch, not the crap 3Com has.


Let me provide a strong second to HP. They are rock solid, easy to 
configure, easy to monitor remotely, and worth every penny.


--
I like mathematics because it is not human and has nothing
 particular to do with this planet or with the whole accidental
 universe - because, like Spinoza's God, it won't love us
 in return. (Bertrand Russell)



Re: Gigabit Linux Routers

2008-12-18 Thread David Coulson

Ingo Flaschberger wrote:

Multipath, yes, but flow-based, not per packet.
There exists a patch for 2.4 kernel, but not for 2.6
Or tinker with iptables.
And last I checked, even with multiple 'nexthop' entries, it still 
wasn't smart enough to drop a route if you lose an interface.




Re: Gigabit Linux Routers

2008-12-18 Thread Chris
One final query for this thread if I may.

Our hardware provider has come back with this as an 'easy to source build'
in case we want two or three identical boxes:
Supermicro X7SBI-LN2 motherboard with
2 x Intel 82573V/L gigabit PCI-Express NICs

Does anyone have experience of these NICs before I commit ? Or any other
comments ? I'll start trawling their specs too.

Thanks again to all that responded,

Chris


Re: Gigabit Linux Routers

2008-12-18 Thread Adam Crosby


On Dec 18, 2008, at 4:00 AM, Eugeniu Patrascu wrote:


Chris wrote:

Now to look at very affordable layer 2, Gigabit 3com switches with  
good pps.


You should take a look at HP. They have very good gigabit switches  
and also offer lifetime guarantee on them.


HP actually has a CLI to configure the switch, not the crap 3Com has.

Not to defend 3Com or anything, but all of their enterprise stuff (for  
quite a few years now) has an extremely similar CLI to IOS.  Came out  
very shortly after they got involved with Huawei.
If you're already familiar with 3com enterprise gear, check out the  
4200G series for cheap L2 gig switching.


--
Adam




Re: Gigabit Linux Routers

2008-12-18 Thread Michael 'Moose' Dinn

  Not to defend 3Com or anything, but all of their enterprise stuff (for quite 
  a few years now) has an extremely similar CLI to IOS.  Came out very shortly 
  after they got involved with Huawei.
  If you're already familiar with 3com enterprise gear, check out the 4200G 
  series for cheap L2 gig switching.


3Com's CLI is just different enough from Cisco's so they won't get sued.

show interface = display interface

write mem = save

no ip address = undo ip address etc.

All in all we've been fairly happy with the higher end gear (5500EI, 5500GEI).




Re: Gigabit Linux Routers

2008-12-18 Thread Joe Greco
 I have posted thos off-list, for the list:
 http://www.lannerinc.com/DM/FW-7550_DM.pdf
 pros: cheap, cf-disk support, low power (~50W)

cf-disk support is pretty easy to add to lots of things.  With the advent
of 4GB compact flash modules and CF-to-IDE adapters, it is not too hard
to avoid rotating media...

 OS:
 Freebsd:
 pros: very stable, quagge runs very well, fastforwarding support,

quagga OSPF needs a patch on FreeBSD 7, else it will decimate your OSPF
environment.

   simple traffic shaping, interrupt less polling supported

Several different traffic shaping strategies are available, and I think
all of them go far beyond simple.

 cons: only 1 route for each network, vrrp failover is not easy to
   implement with quagga and ospf, no multipath routing

carp seems easy to implement, even with quagga and ospf.  At least, it's
set up on a lab setup here and everything appears to work as expected.

... JG
-- 
Joe Greco - sol.net Network Services - Milwaukee, WI - http://www.sol.net
We call it the 'one bite at the apple' rule. Give me one chance [and] then I
won't contact you again. - Direct Marketing Ass'n position on e-mail spam(CNN)
With 24 million small businesses in the US alone, that's way too many apples.



Re: Gigabit Linux Routers

2008-12-18 Thread Ingo Flaschberger

Dear Joe,


Several different traffic shaping strategies are available, and I think
all of them go far beyond simple.


ipfw 100 add pipe 1 all from 192.168.0.0/24 to any xmit vlan1
ipfw pipe 1 config bw 95Mbit/s queue 200Kbytes

thats simple.


cons: only 1 route for each network, vrrp failover is not easy to
implement with quagga and ospf, no multipath routing


carp seems easy to implement, even with quagga and ospf.  At least, it's
set up on a lab setup here and everything appears to work as expected.


example setup:

A(ospf)---B
\/
 \  /
  \/
   \  /
\/
 lan1

A and B share 1 virtual ip for lan1 (192.168.0.1/24).
problems:
*) only 1 ip-net supported (no aliases)
*) carp is i bound, carp-dev line openbsd is in development
(not shure if already stable)
*) if carp switch over:
t=0: A is master, has route 192.168.0.1/24
 B has route 192.168.0.1/24 via ospf
t=1: A goes down, route disappear (need linkstate in ospf)
t=2: B carp takes over 192.168.0.1/24
B can not add 192.168.0.1/24 route as it is still
known via ospf
t=3: B gets update to remove route 192.168.0.1/24 via ospf
t=4: 192.168.0.1/24 route has disappeared, failover broken.

with ucarp, some special scripts and source code changed I was able
to handle this situation, but not with carp and ospf (at least at
freebsd 6.3)

Kind regards,
Ingo Flaschberger





RE: Gigabit Linux Routers

2008-12-18 Thread Soucy, Ray
We spent a good amount of time looking into deploying a home-grown
Linux-based CPE device over the summer.

Generally, Linux is not the issue with performance.  You want to focus
on your hardware.

We've seen the best performance with Intel MT series PCI-X server NICs.
When we were testing the PCI-e cards were still underperforming, but
they may have improved recently.  The Intel cards have significantly
better driver support in Linux so you will prob. want to stay away from
anything without an Intel chipset.

We also went with a low-end server-grade box from Dell (PowerEdge 840 w/
Dual core Xeon 3040 1.86 GHz, 1066 MHz FSB) which proved to be more than
adequate.  We used a tower for the text box to cut costs, but you would
probably want something rack-mountable.

With our setup we were able to sustain about 970 Mbps.

Ultimately, we stopped because Quagga lacked any multicast support (we
need PIM-SM).  We recently looked at XORP as a possibility, and it
works... but lacks the level of logging and control you would expect for
a production environment.

Vyatta recently announced a shift from XORP to Quagga so Quagga may see
some new functionality.  We also found IP Infusion which is being
advertised as a complete solution, but when we tried to talk to them
about getting a demo they seemed hesitant to work with us on anything
beyond what Quagga already does (I'm guessing that they don't really
have anything and it's all advertising).

If all you're looking for is basic routing though, it might be
worthwhile just getting a Vyatta appliance.

Ray 

-Original Message-
From: Chris [mailto:ch...@ghostbusters.co.uk] 
Sent: Wednesday, December 17, 2008 9:03 AM
To: nanog list
Subject: Gigabit Linux Routers

Hi All,
Sorry if this is a repeat topic. I've done a fair bit of trawling but
can't
find anything concrete to base decisions on.

I'm hoping someone can offer some advice on suitable hardware and kernel
tweaks for using Linux as a router running bgpd via Quagga. We do this
at
the moment and our box manages under the 100Mbps level very effectively.
Over the next year however we expect to push about 250Mbps outbound
traffic
with very little inbound (50Mbps simultaneously) and I'm seeing
differing
suggestions of what to do in order to move up to the 1Gbps level.

It seems even a dual core box with expensive NICs and some kernel tweaks
will accomplish this but we can't afford to get the hardware purchases
wrong. We'd be looking to buy one live and one standby box within the
next
month or so. They will only run Quagga primarily with 'tc' for shaping.
We're in the UK if it makes any difference.

Any help massively appreciated, ideally from those doing the same in
production environments.

Thanks,

Chris



Re: Gigabit Linux Routers

2008-12-18 Thread Bruce Robertson

Imagestream does nice work as well.

Soucy, Ray wrote:

If all you're looking for is basic routing though, it might be
worthwhile just getting a Vyatta appliance.

  
begin:vcard
fn:Bruce Robertson
n:Robertson;Bruce
org:Great Basin Internet Services, Inc
adr:;;241 Ridge St Ste 450;Reno;NV;89501-2013;US
email;internet:br...@greatbasin.net
title:Founder, Chief Technology Officer
tel;work:+1.775.348.7299
tel;fax:+1.775.348.9412
x-mozilla-html:TRUE
url:http://www.greatbasin.net
version:2.1
end:vcard



Re: Gigabit Linux Routers

2008-12-17 Thread Jens Link
Chris ch...@ghostbusters.co.uk writes:

 I'm hoping someone can offer some advice on suitable hardware and kernel
 tweaks for using Linux as a router running bgpd via Quagga.

There was a talk Towards 10Gb/s open-source routing at this years
Linux-Kongress in Hamburg.  Here are th slides:

http://data.guug.de/slides/lk2008/10G_preso_lk2008.pdf

cheers 

Jens
-- 
Berlin, Germany | http://www.quux.de | jabber: jensl...@guug.de
s...@guug Berlin: http://www.guug.de/lokal/berlin/index.html



Re: Gigabit Linux Routers

2008-12-17 Thread Alex Thurlow

Just as another source of info here, I'm running:

Dual Core Intel Xeon 3060 @ 2.4Ghz
2 Gb Ram (it says Mem:   2059280k total,  1258500k used,   800780k
free,   278004k buffers right now)
2 of these on the motherboard: Ethernet controller: Intel Corporation
82571EB Gigabit Ethernet Controller (rev 06) (port-channel bonded to my
switch)
One other card with 2 ports: Ethernet controller: Intel Corporation
82573E Gigabit Ethernet Controller (Copper) (rev 03)
Gentoo Linux with a fairly small kernel with FIB_TRIE enabled.

I'm taking in 2 full BGP feeds, a decent amount of iptables rules, and
I've hit 1.2 Gbps with no problems.  At this point, I just don't have
anything behind the router to push more than that.


--
Alex Thurlow
Blastro Networks

http://www.blastro.com
http://www.roxwel.com
http://www.yallwire.com


Chris wrote:
 You've given me lots to think about ! Thanks for all the input so far.

 A few queries for the replies if I may. My brain is whirring.

 Chris: You're right and I'm tempted. I've almost had my arm twisted to go
 down the proprietory route as I have some Cisco experience but have 
become

 pretty familiar with Quagga and tc.

 David: May I ask which NICs you use in the IBM boxes ? I see the Intels
 recommended by Mike have dual ports on one board (the docs say Two 
complete
 Gigabit Ethernet connections in a single device • Lower latency due 
to one

 electrical load on the bus).

 Patrick: That's what I was hoping to hear :) It's not the world's biggest
 network.

 Michael: Thanks very much. We have three upstreams. I guess 2GB of 
RAM would

 cover many more sessions.

 Eugeniu: That's very useful. The Intel dual port NICs mentioned 
aren't any

 good then I presume (please see my comment to David).

 Thanks again,

 Chris







Re: Gigabit Linux Routers

2008-12-17 Thread Alex Thurlow

Florian Weimer wrote:

* Eugeniu Patrascu:


My concern with PC routing (in the WAN area) is a lack of WAN NICs
with properly maintained kernel drivers.
  

Depending on your WAN interface, there's actually a decent amount of
stuff out there.  The cheaper alternative to me has actually always been
to get some old cisco hardware with the proper interfaces and use it for
media conversion.  I have a 6500 with Sup1As in it.  It can't take BGP
feeds with the amount of memory it has, but with the right cards, it
will give my router Ethernet and push a few million pps with no problem.

Sounds like he's getting Ethernet from his provider though, so this
probably isn't an issue.

--
Alex Thurlow
Blastro Networks

http://www.blastro.com
http://www.roxwel.com
http://www.yallwire.com




Re: Gigabit Linux Routers

2008-12-17 Thread Eugeniu Patrascu

Florian Weimer wrote:

* Eugeniu Patrascu:


You can also use a kernel with LC-Trie as route hashing algorithm to
improve FIB lookups.


Do you know if it's possible to switch of the route cache?  Based on
my past experience, it was a major source of routing performance
dependency on traffic patterns (it's basically flow-based forwarding).


I don't understand your question.

In kernel, when you compile it, you have two options:
- hash based route algorithm
- lc-trie based route algorithm

From what I've read on the internet about the latter algorithm, it's 
supposed to be faster regarding route lookups with large routing tables 
(like a global routing table).





Anyway, with very few flows, we get quite decent performance (several
hundred megabits five-minute peak, and we haven't bothered tuning
yet), running on mid-range single-socket server boards and Intel NICs
(PCI-X, this is all 2006 hardware).  We use a router-on-a-stick
configuration with VLAN separation between all hosts to get a decent
number of ports.


In that configuration you'll split available bandwidth on the NIC and 
also have less throughput because server NICs are not optimized for 
same interface switching.




My concern with PC routing (in the WAN area) is a lack of WAN NICs
with properly maintained kernel drivers.



Usually it's better to get a dedicated router for that kind of stuff 
than bother with PC WAN cards.




Re: Gigabit Linux Routers

2008-12-17 Thread Scott Francis
the recent facebook engineering post on scaling memcached to 200-300K
UDP requests/sec/node may be germaine here (in particular, patches to
make irq handling more intelligent become very useful at the traffic
levels being discussed).
http://www.facebook.com/note.php?note_id=39391378919id=9445547199index=0

/sf

On Wed, Dec 17, 2008 at 8:30 AM, Jim Shankland na...@shankland.org wrote:
 Chris wrote:

 Hi All,
 Sorry if this is a repeat topic. I've done a fair bit of trawling but
 can't
 find anything concrete to base decisions on.

 I'm hoping someone can offer some advice on suitable hardware and kernel
 tweaks for using Linux as a router running bgpd via Quagga. We do this at
 the moment and our box manages under the 100Mbps level very effectively.
 Over the next year however we expect to push about 250Mbps outbound
 traffic
 with very little inbound (50Mbps simultaneously) and I'm seeing differing
 suggestions of what to do in order to move up to the 1Gbps level.

 As somebody else said, it's more pps than bits you need to worry about.
 The Intel NICs can do a full gigabit without any difficulty, if packet
 size is large enough.  But they buckle somewhere around 300Kpps.  300K
 100-byte packets is only 240 Mb/s.  On the other hand, you mentioned
 your traffic is mostly outbound, which makes me think you might be a
 content provider.  In that case, you'll know what your average packet
 size is -- and it should be a lot bigger than 100 bytes.  For that type
 of traffic, using a Linux router up to, say, 1.5-2 Gb/s is pretty trivial.
 You can do more than that, too, but have to start getting a lot more careful
 about hardware selection, tuning, etc.

 The other issue is the number of concurrent flows.  The actual route
 table size is unimportant -- it's the size of the route cache that
 matters.  Unfortunately, I have no figures here.  But I did once
 convert a router from limited routes (quagga, 10K routes) to full routes
 (I think about 200K routes at the time), with absolutely no measurable
 impact.  There were only a few thousand concurrent flows, and that
 number did not change -- and that's the one that might have made a
 difference.

 I hope this is helpful.

 Jim





-- 
darkun...@{gmail.com,darkuncle.net} || 0x5537F527
  http://darkuncle.net/pubkey.asc for public key



Re: Gigabit Linux Routers

2008-12-17 Thread Adrian Chadd
On Wed, Dec 17, 2008, Chris wrote:
 All the responses have been really helpful. Thanks to everyone for being
 friendly and for taking the time to answer in detail.
 I've asked a hardware provider to quote for a couple of x86 boxes and I'll
 look for suitable Intel NICs too.
 
 Jim: We're a very small ISP and have a full mix of packet sizes on the
 network but the vast majority is outbound on port 80 so hopefully that'll
 help.
 
 Any more input will of course be considered. I may post the NIC models for
 approval if I'm scratching my head again :)

Just FYI, the more recent Intel hardware has multiple hardware TX/RX queues,
implemented via seperate (IIRC) PCIe channels, and Linux/FreeBSD is growing
support to handle these multiple queues via multiple kernel threads. Ie,
multiple CPUs handling packet forwarding.

The trick is whether they can pull it off in a way that scales the FIB
and RIB lookups and updates across 4 core (and more) boxes.

But 40kpps is absolutely doable on one CPU. Some of the FreeBSD guys working
on it are looking at supporting 1mil pps + on 10GE cards (in the public source
tree), so .. :)




Adrian




Gigabit Linux Routers

2008-12-17 Thread Chris
Hi All,
Sorry if this is a repeat topic. I've done a fair bit of trawling but can't
find anything concrete to base decisions on.

I'm hoping someone can offer some advice on suitable hardware and kernel
tweaks for using Linux as a router running bgpd via Quagga. We do this at
the moment and our box manages under the 100Mbps level very effectively.
Over the next year however we expect to push about 250Mbps outbound traffic
with very little inbound (50Mbps simultaneously) and I'm seeing differing
suggestions of what to do in order to move up to the 1Gbps level.

It seems even a dual core box with expensive NICs and some kernel tweaks
will accomplish this but we can't afford to get the hardware purchases
wrong. We'd be looking to buy one live and one standby box within the next
month or so. They will only run Quagga primarily with 'tc' for shaping.
We're in the UK if it makes any difference.

Any help massively appreciated, ideally from those doing the same in
production environments.

Thanks,

Chris


Re: Gigabit Linux Routers

2008-12-17 Thread Chris
All the responses have been really helpful. Thanks to everyone for being
friendly and for taking the time to answer in detail.
I've asked a hardware provider to quote for a couple of x86 boxes and I'll
look for suitable Intel NICs too.

Jim: We're a very small ISP and have a full mix of packet sizes on the
network but the vast majority is outbound on port 80 so hopefully that'll
help.

Any more input will of course be considered. I may post the NIC models for
approval if I'm scratching my head again :)

Thanks,

Chris

2008/12/17 Jim Shankland na...@shankland.org

 Chris wrote:

 Hi All,
 Sorry if this is a repeat topic. I've done a fair bit of trawling but
 can't
 find anything concrete to base decisions on.

 I'm hoping someone can offer some advice on suitable hardware and kernel
 tweaks for using Linux as a router running bgpd via Quagga. We do this at
 the moment and our box manages under the 100Mbps level very effectively.
 Over the next year however we expect to push about 250Mbps outbound
 traffic
 with very little inbound (50Mbps simultaneously) and I'm seeing differing
 suggestions of what to do in order to move up to the 1Gbps level.


 As somebody else said, it's more pps than bits you need to worry about.
 The Intel NICs can do a full gigabit without any difficulty, if packet
 size is large enough.  But they buckle somewhere around 300Kpps.  300K
 100-byte packets is only 240 Mb/s.  On the other hand, you mentioned
 your traffic is mostly outbound, which makes me think you might be a
 content provider.  In that case, you'll know what your average packet
 size is -- and it should be a lot bigger than 100 bytes.  For that type
 of traffic, using a Linux router up to, say, 1.5-2 Gb/s is pretty trivial.
 You can do more than that, too, but have to start getting a lot more
 careful
 about hardware selection, tuning, etc.

 The other issue is the number of concurrent flows.  The actual route
 table size is unimportant -- it's the size of the route cache that
 matters.  Unfortunately, I have no figures here.  But I did once
 convert a router from limited routes (quagga, 10K routes) to full routes
 (I think about 200K routes at the time), with absolutely no measurable
 impact.  There were only a few thousand concurrent flows, and that
 number did not change -- and that's the one that might have made a
 difference.

 I hope this is helpful.

 Jim



Re: Gigabit Linux Routers

2008-12-17 Thread Florian Weimer
* Eugeniu Patrascu:

 You can also use a kernel with LC-Trie as route hashing algorithm to
 improve FIB lookups.

Do you know if it's possible to switch of the route cache?  Based on
my past experience, it was a major source of routing performance
dependency on traffic patterns (it's basically flow-based forwarding).

Anyway, with very few flows, we get quite decent performance (several
hundred megabits five-minute peak, and we haven't bothered tuning
yet), running on mid-range single-socket server boards and Intel NICs
(PCI-X, this is all 2006 hardware).  We use a router-on-a-stick
configuration with VLAN separation between all hosts to get a decent
number of ports.

My concern with PC routing (in the WAN area) is a lack of WAN NICs
with properly maintained kernel drivers.

-- 
Florian Weimerfwei...@bfk.de
BFK edv-consulting GmbH   http://www.bfk.de/
Kriegsstraße 100  tel: +49-721-96201-1
D-76133 Karlsruhe fax: +49-721-96201-99



Re: Gigabit Linux Routers

2008-12-17 Thread Chris
You've given me lots to think about ! Thanks for all the input so far.

A few queries for the replies if I may. My brain is whirring.

Chris: You're right and I'm tempted. I've almost had my arm twisted to go
down the proprietory route as I have some Cisco experience but have become
pretty familiar with Quagga and tc.

David: May I ask which NICs you use in the IBM boxes ? I see the Intels
recommended by Mike have dual ports on one board (the docs say Two complete
Gigabit Ethernet connections in a single device • Lower latency due to one
electrical load on the bus).

Patrick: That's what I was hoping to hear :) It's not the world's biggest
network.

Michael: Thanks very much. We have three upstreams. I guess 2GB of RAM would
cover many more sessions.

Eugeniu: That's very useful. The Intel dual port NICs mentioned aren't any
good then I presume (please see my comment to David).

Thanks again,

Chris


Re: Gigabit Linux Routers

2008-12-17 Thread David Coulson
The boxes (3650s) came with Broadcom BCM5708 on-board, but I push most 
of my traffic over these:


1c:00.1 Ethernet controller: Intel Corporation 82571EB Gigabit Ethernet 
Controller (rev 06)

   Subsystem: Intel Corporation PRO/1000 PT Dual Port Server Adapter
   Flags: bus master, fast devsel, latency 0, IRQ 58
   Memory at c7ea (32-bit, non-prefetchable) [size=128K]
   Memory at c7e8 (32-bit, non-prefetchable) [size=128K]
   I/O ports at 6020 [size=32]
   Capabilities: [c8] Power Management version 2
   Capabilities: [d0] Message Signalled Interrupts: 64bit+ 
Queue=0/0 Enable+

   Capabilities: [e0] Express Endpoint IRQ 0
   Capabilities: [100] Advanced Error Reporting

There are four Intel ports in the boxes, so traffic may or may not stay 
on the same PCI-X card depending how things are flowing.


Chris wrote:

David: May I ask which NICs you use in the IBM boxes ? I see the Intels
recommended by Mike have dual ports on one board (the docs say Two complete
Gigabit Ethernet connections in a single device • Lower latency due to one
electrical load on the bus).
  





Re: Gigabit Linux Routers

2008-12-17 Thread Eugeniu Patrascu

Chris wrote:



Eugeniu: That's very useful. The Intel dual port NICs mentioned aren't any
good then I presume (please see my comment to David).


Actually it depends on the motherboard chipset. Some chipsets allocate 
an interrupt per slot, and when you have lot's a traffic between two 
ports on a dual port card the will increase dramatically, but should get 
you at 1Gbps, at higer speeds... depends.


It's adviseable to use a 2.6 kernel as the network stack, compared to 
2.4, is way better and you can achieve higher speeds.






RE: Gigabit Linux Routers

2008-12-17 Thread Darden, Patrick S.

I don't think you will have any troubles with industry standard hardware for
the rates you are quoting.  When you get in excess of 300Mbps you have to 
start worrying about PPS.  When you are looking at 600Mbps then you 
should pick out your system more carefully (tcpoe nics, pcie(X), cpu
at over Xghz, fast ram if you are doing a lot of BGP, tweaking your
linux distribution and kernel, etc.).

You should be fine with any recent hardware.  A cheap HP dl360 would
do a great job.

--p

-Original Message-
From: Chris [mailto:ch...@ghostbusters.co.uk]
Sent: Wednesday, December 17, 2008 9:03 AM
To: nanog list
Subject: Gigabit Linux Routers


Hi All,
Sorry if this is a repeat topic. I've done a fair bit of trawling but can't
find anything concrete to base decisions on.

I'm hoping someone can offer some advice on suitable hardware and kernel
tweaks for using Linux as a router running bgpd via Quagga. We do this at
the moment and our box manages under the 100Mbps level very effectively.
Over the next year however we expect to push about 250Mbps outbound traffic
with very little inbound (50Mbps simultaneously) and I'm seeing differing
suggestions of what to do in order to move up to the 1Gbps level.

It seems even a dual core box with expensive NICs and some kernel tweaks
will accomplish this but we can't afford to get the hardware purchases
wrong. We'd be looking to buy one live and one standby box within the next
month or so. They will only run Quagga primarily with 'tc' for shaping.
We're in the UK if it makes any difference.

Any help massively appreciated, ideally from those doing the same in
production environments.

Thanks,

Chris



Re: Gigabit Linux Routers

2008-12-17 Thread David Coulson
I've been pretty happy running IBM x-series hardware using RHEL4. 
Usually it's PPS rather than throughput that will kill it, so if you're 
doing 250Mbit of DNS/I-mix/HTTP, you'll probably have very different 
results. There are some rx-ring tweaks for the NICs that are needed, but 
on the most part it's all out of the box (No custom kernel patches, and 
such - Just some sysctl settings).


I have two x3650s (Quad core) doing around 6-700Mbit/sec (40k pps) at 
around 20% CPU right now. No Quagga BGP, but that's minimal in terms of 
CPU. I've not been able to get much beyond 1Gb/sec on this environment 
because my ASAs are not configured to support more than one Gig into 
that particular network.


Chris wrote:

Hi All,
Sorry if this is a repeat topic. I've done a fair bit of trawling but can't
find anything concrete to base decisions on.

I'm hoping someone can offer some advice on suitable hardware and kernel
tweaks for using Linux as a router running bgpd via Quagga. We do this at
the moment and our box manages under the 100Mbps level very effectively.
Over the next year however we expect to push about 250Mbps outbound traffic
with very little inbound (50Mbps simultaneously) and I'm seeing differing
suggestions of what to do in order to move up to the 1Gbps level.

It seems even a dual core box with expensive NICs and some kernel tweaks
will accomplish this but we can't afford to get the hardware purchases
wrong. We'd be looking to buy one live and one standby box within the next
month or so. They will only run Quagga primarily with 'tc' for shaping.
We're in the UK if it makes any difference.

Any help massively appreciated, ideally from those doing the same in
production environments.

Thanks,

Chris
  




Re: Gigabit Linux Routers

2008-12-17 Thread David Gilbert
 chris == chris  ch...@ghostbusters.co.uk writes:

chris All the responses have been really helpful. Thanks to everyone
chris for being friendly and for taking the time to answer in detail.
chris I've asked a hardware provider to quote for a couple of x86
chris boxes and I'll look for suitable Intel NICs too.

chris Jim: We're a very small ISP and have a full mix of packet sizes
chris on the network but the vast majority is outbound on port 80 so
chris hopefully that'll help.

chris Any more input will of course be considered. I may post the NIC
chris models for approval if I'm scratching my head again :)

It's also worth saying that you should consider using FreeBSD ---
which uses an r-tree for routes (constant time lookup) and is not
flow-based.

Dave.

-- 

|David Gilbert, Independent Contractor.   | Two things can be  |
|Mail:   d...@daveg.ca|  equal if and only if they |
|http://daveg.ca  |   are precisely opposite.  |
=GLO



Re: Gigabit Linux Routers

2008-12-17 Thread Sargun Dhillon
Ah, NO! Stay away from Click. It is NOT stable. Unless you want to hold 
your network together with paperclips and rubber bands, stay away.


We use Linux software routing extensively where I work. We use Quagga 
primarily. I tried XORP, and it was very interesting, but not 
particularly ready for production. For our non-Linux boxes (FreeBSD), we 
use OpenBGPd, whereas on Linux, Quagga is far more stable.


From a hardware perspective, you guys really don't need anything 
special anymore.



Nathan Ward wrote:

On 18/12/2008, at 3:02 AM, Chris wrote:


Hi All,
Sorry if this is a repeat topic. I've done a fair bit of trawling but 
can't

find anything concrete to base decisions on.

I'm hoping someone can offer some advice on suitable hardware and kernel
tweaks for using Linux as a router running bgpd via Quagga. We do 
this at

the moment and our box manages under the 100Mbps level very effectively.
Over the next year however we expect to push about 250Mbps outbound 
traffic
with very little inbound (50Mbps simultaneously) and I'm seeing 
differing

suggestions of what to do in order to move up to the 1Gbps level.

It seems even a dual core box with expensive NICs and some kernel tweaks
will accomplish this but we can't afford to get the hardware purchases
wrong. We'd be looking to buy one live and one standby box within the 
next

month or so. They will only run Quagga primarily with 'tc' for shaping.
We're in the UK if it makes any difference.

Any help massively appreciated, ideally from those doing the same in
production environments.



Give Click a try - it is an alternative forwarding plane for Linux, 
that ran much faster than regular Linux forwarding a few years ago, 
and I imagine would still do so.


The XORP routing suite supports various different FIBs, including Click.

http://read.cs.ucla.edu/click/

--
Nathan Ward








--
+1.925.202.9485
Sargun Dhillon
deCarta
sdhil...@decarta.com
www.decarta.com