Re: Switch designed for mirroring tap ports

2012-03-01 Thread Jay Moran
Ameen,

We've had very good success using Brocade MLX's for this very thing
(actually, might be older XMRs, but should be same platform at this point).
Check out the transparent-hw-flooding command under a VLAN. It basically
turns off mac learning, and just floods it on the vlan's member ports.

If you want to be creative and say split out port 80 traffic to one port
and the rest to another, you can use policy based routing to change the
destination VLAN for just tcp/80 traffic.

If you want to have many different inputs going to many different outputs
some with PBR, some without, then you may have to get very creative and use
cables coming out of one port on the box and going back into another port.

We're using this successfully with multiple 10GE ports.

Jay
--
Jay Moran
http://tp.org/jay


On Thu, Mar 1, 2012 at 3:12 PM, A. Pishdadi apishd...@gmail.com wrote:

 Hello All,

 We are looking for a switch or a device that we can use for mirroring tap
 ports. For example , take a mirror port off of a core router say a 6509,
 connect it to a port on said device, say port 1. I would like then to be
 able to mirror port 1 on said device to multiple ports,  like port 2 , 3,
 4. We have the need to analyze traffic from one port on multiple devices.
 Seems most switches are limited to mirroring to a max of 1 or 2 ports.


 Any suggestions would be great.

 Thanks,
 Ameen



Re: Switch designed for mirroring tap ports

2012-03-01 Thread gwoo...@gmail.com
Instead of monitoring the physical interface, monitor the vlan from a Cisco IOS 
perspective on a CAT6500.  This will capture all physical interfaces associated 
with that vlan for mirroring/span.

HTH

Jonathan
#22744

Sent from my HTC on the Now Network from Sprint!

- Reply message -
From: A. Pishdadi apishd...@gmail.com
Date: Wed, Feb 29, 2012 11:12 pm
Subject: Switch designed for mirroring tap ports
To: NANOG nanog@nanog.org

Hello All,

We are looking for a switch or a device that we can use for mirroring tap
ports. For example , take a mirror port off of a core router say a 6509,
connect it to a port on said device, say port 1. I would like then to be
able to mirror port 1 on said device to multiple ports,  like port 2 , 3,
4. We have the need to analyze traffic from one port on multiple devices.
Seems most switches are limited to mirroring to a max of 1 or 2 ports.


Any suggestions would be great.

Thanks,
Ameen


Re: Switch designed for mirroring tap ports

2012-03-01 Thread A. Pishdadi
No the issue isnt monitoring many ports at once, its having more then 1 set
of monitoring or 2 sets in the 6500 case. So I am monitoring say port
channel 1 to ports 1 2 3 4, and port channel 2 , ports 4 5 6 and 7. After
that I cannot monitor anymore ports.

On Thu, Mar 1, 2012 at 2:34 AM, gwoo...@gmail.com gwoo...@gmail.com wrote:

 Instead of monitoring the physical interface, monitor the vlan from a
 Cisco IOS perspective on a CAT6500.  This will capture all physical
 interfaces associated with that vlan for mirroring/span.

 HTH

 Jonathan
 #22744

 Sent from my HTC on the Now Network from Sprint!


 - Reply message -
 From: A. Pishdadi apishd...@gmail.com
 Date: Wed, Feb 29, 2012 11:12 pm
 Subject: Switch designed for mirroring tap ports
 To: NANOG nanog@nanog.org

 Hello All,

 We are looking for a switch or a device that we can use for mirroring tap
 ports. For example , take a mirror port off of a core router say a 6509,
 connect it to a port on said device, say port 1. I would like then to be
 able to mirror port 1 on said device to multiple ports,  like port 2 , 3,
 4. We have the need to analyze traffic from one port on multiple devices.
 Seems most switches are limited to mirroring to a max of 1 or 2 ports.


 Any suggestions would be great.

 Thanks,
 Ameen





Re: BBC reports Kenya fiber break

2012-03-01 Thread Georgios Theodoridis

Has it been known the exact time of the incident?
I have found an article reporting that the cut occurred in the mid-day 
of Saturday 25th but nothing more precise.
We would like to use such information for a BGP anomaly detection 
analysis that we are carrying out in our research centre.


Thanks in advance,

George


On 02/29/2012 03:53 PM, Jan Schaumann wrote:

Joly MacFiej...@punkcast.com  wrote:

A comment on the WSJ
storyhttp://online.wsj.com/article/SB10001424052970203833004577249434081658686.htmlcontains
a link to a great map.

http://www.submarinecablemap.com/

I always liked this one, too:
http://is.gd/DXcddb

(Yes, flash. Still.)

-Jan


Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread Tim Franklin
 GAI/GNI do not return TTL values, but this should not be a problem.
 If they were to return anything, it should not be a TTL,  but a time()
 value, after which the result may no longer be used.

 One way to achieve that would be for GAI to return an opaque structure
 that contained the IP and such a value, in a manner consumable by the
 sockets API,  and  adjust  connect()  to return an error if   passed a
 structure containing a ' returned time + TTL'   in the past.

AF_INET_TTL and AFINET6_TTL, with correspondingly expanded struct sockaddr_* ?

Code that explictly requests AF_INET or AF_INET6 would get what it was 
expecting, code that requests AF_UNSPEC on a system with modified getaddrinfo() 
would get the expanded structs with the different ai_family set, and could pass 
them straight into a modified connect().

I'm sure I'm grossly oversimplifying somewhere though...

Regards,
Tim.



Re: Switch designed for mirroring tap ports

2012-03-01 Thread David Swafford
Take a look at VACLs on the Cat side.  It has a capture feature that is
effectively the same as a local SPAN, but without the 2 session limit. If
you do a lot of RSPAN though, this wouldn't be your complete answer (VACL
captures are local only).  VACLs are a bit more granular in defining what's
captured, if say for example you only wanted traffic destined to TCP/80,
you could configure it that way.

David.


On Thu, Mar 1, 2012 at 5:52 AM, Terry Baranski 
terry.baranski.l...@gmail.com wrote:

 On Mar 1, 2012, at 02:13 AM, apishd...@gmail.com wrote:

  Hello All,
 
  We are looking for a switch or a device that we can use for mirroring
  tap ports. For example , take a mirror port off of a core router say
  a 6509, connect it to a port on said device, say port 1. I would like
  then to be able to mirror port 1 on said device to multiple ports,
  like port 2 , 3, 4. We have the need to analyze traffic from one port
  on multiple devices. Seems most switches are limited to mirroring to a
  max of 1 or 2 ports.

 We like Gigamon for this purpose.

 -Terry






RE: Switch designed for mirroring tap ports

2012-03-01 Thread Chris Mills
Echoing what Terry said... we use gigamon devices for this too.

-Chris
On Mar 1, 2012 5:53 AM, Terry Baranski terry.baranski.l...@gmail.com
wrote:

 On Mar 1, 2012, at 02:13 AM, apishd...@gmail.com wrote:

  Hello All,
 
  We are looking for a switch or a device that we can use for mirroring
  tap ports. For example , take a mirror port off of a core router say
  a 6509, connect it to a port on said device, say port 1. I would like
  then to be able to mirror port 1 on said device to multiple ports,
  like port 2 , 3, 4. We have the need to analyze traffic from one port
  on multiple devices. Seems most switches are limited to mirroring to a
  max of 1 or 2 ports.

 We like Gigamon for this purpose.

 -Terry






Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread Owen DeLong

On Feb 29, 2012, at 10:15 PM, Jimmy Hess wrote:

 On Mon, Feb 27, 2012 at 10:57 PM, Matt Addison
 matt.addi...@lists.evilgeni.us wrote:
 gai/gni do not return TTL values on any platforms I'm aware of, the
 only way to get TTL currently is to use a non standard resolver (e.g.
 lwres). The issue is application developers not calling gai every time
 
 GAI/GNI do not return TTL values, but this should not be a problem.
 If they were to return anything, it should not be a TTL,  but a time()
 value, after which
 the result may no longer be used.
 
 One way to achieve that would be for GAI to return an opaque structure
 that contained the IP and such a value, in a manner consumable by the
 sockets API,  and  adjust  connect()  to return an error if   passed a
 structure containing a ' returned time + TTL'   in the past.
 
 
 TTL values are a DNS resolver function;  the application consuming the
 sockets API
 should not be concerned about details of the DNS protocol.
 
 All the application developer should need to know is that you invoke
 GAI/GNI and wait for a response.
 Once you have that response,  it is permissible to use the value immediately,
 but you may not store or re-use that value  for more than a few seconds.
 
 If you require that value again later, then you invoke GAI/GNI again;
 any caching details
 are the concern of the resolver library developer who has implemented GAI/GNI.
 
 --
 -JH

The simpler approach and perfectly viable without mucking up what is already 
implemented and working:

Don't keep returns from GAI/GNI around longer than it takes to cycle through 
your connect() loop immediately after the GAI/GNI call.

If you write your code to the standard of:

getaddrinfo();
/* do something with the results */
freeaddrinfo();

with a very limited amount of time passing between getaddrinfo() and 
freeaddrinfo(), then, you don't need TTLs and it doesn't matter.

The system resolver library should do the right thing with DNS TTLs for records 
retrieved from DNS and a subsequent call to getaddrinfo() within the DNS TTL 
for the previously retrieved record should be a relatively cheap, fast 
in-memory operation.

Owen




RE: Switch designed for mirroring tap ports

2012-03-01 Thread Harry Hoffman


Re: Switch designed for mirroring tap ports

2012-03-01 Thread Robert E. Seastrom

A. Pishdadi apishd...@gmail.com writes:

 We are looking for a switch or a device that we can use for mirroring tap
 ports. For example , take a mirror port off of a core router say a 6509,
 connect it to a port on said device, say port 1. I would like then to be
 able to mirror port 1 on said device to multiple ports,  like port 2 , 3,
 4. We have the need to analyze traffic from one port on multiple devices.
 Seems most switches are limited to mirroring to a max of 1 or 2 ports.

http://www.netoptics.com/products/regeneration-taps

Been reasonably happy with these on 100m and gigabit links in the
past, can't imagine that their 10g products don't work just as well.

-r




Re: Switch designed for mirroring tap ports

2012-03-01 Thread David Barak
Hi Ameen,

Wouldn#39;t it work to have a switch aggregating your monitor sessions just 
disable MAC learning?  Traffic from a single input interface would be 
replicated to all other ports on the vlan where learning is disabled.  
I#39;ve used this with a 3750, and I haven#39;t seen any trouble (other than 
that you don#39;t want that switch in-line with anything else).

David Barak


Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread Joe Greco
 
 On Wed, Feb 29, 2012 at 4:02 PM, Joe Greco jgr...@ns.sol.net wrote:
  In the specific case of TTL, the problem is made much worse due to the
  way most client code has hidden this data from developers, so that many
  developers don't even have any idea that such a thing exists.
 
  I'm not sure how to see that a design failure of the TTL mechanism.
 
 Hi Joe,
 
 You shouldn't see that as a design failure of the TTL mechanism. It
 isn't. It's a failure of the system of which DNS TTL is a component.
 The TTL component itself was reasonably designed.

Think that's pretty much what I said.

 The failure is likened to installing a well designed sprinkler system
 (the DNS with a TTL) and then shutting off the water valve
 (gethostbyname/getaddrinfo).

No, the water still works as intended.  I think your analogy starts to
fail here.  It's more like expecting a water suppression system to put
out a grease fire.  The TTL mechanism is completely suitable for what
it was originally meant for, and in an environment where everyone has
followed the rules, it works fine.  If you take a light office space
with sprinklers and remodel it into a short order grill, the fire
inspector will require you to rework the fire suppression system to
an appropriate system.

Problem is, TTL is a relatively light-duty system that people have felt
free to ignore, overload for other purposes, etc., but there's no fire
inspector to come around and tell people how and why what they've done
is broken.  In the case of TTL, the system is even largely hidden from
users, so that it is rarely thought about except now and then on NANOG,
dns-operations, etc.  ;-)  No wonder it is even poorly understood.

  I don't see developers ignoring DNS and hardcoding IP addresses into
  code as a failure of the DNS system.
 
 It isn't. It's a failure of the sockets API design which calls on
 every application developer to (a) translate the name to a set of
 addresses with a mechanism that discards the TTL knowledge and (b)
 implement his own glue between name to address mapping and connect by
 address.
 
 It would be like telling an app developer: here's the ARP function and
 the SEND function. When you Send to an IP address, make sure you
 attach the right destination MAC. Of course the app developer gets it
 wrong most of the time.

That's correct - and it doesn't imply that the system that was engineered
is faulty.  In all likelihood, the fault lies with what the app developer
was told.

You originally said:

If three people died and the building burned down then the sprinkler
system didn't work. It may have sprayed water, but it didn't *work*.

That's not true.  If it sprayed water in the manner it was designed to,
then it worked.  If three people took sleeping pills and didn't wake up
when the alarms blared, and an arsonist poured ten gallons of gas
everywhere before lighting the fire, the system still worked.  It failed
to save those lives or protect the building from burning down, but I
am aware of no fire suppression systems that realistically attempts to
address that.  It is an unreasonable expectation.

I have a hard time seeing the many self-inflicted wounds of people who
have attempted to abuse TTL for various purposes as a failure of the TTL
design.  The design is reasonable.

... 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: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread William Herrin
On Thu, Mar 1, 2012 at 7:20 AM, Owen DeLong o...@delong.com wrote:
 The simpler approach and perfectly viable without mucking
 up what is already implemented and working:

 Don't keep returns from GAI/GNI around longer than it takes
 to cycle through your connect() loop immediately after the GAI/GNI call.

The even simpler approach: create an AF_NAME with a sockaddr struct
that contains a hostname instead of an IPvX address. Then let
connect() figure out the details of caching, TTLs, protocol and
address selection, etc.  Such a connect() could even support a revised
TCP stack which is able to retry with the other addresses at the first
subsecond timeout rather than camping on each address in sequence for
the typical system default of two minutes.

Regards,
Bill Herrin


-- 
William D. Herrin  her...@dirtside.com  b...@herrin.us
3005 Crane Dr. .. Web: http://bill.herrin.us/
Falls Church, VA 22042-3004



Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread William Herrin
On Thu, Mar 1, 2012 at 8:25 AM, Joe Greco jgr...@ns.sol.net wrote:
 If three people died and the building burned down then the sprinkler
 system didn't work. It may have sprayed water, but it didn't *work*.

 That's not true.  If it sprayed water in the manner it was designed to,
 then it worked.

That's like the old crack about ICBM interceptors. Why yes, our system
performed swimmingly in the latest test achieving nine out of the ten
criteria for success. Which criteria didn't it achieve? It missed the
target.

Regards,
Bill Herrin


-- 
William D. Herrin  her...@dirtside.com  b...@herrin.us
3005 Crane Dr. .. Web: http://bill.herrin.us/
Falls Church, VA 22042-3004



RE: Switch designed for mirroring tap ports

2012-03-01 Thread Slade, Ian
Yes, the Cat 6500s are limited to a certain number of SPAN/port
monitoring sessions.

Another tool, we've switched to after using the Gigamon for many years
are taps and the Anue 5236 (10Gb) port aggregator.  From this we can
split the SPAN feeds into different IDS/monitoring servers or load-share
among several output servers.  It is a great tool and very easy GUI to
control the feeds and output ports.


Ian Slade
Sr. Network Engineer, SAIC ITS Systems Engineering
ian.sl...@saic.com  703-676-5234  http://www.saic.com


-Original Message-
From: nanog-bounces+ian.slade=saic@nanog.org
[mailto:nanog-bounces+ian.slade=saic@nanog.org] On Behalf Of A.
Pishdadi
Sent: Thursday, March 01, 2012 3:54 AM
To: gwoo...@gmail.com
Cc: NANOG
Subject: Re: Switch designed for mirroring tap ports

No the issue isnt monitoring many ports at once, its having more then 1
set of monitoring or 2 sets in the 6500 case. So I am monitoring say
port channel 1 to ports 1 2 3 4, and port channel 2 , ports 4 5 6 and 7.
After that I cannot monitor anymore ports.

On Thu, Mar 1, 2012 at 2:34 AM, gwoo...@gmail.com gwoo...@gmail.com
wrote:

 Instead of monitoring the physical interface, monitor the vlan from a 
 Cisco IOS perspective on a CAT6500.  This will capture all physical 
 interfaces associated with that vlan for mirroring/span.

 HTH

 Jonathan
 #22744

 Sent from my HTC on the Now Network from Sprint!


 - Reply message -
 From: A. Pishdadi apishd...@gmail.com
 Date: Wed, Feb 29, 2012 11:12 pm
 Subject: Switch designed for mirroring tap ports
 To: NANOG nanog@nanog.org

 Hello All,

 We are looking for a switch or a device that we can use for mirroring 
 tap ports. For example , take a mirror port off of a core router say a

 6509, connect it to a port on said device, say port 1. I would like 
 then to be able to mirror port 1 on said device to multiple ports,  
 like port 2 , 3, 4. We have the need to analyze traffic from one port
on multiple devices.
 Seems most switches are limited to mirroring to a max of 1 or 2 ports.


 Any suggestions would be great.

 Thanks,
 Ameen






Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread Joe Greco
 On Thu, Mar 1, 2012 at 8:25 AM, Joe Greco jgr...@ns.sol.net wrote:
  If three people died and the building burned down then the sprinkler
  system didn't work. It may have sprayed water, but it didn't *work*.
 
  That's not true. =A0If it sprayed water in the manner it was designed to,
  then it worked.
 
 That's like the old crack about ICBM interceptors. Why yes, our system
 performed swimmingly in the latest test achieving nine out of the ten
 criteria for success. Which criteria didn't it achieve? It missed the
 target.

Difference: the fire suppression system worked as designed, the ICBM 
didn't.

That's kind of the whole point here.  If you have something like an
automobile that's designed to protect you against certain kinds of
accidents, it isn't a failure if it does not protect you against an
accident that is not reasonably within the protection envelope.

For example, cars these days are designed to protect against many
different types of impacts and provide survivability.  It is a failure
if my car is designed to protect against a head-on crash at 30MPH by
use of engineered crumple zones and deploying air bags, and I get into
such an accident and am killed regardless.  However, if I fly my car
into a bridge abutment at 150MPH and am instantly pulverized, I am not
prepared to consider that a failure of the car.  Likewise, if a freeway
overpass slab falls on my car and crushes me as I drive underneath it,
I am not going to consider that a failure of the car.

There's a definite distinction between a system that fails when it is
deployed and used in the intended manner, and a system that doesn't
work as you'd like it to when it is used in some incorrect manner, which
is really not a failure as the word is normally used.

... 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: BBC reports Kenya fiber break

2012-03-01 Thread Oliver Garraux
On Thu, Mar 1, 2012 at 4:11 AM, Georgios Theodoridis gt...@iti.gr wrote:
 Has it been known the exact time of the incident?
 I have found an article reporting that the cut occurred in the mid-day of
 Saturday 25th but nothing more precise.
 We would like to use such information for a BGP anomaly detection analysis
 that we are carrying out in our research centre.

 Thanks in advance,

 George



It sounds like there were multiple cables that were lost recently.
For the EASSy cable issue in the Red Sea, an ISP in Malawi stated the
issues started at 09:26 on Friday 17 February.  I don't know first
hand if that is accurate to the minute or not.  I believe this is
separate from the cable off the cost of Kenya that was cut on the
25th.

Oliver



Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread Michael Thomas

On 03/01/2012 06:26 AM, William Herrin wrote:

On Thu, Mar 1, 2012 at 7:20 AM, Owen DeLongo...@delong.com  wrote:

The simpler approach and perfectly viable without mucking
up what is already implemented and working:

Don't keep returns from GAI/GNI around longer than it takes
to cycle through your connect() loop immediately after the GAI/GNI call.

The even simpler approach: create an AF_NAME with a sockaddr struct
that contains a hostname instead of an IPvX address. Then let
connect() figure out the details of caching, TTLs, protocol and
address selection, etc.  Such a connect() could even support a revised
TCP stack which is able to retry with the other addresses at the first
subsecond timeout rather than camping on each address in sequence for
the typical system default of two minutes.


The effect of what you're recommending is to move all of this
into the kernel, and in the process greatly expand its scope. Also:
even if you did this, you'd be saddled with the same problem because
nothing existing would use an AF_NAME.

The real issue is that gethostbyxxx has been inadequate for a very
long time. Moving it across the kernel boundary solves nothing and
most likely causes even more trouble: what if I want, say, asynchronous
name resolution? What if I want to use SRV records? What if a new DNS
RR comes around -- do i have do recompile the kernel? It's for these
reasons and probably a whole lot more that connect just confuses the
actual issues.

When I was writing the first version of DKIM I used a library that I scraped
off the net called ARES. It worked adequately for me, but the most notable
thing was the very fact that I had to scrape it off the net at all. As far as
I could tell, standard distos don't have libraries with lower level access to
DNS (in my case, it needed to not block). Before positing a super-deluxe
gethostbyxx that does addresses picking, etc, etc, it would be better to
lobby all of the distos to settle on a decomposed resolver library from
which that and more could be built.

Mike



Re: Switch designed for mirroring tap ports

2012-03-01 Thread Shawn Morris
I believe MRV's Media Cross Connects will do this.

http://www.mrv.com/tap/physical-layer/


On Thu, Mar 1, 2012 at 1:12 AM, A. Pishdadi apishd...@gmail.com wrote:
 Hello All,

 We are looking for a switch or a device that we can use for mirroring tap
 ports. For example , take a mirror port off of a core router say a 6509,
 connect it to a port on said device, say port 1. I would like then to be
 able to mirror port 1 on said device to multiple ports,  like port 2 , 3,
 4. We have the need to analyze traffic from one port on multiple devices.
 Seems most switches are limited to mirroring to a max of 1 or 2 ports.


 Any suggestions would be great.

 Thanks,
 Ameen



Re: Switch designed for mirroring tap ports

2012-03-01 Thread Ron Broersma
Be careful when considering the Anue products.  When we evaluated both Anue and 
Gigamon, we had to rule out Anue due to total lack of IPv6 support, and went 
with Gigamon instead.  I have not heard whether the situation has changed in 
the last year.  We liked both products for their functionality and ease of use, 
but for us IPv6 was the distinguishing capability.

--Ron

Ron Broersma
DREN Chief Engineer

On Mar 1, 2012, at 9:50 AM, Slade, Ian wrote:

 Yes, the Cat 6500s are limited to a certain number of SPAN/port
 monitoring sessions.
 
 Another tool, we've switched to after using the Gigamon for many years
 are taps and the Anue 5236 (10Gb) port aggregator.  From this we can
 split the SPAN feeds into different IDS/monitoring servers or load-share
 among several output servers.  It is a great tool and very easy GUI to
 control the feeds and output ports.
 
 
 Ian Slade
 Sr. Network Engineer, SAIC ITS Systems Engineering
 ian.sl...@saic.com  703-676-5234  http://www.saic.com
 
 
 -Original Message-
 From: nanog-bounces+ian.slade=saic@nanog.org
 [mailto:nanog-bounces+ian.slade=saic@nanog.org] On Behalf Of A.
 Pishdadi
 Sent: Thursday, March 01, 2012 3:54 AM
 To: gwoo...@gmail.com
 Cc: NANOG
 Subject: Re: Switch designed for mirroring tap ports
 
 No the issue isnt monitoring many ports at once, its having more then 1
 set of monitoring or 2 sets in the 6500 case. So I am monitoring say
 port channel 1 to ports 1 2 3 4, and port channel 2 , ports 4 5 6 and 7.
 After that I cannot monitor anymore ports.
 
 On Thu, Mar 1, 2012 at 2:34 AM, gwoo...@gmail.com gwoo...@gmail.com
 wrote:
 
 Instead of monitoring the physical interface, monitor the vlan from a 
 Cisco IOS perspective on a CAT6500.  This will capture all physical 
 interfaces associated with that vlan for mirroring/span.
 
 HTH
 
 Jonathan
 #22744
 
 Sent from my HTC on the Now Network from Sprint!
 
 
 - Reply message -
 From: A. Pishdadi apishd...@gmail.com
 Date: Wed, Feb 29, 2012 11:12 pm
 Subject: Switch designed for mirroring tap ports
 To: NANOG nanog@nanog.org
 
 Hello All,
 
 We are looking for a switch or a device that we can use for mirroring 
 tap ports. For example , take a mirror port off of a core router say a
 
 6509, connect it to a port on said device, say port 1. I would like 
 then to be able to mirror port 1 on said device to multiple ports,  
 like port 2 , 3, 4. We have the need to analyze traffic from one port
 on multiple devices.
 Seems most switches are limited to mirroring to a max of 1 or 2 ports.
 
 
 Any suggestions would be great.
 
 Thanks,
 Ameen
 
 
 
 



smime.p7s
Description: S/MIME cryptographic signature


Riverbed/Akamai/Rakamai

2012-03-01 Thread Kristian Kielhofner
As long as we're talking about cloud networks, Akamai and Riverbed
have finally let out details on their partnership for optimizing
Cloud applications:

http://www.nojitter.com/post/232601716/rakamai-makes-the-cloud-work-better

While I'm familiar with Akamai (what they do and how they do it) I
don't have any experience with Riverbed.

Does anyone know what they actually do and how they do it?  As usual
it's tough to cut through the marketing on the little detail they make
available (never a good sign).

-- 
Kristian Kielhofner



Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread Joe Greco
 On 03/01/2012 06:26 AM, William Herrin wrote:
  On Thu, Mar 1, 2012 at 7:20 AM, Owen DeLongo...@delong.com  wrote:
  The simpler approach and perfectly viable without mucking
  up what is already implemented and working:
 
  Don't keep returns from GAI/GNI around longer than it takes
  to cycle through your connect() loop immediately after the GAI/GNI call.
  The even simpler approach: create an AF_NAME with a sockaddr struct
  that contains a hostname instead of an IPvX address. Then let
  connect() figure out the details of caching, TTLs, protocol and
  address selection, etc.  Such a connect() could even support a revised
  TCP stack which is able to retry with the other addresses at the first
  subsecond timeout rather than camping on each address in sequence for
  the typical system default of two minutes.
 
 The effect of what you're recommending is to move all of this
 into the kernel, and in the process greatly expand its scope. Also:
 even if you did this, you'd be saddled with the same problem because
 nothing existing would use an AF_NAME.
 
 The real issue is that gethostbyxxx has been inadequate for a very
 long time. Moving it across the kernel boundary solves nothing and
 most likely causes even more trouble: what if I want, say, asynchronous
 name resolution? What if I want to use SRV records? What if a new DNS
 RR comes around -- do i have do recompile the kernel? It's for these
 reasons and probably a whole lot more that connect just confuses the
 actual issues.
 
 When I was writing the first version of DKIM I used a library that I scraped
 off the net called ARES. It worked adequately for me, but the most notable
 thing was the very fact that I had to scrape it off the net at all. As far as
 I could tell, standard distos don't have libraries with lower level access to
 DNS (in my case, it needed to not block). Before positing a super-deluxe
 gethostbyxx that does addresses picking, etc, etc, it would be better to
 lobby all of the distos to settle on a decomposed resolver library from
 which that and more could be built.

It's deeper than just that, though.  The whole paradigm is messy, from
the point of view of someone who just wants to get stuff done.  The
examples are (almost?) all fatally flawed.  The code that actually gets
at least some of it right ends up being too complex and too hard for
people to understand why things are done the way they are.

Even in the old days, before IPv6, geez, look at this:

bcopy(host-h_addr_list[n], (char *)addr-sin_addr.s_addr, 
sizeof(addr-sin_addr.s_addr));

That's real comprehensible - and it's essentially the data interface 
between the resolver library and the system's addressing structures
for syscalls.

On one hand, it's great that they wanted to abstract the dirty details
of DNS away from users, but I'd say they failed pretty much even at that.

... 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: Switch designed for mirroring tap ports

2012-03-01 Thread Jeff Kell
How about splitting up a heavy stream (10G) into components (1G) to run through 
an
inline device and reassemble the pieces back to an aggregate afterward?

TippingPoint makes a core controller box for this but it's pretty hideously 
expensive.

Could do it with two 6500s but that's pretty hideously expensive as well :)

Jeff



Re: Switch designed for mirroring tap ports

2012-03-01 Thread Harry Hoffman
Gigamon has a new product offering that claims to do this (their sales 
guys just met with me a few days ago and gave me a update on their 
latest offerings).


It's the G-Secure-something or other.

We're using the 2404's so I don't have any experience with it.

Cheers,
Harry

On 03/01/2012 10:22 AM, Jeff Kell wrote:

How about splitting up a heavy stream (10G) into components (1G) to run through 
an
inline device and reassemble the pieces back to an aggregate afterward?

TippingPoint makes a core controller box for this but it's pretty hideously 
expensive.

Could do it with two 6500s but that's pretty hideously expensive as well :)

Jeff






Re: BBC reports Kenya fiber break

2012-03-01 Thread Frank Habicht
On 3/1/2012 5:54 PM, Oliver Garraux wrote:
 On Thu, Mar 1, 2012 at 4:11 AM, Georgios Theodoridis gt...@iti.gr wrote:
 Has it been known the exact time of the incident?
 I have found an article reporting that the cut occurred in the mid-day of
 Saturday 25th but nothing more precise.
 We would like to use such information for a BGP anomaly detection analysis
 that we are carrying out in our research centre.

 Thanks in advance,

 George


 
 It sounds like there were multiple cables that were lost recently.
 For the EASSy cable issue in the Red Sea, an ISP in Malawi stated the
 issues started at 09:26 on Friday 17 February.  I don't know first
 hand if that is accurate to the minute or not.  I believe this is
 separate from the cable off the cost of Kenya that was cut on the
 25th.
 
 Oliver

timestamp is GMT+0(or maybe UTC) :

6413: Feb 17 07:17:53.606: %LINEPROTO-5-UPDOWN: Line protocol on
Interface POS0/1/0, changed state to down

yes, on NTP.

Frank



Re: Riverbed/Akamai/Rakamai

2012-03-01 Thread Leo Bicknell
In a message written on Thu, Mar 01, 2012 at 10:09:27AM -0500, Kristian 
Kielhofner wrote:
 Does anyone know what they actually do and how they do it?  As usual
 it's tough to cut through the marketing on the little detail they make
 available (never a good sign).

It's been a while since I looked at Riverbed, and it was part of a
test with other providers of the same technologies.  So I'll give
you a general overview of the sorts of things they do.

WAN Optimizers implment an array of tricks to get more throughput
out of the same bandwidth:

  - Compression, simply compress the data as it flows.
  - TCP optimization, work around known issues with window scaling and
other TCP throughput problems by being a man in the the middle and
faking out one or both sides.
  - Tricking LAN protocols into working over the WAN.  This was one of 
the first big selling points.  Various MS LAN protocls weren't
designed for high latency links with packet loss, and so by being
a man in the middle dealing with the WAN and presenting an optimized
view they worked much better.
  - Data deduplication, cache blocks of data repeatedly sent (file
sharing read-only documents is a prime example) at the far end
and re-serve them without going across a WAN.
  - Caching various soft failures (PMTU failures, unreachables, etc)
to deliver them faster.

Depending on your workload they may be total magic, getting gigabits
of throughput from a T1, or snake oil, not making a bit of difference.
The key in all cases is they have to be paired though, one on each
end of the WAN (read low bandwidth and/or high latency) link.  To
date that has limited them to deployments inside of enterprises for
the most part, and often to places with a hub and spoke topology
otherwise the deployment gets complex quickly.

What I'm hearing here is one of these boxes is in the Akamai node.
Now if the enterprise customer has one at their site you have two
end points for downloading Akamaized content.  This may be able to
optimize throughput (say, via compression or TCP optimization) or
reduce load/costs (say via data deduplication) or both for a customer
who happens to have a Riverbed box on their network.

I've got no idea how effective this would be on standard Akamized
content, but if you already own a Riverbed it's probably some free
optimization.  Is it enough to make you buy a Riverbed if you don't
already own one?  Interesting question.

-- 
   Leo Bicknell - bickn...@ufp.org - CCIE 3440
PGP keys at http://www.ufp.org/~bicknell/


pgpNN8Cz0UsAe.pgp
Description: PGP signature


Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread Michael Thomas

On 03/01/2012 07:22 AM, Joe Greco wrote:

It's deeper than just that, though.  The whole paradigm is messy, from
the point of view of someone who just wants to get stuff done.  The
examples are (almost?) all fatally flawed.  The code that actually gets
at least some of it right ends up being too complex and too hard for
people to understand why things are done the way they are.

Even in the old days, before IPv6, geez, look at this:

bcopy(host-h_addr_list[n], (char *)addr-sin_addr.s_addr, 
sizeof(addr-sin_addr.s_addr));

That's real comprehensible - and it's essentially the data interface
between the resolver library and the system's addressing structures
for syscalls.

On one hand, it's great that they wanted to abstract the dirty details
of DNS away from users, but I'd say they failed pretty much even at that.


Yes, as simple as the normal kernel interface is for net io, getting
to the point that you can do a connect() is both maddeningly
messy and maddeningly inflexible -- the worst of all possible
worlds. We shouldn't kid ourselves that DNS is a simple protocol
though. It has layers of complexity and the policy decisions about
address picking are not easy. But things like dealing with caching
correctly shouldn't be that painful if done correctly by, say, discouraging
copying addresses with, say, a wrapper function that validates the
TTL and hands you back a filled out sockaddr.

But not wanting to block -- which is needed for an event loop or
run to completion like interface -- adds a completely new dimension.
Maybe it's the intersection of all of these complexities that's at the root
of why we're stuck with either gethostbyxx or roll your own.

Mike



Re: WW: Colo Vending Machine

2012-03-01 Thread Jay Ashworth
- Original Message -
 From: Dale Shaw dale.shaw+na...@gmail.com

 What about something like this?
 
 http://www.comsol.com.au/SL-PCC-01

While they might not sell to the US, that's roughly equivalent in formfactor
to the Lantronix spider to which I posted a link...

Cheers,
-- jra
-- 
Jay R. Ashworth  Baylink   j...@baylink.com
Designer The Things I Think   RFC 2100
Ashworth  Associates http://baylink.pitas.com 2000 Land Rover DII
St Petersburg FL USA  http://photo.imageinc.us +1 727 647 1274



Re: BBC reports Kenya fiber break

2012-03-01 Thread Andree Toonk
Hi Georgios,

.-- My secret spy satellite informs me that at 12-03-01 1:11 AM
Georgios Theodoridis wrote:
 Has it been known the exact time of the incident?
 I have found an article reporting that the cut occurred in the mid-day
 of Saturday 25th but nothing more precise.
 We would like to use such information for a BGP anomaly detection
 analysis that we are carrying out in our research centre.

Looking at BGP data we can see large outages for both Kenya and Uganda
starting at around 9:12 UTC on February the 25th.

Also see:
http://www.bgpmon.net/africa-feb25.png

Cheers,
 Andree



Re: [nanog] Re: Switch designed for mirroring tap ports

2012-03-01 Thread David LaPorte
We're doing something similar - VACLs (using the redirect action) with
port-channel destinations on a span aggregation 650x.  If you've got a
spare 650x chassis lying around and your configuration requirements
aren't terribly complex/dynamic, you can do monitoring with filtering
and load-balancing at high-throughput on it.

On 03/01/12 06:03, David Swafford wrote:
 Take a look at VACLs on the Cat side.  It has a capture feature that is
 effectively the same as a local SPAN, but without the 2 session limit. If
 you do a lot of RSPAN though, this wouldn't be your complete answer (VACL
 captures are local only).  VACLs are a bit more granular in defining what's
 captured, if say for example you only wanted traffic destined to TCP/80,
 you could configure it that way.
 
 David.
 
 
 On Thu, Mar 1, 2012 at 5:52 AM, Terry Baranski 
 terry.baranski.l...@gmail.com wrote:
 
 On Mar 1, 2012, at 02:13 AM, apishd...@gmail.com wrote:

 Hello All,

 We are looking for a switch or a device that we can use for mirroring
 tap ports. For example , take a mirror port off of a core router say
 a 6509, connect it to a port on said device, say port 1. I would like
 then to be able to mirror port 1 on said device to multiple ports,
 like port 2 , 3, 4. We have the need to analyze traffic from one port
 on multiple devices. Seems most switches are limited to mirroring to a
 max of 1 or 2 ports.

 We like Gigamon for this purpose.

 -Terry



Re: Riverbed/Akamai/Rakamai

2012-03-01 Thread Michael Still
Found this in one of my RSS feeds this am:
http://www.youtube.com/watch?v=GNOXSmMfcGs

Sort of explains it.

On Thu, Mar 1, 2012 at 10:09 AM, Kristian Kielhofner k...@kriskinc.com wrote:
 As long as we're talking about cloud networks, Akamai and Riverbed
 have finally let out details on their partnership for optimizing
 Cloud applications:

 http://www.nojitter.com/post/232601716/rakamai-makes-the-cloud-work-better

 While I'm familiar with Akamai (what they do and how they do it) I
 don't have any experience with Riverbed.

 Does anyone know what they actually do and how they do it?  As usual
 it's tough to cut through the marketing on the little detail they make
 available (never a good sign).

 --
 Kristian Kielhofner




-- 
[stillwa...@gmail.com ~]$ cat .signature
cat: .signature: No such file or directory
[stillwa...@gmail.com ~]$



Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread William Herrin
On Thu, Mar 1, 2012 at 10:01 AM, Michael Thomas m...@mtcc.com wrote:
 On 03/01/2012 06:26 AM, William Herrin wrote:
 The even simpler approach: create an AF_NAME with a sockaddr struct
 that contains a hostname instead of an IPvX address. Then let
 connect() figure out the details of caching, TTLs, protocol and
 address selection, etc.  Such a connect() could even support a revised
 TCP stack which is able to retry with the other addresses at the first
 subsecond timeout rather than camping on each address in sequence for
 the typical system default of two minutes.


 The effect of what you're recommending is to move all of this
 into the kernel, and in the process greatly expand its scope.

Hi Michael,

libc != kernel. I want to move the action into the standard libraries
where it can be done once and done well. A little kernel action on top
to parallelize connection attempts where there are multiple candidate
addresses would be gravy, but not required.


 even if you did this, you'd be saddled with the same problem because
 nothing existing would use an AF_NAME.

It won't instantly fix everything so we shouldn't do it at all?


 what if I want, say, asynchronous
 name resolution? What if I want to use SRV records? What if a new DNS
 RR comes around

Then you do it the long way, same as you do now. But in the 99% of the
time that you're initiating a connection the normal way, you don't
have to (badly) reinvent the wheel.


 As far as
 I could tell, standard distos don't have libraries with lower level access to
 DNS (in my case, it needed to not block). Before positing a super-deluxe
 gethostbyxx that does addresses picking, etc, etc it would be better to
 lobby all of the distos to settle on a decomposed resolver library from
 which that and more could be built.

(A) Revised standards are -how- multiple OSes from multiple vendors
coordinate the deployment of an identical capability.

(B) Application programmers generally DO want the abstraction from
DNS to Name resolution. If there's an /etc/hosts name or a NIS
name or a Windows name available, you ordinarily want to use it. You
don't want to build extra code to search each name service
independently any more than you want to build extra code to cycle
through candidate addresses.

Regards,
Bill Herrin


-- 
William D. Herrin  her...@dirtside.com  b...@herrin.us
3005 Crane Dr. .. Web: http://bill.herrin.us/
Falls Church, VA 22042-3004



Re: Switch designed for mirroring tap ports

2012-03-01 Thread Dale W. Carder

Thus spake Jeff Kell (jeff-k...@utc.edu) on Thu, Mar 01, 2012 at 10:22:29AM 
-0500:
 How about splitting up a heavy stream (10G) into components (1G) to run 
 through an
 inline device and reassemble the pieces back to an aggregate afterward?

Sounds like a perfect job for a commodity switch that supports OpenFlow.

Dale



Many dns queries to a.root-servers.net

2012-03-01 Thread Dario Aguilar
Hi, I'm seeing quite a lot of queries for a.root-servers.net IN A in the
logs of my caching servers. They seem to be coming from home normal DSL
customers (IPs who would be expected to be using the name servers) with
each sending one query every 2 seconds.
They all together represents more than de 10% of the total queries. I am
guessing it is probably some sort of spyware/malware/virus/router/O.S.
version but I was wondering if anyone knows offhand?


Re: BBC reports Kenya fiber break

2012-03-01 Thread Steven Bellovin

On Feb 29, 2012, at 11:17 17AM, Marshall Eubanks wrote:

 On Wed, Feb 29, 2012 at 10:08 AM, Justin M. Streiner
 strei...@cluebyfour.org wrote:
 On Wed, 29 Feb 2012, Rodrick Brown wrote:
 
 There's about 1/2 a dozen or so known private and government research
 facilities on Antarctica and I'm surprised to see no fiber end points on
 that continent? This can't be true.
 
 
 Constantly shifting ice shelves and glaciers make a terrestrial cable
 landing very difficult to implement on Antarctica.  Satellite connectivity
 is likely the only feasible option.  There are very few places in
 Antarctica that are reliably ice-free enough of the time to make a viable
 terrestrial landing station.  Getting connectivity from the landing station
 to other places on the continent is another matter altogether.
 
 Apparently at least one long fiber pull has been contemplated.
 
 http://news.bbc.co.uk/2/hi/sci/tech/2207259.stm
 
 (Note : the headline is incorrect - the Internet reached the South Pole in 
 1994,
 via satellite, of course :
 http://www.southpolestation.com/trivia/90s/ftp1.html )
 
 As far as I can tell, this was never done, and the South Pole gets its
 Internet mostly via
 TDRSS.
 
 http://www.usap.gov/technology/contentHandler.cfm?id=1971


Yes.  I had discussions with some of their network support folks circa 1994 -- 
with
limited bandwidth (DS0, as I recall) and only a few hours of connectivity per 
day,
when a satellite was over the horizon, they were very concerned about attackers
clogging their link.

--Steve Bellovin, https://www.cs.columbia.edu/~smb








Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread Michael Thomas

On 03/01/2012 08:57 AM, David Conrad wrote:



Moving it across the kernel boundary solves nothing

Actually, it does.  Right now, applications effectively cache the address in 
their data space, requiring the application developer to go to quite a bit of 
work to deal with the address changing (or, far more typically, just pretend 
addresses never change). This has a lot of unfortunate side effects.


My rule of thumb is for this sort of thing does it *require* kernel level 
access?
In this case, the answer is manifestly no. As far as ttl's go in particular, 
most
apps would work perfectly well always doing real DNS socket IO to a local 
resolver
each time which has the side effect that it would honor ttl, as well as 
benefiting
from cross process caching. It could be done in the kernel, but it would be 
introducing
a *lot* of complexity and inflexibility.

Even if you did want super high performance local DNS resolution, there are
still a lot of other ways to achieve that besides jamming it into the kernel. A
lot of the beauty of UNIX is that the kernel system interface is simple... 
dragging
more into the kernel is aesthetically wrong.


What if I want to use SRV records? What if a new DNS
RR comes around -- do i have do recompile the kernel?

I believe with the exception of A/, RDATA is typically returned as either 
opaque (to the DNS) data blobs or names. This means the only stuff the kernel 
would need to deal with would be the A/ lookups, everything else would be 
passed back as data, presumably via a new system call.


SRV records? This is starting to get really messy inside the kernel and for
no good reason that I can see.




As far as
I could tell, standard distos don't have libraries with lower level access to
DNS (in my case, it needed to not block).

There have been lower-level resolver APIs since (at least) BSD 4.3 (man 
resolver(3)).


This is all getting sort of hazy since it was 8 years ago, but yes res_XX 
existed,
and hence the ares_ analog that I used. Maybe all that's really needed for low
level access primitives is a merger of res_ and ares_... asynchronous resolution
is a fairly important feature for modern event loop like things. But I don't 
claim
to be a DNS wonk so it might be worse than that.

Mike



Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread Michael Thomas

On 03/01/2012 08:58 AM, William Herrin wrote:

On Thu, Mar 1, 2012 at 10:01 AM, Michael Thomasm...@mtcc.com  wrote:

On 03/01/2012 06:26 AM, William Herrin wrote:

The even simpler approach: create an AF_NAME with a sockaddr struct
that contains a hostname instead of an IPvX address. Then let
connect() figure out the details of caching, TTLs, protocol and
address selection, etc.  Such a connect() could even support a revised
TCP stack which is able to retry with the other addresses at the first
subsecond timeout rather than camping on each address in sequence for
the typical system default of two minutes.


The effect of what you're recommending is to move all of this
into the kernel, and in the process greatly expand its scope.

Hi Michael,

libc != kernel. I want to move the action into the standard libraries
where it can be done once and done well. A little kernel action on top
to parallelize connection attempts where there are multiple candidate
addresses would be gravy, but not required.


connect(2) is a kernel level call just like open(2), etc. It may
have a thin wrapper, but that's OS dependent, IIRC.

man connect 2:

The  connect()  system  call connects the socket referred to by the file 
descriptor...

Mike



Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread William Herrin
On Thu, Mar 1, 2012 at 1:32 PM, Michael Thomas m...@mtcc.com wrote:
 On 03/01/2012 08:58 AM, William Herrin wrote:
 libc != kernel. I want to move the action into the standard libraries
 where [resolve and connect] can be done once and done well.
 A little kernel action on top
 to parallelize connection attempts where there are multiple candidate
 addresses would be gravy, but not required.

 connect(2) is a kernel level call just like open(2), etc. It may
 have a thin wrapper, but that's OS dependent, IIRC.

 man connect 2:

 The  connect()  system  call connects the socket referred to by the file
 descriptor...

Then name the new one something else and document it in man section 3.
Next objection?

-Bill


-- 
William D. Herrin  her...@dirtside.com  b...@herrin.us
3005 Crane Dr. .. Web: http://bill.herrin.us/
Falls Church, VA 22042-3004



Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread Owen DeLong
 
 It's deeper than just that, though.  The whole paradigm is messy, from
 the point of view of someone who just wants to get stuff done.  The
 examples are (almost?) all fatally flawed.  The code that actually gets
 at least some of it right ends up being too complex and too hard for
 people to understand why things are done the way they are.
 
 Even in the old days, before IPv6, geez, look at this:
 
 bcopy(host-h_addr_list[n], (char *)addr-sin_addr.s_addr, 
 sizeof(addr-sin_addr.s_addr));
 
 That's real comprehensible - and it's essentially the data interface 
 between the resolver library and the system's addressing structures
 for syscalls.
 
 On one hand, it's great that they wanted to abstract the dirty details
 of DNS away from users, but I'd say they failed pretty much even at that.
 
 ... 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.

I think that the modern set of getaddrinfo and connect is actually not that 
complicated:

  /* Hints for getaddrinfo() (tell it what we want) */
  memset(addrinfo, 0, sizeof(addrinfo));   /* Zero out the buffer */
  addrinfo.ai_family=PF_UNSPEC; /* Any and all address families 
*/
  addrinfo.ai_socktype=SOCK_STREAM; /* Stream Socket */
  addrinfo.ai_protocol=IPPROTO_TCP; /* TCP */
  /* Ask the resolver library for the information. Exit on failure. */
  /* argv[1] is the hostname passed in by the user. demo is the service name 
*/
  if (rval = getaddrinfo(argv[1], demo, addrinfo, res) != 0) {
fprintf(stderr, %s: Failed to resolve address information.\n, argv[0]);
exit(2);
  }

  /* Iterate through the results */
  for (r=res; r; r = r-ai_next) {
/* Create a socket configured for the next candidate */
sockfd6 = socket(r-ai_family, r-ai_socktype, r-ai_protocol);
/* Try to connect */
if (connect(sockfd6, r-ai_addr, r-ai_addrlen)  0)
{
  /* Failed to connect */
  e_save = errno;
  /* Destroy socket */
  (void) close(sockfd6);
  /* Recover the error information */
  errno = e_save;
  /* Tell the user that this attempt failed */
  fprintf(stderr, %s: Failed attempt to %s.\n, argv[0], 
get_ip_str((struct sockaddr *)r-ai_addr, buf, BUFLEN));
  /* Give error details */
  perror(Socket error);
} else {/* Success! */
  /* Inform the user */
  snprintf(s, BUFLEN, %s: Succeeded to %s., argv[0],
get_ip_str((struct sockaddr *)r-ai_addr, buf, BUFLEN));
  debug(5, argv[0], s);
  /* Flag our success */
  success++;
  /* Stop iterating */
  break;
}
  }
  /* Out of the loop. Either we succeeded or ran out of possibilities */
  if (success == 0) /* If we ran out of possibilities... */
  {
/* Inform the user, free up the resources, and exit */
fprintf(stderr, %s: Failed to connect to %s.\n, argv[0], argv[1]);
freeaddrinfo(res);
exit(5);
  }
  /* Succeeded. Inform the user and continue with the application */
  printf(%s: Successfully connected to %s at %s on FD %d.\n, argv[0], argv[1],
get_ip_str((struct sockaddr *)r-ai_addr, buf, BUFLEN),
sockfd6);
  /* Free up the memory held by the resolver results */
  freeaddrinfo(res);

It's really hard to make a case that this is all that complex.

I put a lot of extra comments in there to make it clear what's happening for 
people who may not be used to coding in C. It also contains a whole lot of 
extra user notification and debugging instrumentation because it is designed as 
an example people can use to learn with. 

Yes, this was a lot messier and a lot stranger and harder to get right with 
get*by{name,addr}, but, those days are long gone and anyone still coding with 
those needs to move forward.

Owen



Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread William Herrin
On Thu, Mar 1, 2012 at 4:07 PM, Owen DeLong o...@delong.com wrote:
 I think that the modern set of getaddrinfo and connect is actually not that 
 complicated:

Owen,

If took you 50 lines of code to do
'socket=connect(www.google.com,80,TCP);' and you still managed to
produce a version which, due to the timeout on dead addresses, is
worthless for any kind of interactive program like a web browser. And
because that code isn't found in a system library, every single
application programmer has to write it all over again.

I'm a fan of Rube Goldberg machines but that was ridiculous.

Regards,
Bill Herrin





-- 
William D. Herrin  her...@dirtside.com  b...@herrin.us
3005 Crane Dr. .. Web: http://bill.herrin.us/
Falls Church, VA 22042-3004



Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread Mark Andrews

In message CAP-guGXLpzai4LrxyJcNn06yQ1jAEu4QeRpVzGRah=+ogly...@mail.gmail.com
, William Herrin writes:
 On Thu, Mar 1, 2012 at 4:07 PM, Owen DeLong o...@delong.com wrote:
  I think that the modern set of getaddrinfo and connect is actually not th=
 at complicated:
 
 Owen,
 
 If took you 50 lines of code to do
 'socket=connect(www.google.com,80,TCP);' and you still managed to
 produce a version which, due to the timeout on dead addresses, is
 worthless for any kind of interactive program like a web browser. And
 because that code isn't found in a system library, every single
 application programmer has to write it all over again.

And your 'socket=connect(www.google.com,80,TCP);' won't work for
a web browser either unless you are using threads and are willing
to have the thread stall.

The existing connect() semantics actually work well for browsers
but they need to be properly integrated into the system as a whole.
Nameservers have similar connect() issues as web browsers with one
advantage, most of the time we are connecting to a machine we have
just connected to via UDP.  That doesn't mean we don't do non-blocking
connect however.

 I'm a fan of Rube Goldberg machines but that was ridiculous.
 
 Regards,
 Bill Herrin
-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742 INTERNET: ma...@isc.org



Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread Owen DeLong
William,

I could have done it in a lot less lines of code, but, it would have been much 
less readable.

Not blocking on the connect() call is a little more complex, but, not terribly 
so. It does, however, again, make the code quite a bit less readable.

There are libraries available that abstract everything I did there and you are 
welcome to use them.

Since C does not support overloading, they export different functions for the 
behavior you seek.

If you want, program in Python where the libraries do provide the abstraction 
you seek. Of course, that means you have to cope with Python's other disgusting 
habits like spaces are meaningful and variables are indistinguishable from 
code, but, there's always a tradeoff.

You don't have to reinvent what I've done. Neither does every or any other 
application programmer.
You are welcome to use any of the many connection abstraction libraries that 
are available in open source. I suggest you make a trip through google code.

Owen

On Mar 1, 2012, at 2:09 PM, William Herrin wrote:

 On Thu, Mar 1, 2012 at 4:07 PM, Owen DeLong o...@delong.com wrote:
 I think that the modern set of getaddrinfo and connect is actually not that 
 complicated:
 
 Owen,
 
 If took you 50 lines of code to do
 'socket=connect(www.google.com,80,TCP);' and you still managed to
 produce a version which, due to the timeout on dead addresses, is
 worthless for any kind of interactive program like a web browser. And
 because that code isn't found in a system library, every single
 application programmer has to write it all over again.
 
 I'm a fan of Rube Goldberg machines but that was ridiculous.
 
 Regards,
 Bill Herrin
 
 
 
 
 
 -- 
 William D. Herrin  her...@dirtside.com  b...@herrin.us
 3005 Crane Dr. .. Web: http://bill.herrin.us/
 Falls Church, VA 22042-3004




Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread William Herrin
On Thu, Mar 1, 2012 at 5:37 PM, Owen DeLong o...@delong.com wrote:
 You don't have to reinvent what I've done. Neither does every
 or any other application programmer.
 You are welcome to use any of the many connection
 abstraction libraries that are available in open source.
 I suggest you make a trip through google code.

Which is what everybody basically does. And when it works during the
decidedly non-rigorous testing, they move on to the next problem...
with code that doesn't perform well in the corner cases. Such as when
a host has just been renumbered or one of the host's addresses is
unreachable.

And because most everybody has made more or less the same errors, the
DNS TTL fails to cause their applications to work as intended and
loses its utility as a tool to facilitate renumbering.


 If you want, program in Python where the libraries do
 provide the abstraction you seek. Of course, that
 means you have to cope with Python's other disgusting
 habits like spaces are meaningful and variables are
 indistinguishable from code, but, there's always a tradeoff.

::shudder::  I don't *want* to do anything in python. The occasional
reality of a situation dictates that I do some work in python, but I
most definitely don't *want* to.

Regards,
Bill Herrin


-- 
William D. Herrin  her...@dirtside.com  b...@herrin.us
3005 Crane Dr. .. Web: http://bill.herrin.us/
Falls Church, VA 22042-3004



Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread Chuck Anderson
On Thu, Mar 01, 2012 at 05:57:11PM -0500, William Herrin wrote:
 Which is what everybody basically does. And when it works during the
 decidedly non-rigorous testing, they move on to the next problem...
 with code that doesn't perform well in the corner cases. Such as when
 a host has just been renumbered or one of the host's addresses is
 unreachable.
 
 And because most everybody has made more or less the same errors, the
 DNS TTL fails to cause their applications to work as intended and
 loses its utility as a tool to facilitate renumbering.

Is there an RFC or BCP that describes how to correctly write such a
library?  Perhaps we need to work to get such a thing, and then push
for RFC-compliance of the resolver libraries, or develop a set of
libraries named after and fully compliant with the RFC and get
software to use them.



Re: BBC reports Kenya fiber break

2012-03-01 Thread Jim Cowie
On Thu, Mar 1, 2012 at 4:11 AM, Georgios Theodoridis gt...@iti.gr wrote:

 Has it been known the exact time of the incident?
 I have found an article reporting that the cut occurred in the mid-day of
 Saturday 25th but nothing more precise.
 We would like to use such information for a BGP anomaly detection analysis
 that we are carrying out in our research centre.

 Thanks in advance,

 George



Renesys published a brief writeup of the incident yesterday.   We called it
at 09:13 UTC on the 25th.   Lots of interesting outage and transit-shift
effects to see in the East African BGP data that day.  We also report some
shifts in latency based on active measurement, as everyone's traffic jumps
onto the surviving connectivity through SEACOM.   Kenya Data Networks
(AS33770) did a particularly good job staying alive by virtue of their
upstream provider diversity, kudos to them.

http://www.renesys.com/blog/2012/02/east-african-cable-breaks.shtml

best,  --jim


Re: Reliable Cloud host ?

2012-03-01 Thread Jeroen van Aart

Randy Carpenter wrote:

Does anyone have any recommendation for a reliable cloud host?



Basic requirements:

1. Full redundancy with instant failover to other hypervisor hosts upon 
hardware failure (I thought this was a given!)


Assuming a simple set up as you suggest. If what you want to do is a lot 
more complex it would be worth your while to use your own hardware at a 
coloc, and alternatively set up your own VPSes.


I think your best bet is to design your systems with failover taken into 
account and not to depend on the VPS provider to provide you this.


Say you want smtp in addition to DNS. You would set up a VPS in 2 
different locations (or more) using 2 different VPS providers. You set 
up your favourite name server and email server on each server, configure 
your mx records to point to both and you tell your registrar to use both 
servers as the nameserver for your domain(s).


When a server goes ofline dns queries and emails automagically go to the 
other server.


No need to depend on one single VPS provider and their crappy 
infrastructure.



3. reasonable pricing (No, $800/month is not reasonable when I need a tiny 256MB 
RAM Server with 1GB/mo of data transfers)


Lots of reasonably priced VPS providers out there. And once you have set 
up redundancy in your own design it doesn't matter much how redundant 
they are. More important will be how spam/pollution free the network 
neighbourhood is. Amazon would not be the best choice in that regard.


I have had good luck with small local VPS providers, often ISPs.

Greetings,
Jeroen

--
Earthquake Magnitude: 3.2
Date: Thursday, March  1, 2012 16:31:08 UTC
Location: Central California
Latitude: 36.6378; Longitude: -121.2510
Depth: 5.50 km



Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread Owen DeLong

On Mar 1, 2012, at 2:57 PM, William Herrin wrote:

 On Thu, Mar 1, 2012 at 5:37 PM, Owen DeLong o...@delong.com wrote:
 You don't have to reinvent what I've done. Neither does every
 or any other application programmer.
 You are welcome to use any of the many connection
 abstraction libraries that are available in open source.
 I suggest you make a trip through google code.
 
 Which is what everybody basically does. And when it works during the
 decidedly non-rigorous testing, they move on to the next problem...
 with code that doesn't perform well in the corner cases. Such as when
 a host has just been renumbered or one of the host's addresses is
 unreachable.
 

Then push for better written abstraction libraries. There's no need to
break the current functionality of the underlying system calls and
libc functions which would be needed by any such library anyway.

 And because most everybody has made more or less the same errors, the
 DNS TTL fails to cause their applications to work as intended and
 loses its utility as a tool to facilitate renumbering.
 

Since I don't write applications for a  living, I will admit I haven't 
rigorously
tested any of the libraries out there, but, I'm willing to bet that someone,
somewhere has probably written a good one by now.

 
 If you want, program in Python where the libraries do
 provide the abstraction you seek. Of course, that
 means you have to cope with Python's other disgusting
 habits like spaces are meaningful and variables are
 indistinguishable from code, but, there's always a tradeoff.
 
 ::shudder::  I don't *want* to do anything in python. The occasional
 reality of a situation dictates that I do some work in python, but I
 most definitely don't *want* to.

Believe me, I'm in the same boat on that one. However, it is the only
language I know of that provides the kind of interface you are demanding.
Perhaps this should tell you something about what you are asking for. ;-)

Owen




Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread William Herrin
On Thu, Mar 1, 2012 at 8:02 PM, Owen DeLong o...@delong.com wrote:
 There's no need to
 break the current functionality of the underlying system calls and
 libc functions which would be needed by any such library anyway.

Owen,

Point to one sentence written by anybody in this entire thread in
which breaking current functionality was proposed.


 And because most everybody has made more or less the same errors, the
 DNS TTL fails to cause their applications to work as intended and
 loses its utility as a tool to facilitate renumbering.

 Since I don't write applications for a  living, I will admit I haven't 
 rigorously
 tested any of the libraries out there, but, I'm willing to bet that someone,
 somewhere has probably written a good one by now.

Yeah, and if you give me a few weeks I can probably find it amidst all
the others which aren't so hot.

Regards,
Bill



-- 
William D. Herrin  her...@dirtside.com  b...@herrin.us
3005 Crane Dr. .. Web: http://bill.herrin.us/
Falls Church, VA 22042-3004



Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread Owen DeLong

On Mar 1, 2012, at 5:15 PM, William Herrin wrote:

 On Thu, Mar 1, 2012 at 8:02 PM, Owen DeLong o...@delong.com wrote:
 There's no need to
 break the current functionality of the underlying system calls and
 libc functions which would be needed by any such library anyway.
 
 Owen,
 
 Point to one sentence written by anybody in this entire thread in
 which breaking current functionality was proposed.
 
When you said that:

connect(char *name, uint16_t port) should work

That can't work without breaking the existing functionality of the connect() 
system call.

 
 And because most everybody has made more or less the same errors, the
 DNS TTL fails to cause their applications to work as intended and
 loses its utility as a tool to facilitate renumbering.
 
 Since I don't write applications for a  living, I will admit I haven't 
 rigorously
 tested any of the libraries out there, but, I'm willing to bet that someone,
 somewhere has probably written a good one by now.
 
 Yeah, and if you give me a few weeks I can probably find it amidst all
 the others which aren't so hot.
 

I doubt it would take weeks, but, in any case, it's probably faster than 
writing and
debugging your own.

Owen




Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread Matt Addison
On Mar 1, 2012, at 17:10, William Herrin b...@herrin.us wrote:
 If took you 50 lines of code to do
 'socket=connect(www.google.com,80,TCP);' and you still managed to
 produce a version which, due to the timeout on dead addresses, is
 worthless for any kind of interactive program like a web browser. And
 because that code isn't found in a system library, every single
 application programmer has to write it all over again.

 I'm a fan of Rube Goldberg machines but that was ridiculous.

I'm thinking for this to work it would have to be 2 separate calls:

Call 1 being to the resolver (using lwres, system resolver, or
whatever you want to use) and returning an array of struct addrinfo-
same as gai does currently. If applications need TTL/SRV/$NEWRR
awareness it would be implemented here.

Call 2 would be a happy eyeballs connect syscall (mconnect? In the
spirit of sendmmsg) which accepts an array of struct addrinfo and
returns an fd. In the case of O_NONBLOCK it would return a dummy fd
(as non-blocking connects do currently) then once one of the
connections finishes handshake the kernel connects it to the FD and
signals writable to trigger select/poll/epoll. This allows developers
to keep using the same loops (and most of the APIs) they're already
comfortable with, keeps DNS out of the kernel, but hopefully provides
a better and easier to use connect() experience, for SOCK_STREAM at
least.

It's not as neat as a single connect() accepting a name, but seems to
be a happy medium and provides a standardized/predictable connect()
experience without breaking existing APIs.

~Matt



Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread William Herrin
On Thu, Mar 1, 2012 at 8:47 PM, Owen DeLong o...@delong.com wrote:
 On Mar 1, 2012, at 5:15 PM, William Herrin wrote:
 On Thu, Mar 1, 2012 at 8:02 PM, Owen DeLong o...@delong.com wrote:
 There's no need to
 break the current functionality of the underlying system calls and
 libc functions which would be needed by any such library anyway.

 Owen,

 Point to one sentence written by anybody in this entire thread in
 which breaking current functionality was proposed.

 When you said that:

 connect(char *name, uint16_t port) should work

 That can't work without breaking the existing functionality of the connect() 
 system call.

You know, when I wrote 'socket=connect(www.google.com,80,TCP);' I
stopped and thought to myself, I wonder if I should change that to
'connectbyname' instead just to make it clear that I'm not replacing
the existing connect() call? But then I thought, No, there's a
thousand ways someone determined to misunderstand what I'm saying will
find to misunderstand it. To someone who wants to understand my point,
this is crystal clear.

-Bill


-- 
William D. Herrin  her...@dirtside.com  b...@herrin.us
3005 Crane Dr. .. Web: http://bill.herrin.us/
Falls Church, VA 22042-3004



Re: dns and software, was Re: Reliable Cloud host ?

2012-03-01 Thread Owen DeLong

On Mar 1, 2012, at 9:34 PM, William Herrin wrote:

 On Thu, Mar 1, 2012 at 8:47 PM, Owen DeLong o...@delong.com wrote:
 On Mar 1, 2012, at 5:15 PM, William Herrin wrote:
 On Thu, Mar 1, 2012 at 8:02 PM, Owen DeLong o...@delong.com wrote:
 There's no need to
 break the current functionality of the underlying system calls and
 libc functions which would be needed by any such library anyway.
 
 Owen,
 
 Point to one sentence written by anybody in this entire thread in
 which breaking current functionality was proposed.
 
 When you said that:
 
 connect(char *name, uint16_t port) should work
 
 That can't work without breaking the existing functionality of the connect() 
 system call.
 
 You know, when I wrote 'socket=connect(www.google.com,80,TCP);' I
 stopped and thought to myself, I wonder if I should change that to
 'connectbyname' instead just to make it clear that I'm not replacing
 the existing connect() call? But then I thought, No, there's a
 thousand ways someone determined to misunderstand what I'm saying will
 find to misunderstand it. To someone who wants to understand my point,
 this is crystal clear.

I'm all for additional library functionality built on top of what exists that 
does what you want.

As I said, there are many such libraries out there to do that.

If someone wants to add it to libc, more power to them. I'm not the libc 
maintainer.

I just don't want conect() to stop working the way it does or for getaddrinfo() 
to stop
working the way it does.

Since you were hell bent on calling the existing mechanisms broken rather than
conceding the point that the current process is not broken, but, could stand 
some
improvements in the library (http://owend.corp.he.net/ipv6 I even say as much 
myself),
it was not entirely clear that you did not intend to replace connect() rather 
than
augment the current capabilities with additional more abstract functions with
different names.

Owen




Re: BBC reports Kenya fiber break

2012-03-01 Thread Georgios Theodoridis
I would like to deeply thank you all for your prompt response as well as 
for your generous contribution and the most interesting information that 
you shared.

Of course any further insight is still more than welcome.

Best regards,

George

On 03/02/2012 01:22 AM, Jim Cowie wrote:



On Thu, Mar 1, 2012 at 4:11 AM, Georgios Theodoridis gt...@iti.gr 
mailto:gt...@iti.gr wrote:


Has it been known the exact time of the incident?
I have found an article reporting that the cut occurred in the
mid-day of Saturday 25th but nothing more precise.
We would like to use such information for a BGP anomaly detection
analysis that we are carrying out in our research centre.

Thanks in advance,

George



Renesys published a brief writeup of the incident yesterday.   We 
called it at 09:13 UTC on the 25th.   Lots of interesting outage and 
transit-shift effects to see in the East African BGP data that day. 
 We also report some shifts in latency based on active measurement, as 
everyone's traffic jumps onto the surviving connectivity through 
SEACOM.   Kenya Data Networks (AS33770) did a particularly good job 
staying alive by virtue of their upstream provider diversity, kudos to 
them.


http://www.renesys.com/blog/2012/02/east-african-cable-breaks.shtml

best,  --jim