[olug] Ping Is Broken

Aric Aasgaard aric at omahax.com
Mon Oct 12 08:09:52 UTC 2009


The interface isn't on the network your trying to ping.

How are you attempting to get from one NIC to the other? Not via the same
switch I hope.

May I ask what you are trying to do?  There might be an easier way.

As far a multi NIC BSD systems, yeah I got a few pfsense boxes, it is BSD.
I started using pfsense when I couldn't get multi WAN Linux to work.



-----Original Message-----
From: olug-bounces at olug.org [mailto:olug-bounces at olug.org] On Behalf Of Rob
Townley
Sent: Sunday, October 11, 2009 12:32 PM
To: Omaha Linux User Group
Subject: Re: [olug] Ping Is Broken

On Sat, Oct 10, 2009 at 8:17 PM, Aric Aasgaard <aric at omahax.com> wrote:
> Does
> traceroute -i eth0 -I 208.67.222.222
> using ICMP

eth0 = 4.3.2.8, the default gateway is thru eth1.
tracert -i eth0 -I 208.67.222.222        FAILS
tracert -s 4.3.2.8 -I 208.67.222.222   WORKS
tracert -i eth0 208.67.222.222           FAILS
tracert -s 4.3.2.8 208.67.222.222      WORKS

There is a still a great deal of heated argument on the netdev list on
how to make network device naming better.  Some want to name
interfaces in the order of MAC address, others in the name of bus
enumeration, some think symbolic links will make things more
complicated, others want it.  Please test using the following script.
Anybody have a multinic BSD system up that would care to test this.
OSX?

#!/bin/bash
#The following is a script to test source routing thru the network
interface alias vs ip address.
#Put in your own IP addresses here.
ip0=4.3.2.8
ip1=192.168.168.155
for interface in eth0 $ip0 eth1 $ip1; do echo testing $interface; ping
-I $interface 208.67.222.222; done;

>
> or using UDP
> traceroute -i eth0 208.67.222.222
>
> Work?
>
> -----Original Message-----
> From: olug-bounces at olug.org [mailto:olug-bounces at olug.org] On Behalf Of
Rob
> Townley
> Sent: Friday, October 09, 2009 11:45 AM
> To: netdev at vger.kernel.org
> Cc: CentOS mailing list; Omaha Linux User Group
> Subject: Re: [olug] Ping Is Broken
>
> ping -I is broken
>
> The following deals with bug in ping that made it very difficult to set up
a
> system with two gateways.
>
> Demonstration that *ping -I is broken*. When specifying the source
> interface using -I with an *ethX* alias and that interface is not the
> default gateway
> interface, then ping fails. When specifying the interface as an ip
address,
> ping works. Search for "Destination Host Unreachable" to find the bug.
>
>
> eth*0* = 4.3.2.8 and the default gateway is accessed through a different
> interface eth*1*.
> eth*1* = 192.168.168.155 is used as the device to get to the default
> gateway.
> *FAILS *: ping *-I eth0* 208.67.222.222
> *WORKS*: ping *-I 4.3.2.8* 208.67.222.222
> *WORKS*: ping *-I eth1* 208.67.222.222
> *WORKS*: ping *-I 192.168.168.155* 208.67.222.222
>
> The following are actual results which can be reproduced from an
up-to-date
> Fedora 11 or CentOS 5.3 box. Caused a very very long episode of
frustration
> when setting up multi gatewayed systems.
>
>
> * ping using eth0 *:
>
> ping -c 2 -B -I  eth0 208.67.222.222
> PING 208.67.222.222 (208.67.222.222) from 4.3.2.8 eth0: 56(84) bytes of
> data.
> From 4.3.2.8 icmp_seq=1 Destination Host Unreachable
> From 4.3.2.8 icmp_seq=2 Destination Host Unreachable
>
> --- 208.67.222.222 ping statistics ---
> 2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 999ms
> , pipe 2
>
> --------------------------------------
> The Following all WORK:
> * ping using 4.3.2.8 *:
>
> ping -c 2 -B -I  4.3.2.8 208.67.222.222
> PING 208.67.222.222 (208.67.222.222) from 4.3.2.8 : 56(84) bytes of data.
> 64 bytes from 208.67.222.222: icmp_seq=1 ttl=55 time=562 ms
> 64 bytes from 208.67.222.222: icmp_seq=2 ttl=55 time=642 ms
>
> --- 208.67.222.222 ping statistics ---
> 2 packets transmitted, 2 received, 0% packet loss, time 999ms
> rtt min/avg/max/mdev = 562.546/602.400/642.255/39.862 ms
>
>
> * ping using eth1 *:
>
> ping -c 2 -B -I  eth1 208.67.222.222
> PING 208.67.222.222 (208.67.222.222) from 192.168.168.155 eth1: 56(84)
> bytes of data.
> 64 bytes from 208.67.222.222: icmp_seq=1 ttl=54 time=270 ms
> 64 bytes from 208.67.222.222: icmp_seq=2 ttl=54 time=629 ms
>
> --- 208.67.222.222 ping statistics ---
> 2 packets transmitted, 2 received, 0% packet loss, time 1000ms
> rtt min/avg/max/mdev = 270.128/449.766/629.405/179.639 ms
>
>
> * ping using 192.168.168.155 *:
>
> ping -c 2 -B -I  192.168.168.155 208.67.222.222
> PING 208.67.222.222 (208.67.222.222) from 192.168.168.155 : 56(84)
> bytes of data.
> 64 bytes from 208.67.222.222: icmp_seq=1 ttl=54 time=585 ms
> 64 bytes from 208.67.222.222: icmp_seq=2 ttl=54 time=554 ms
>
> --- 208.67.222.222 ping statistics ---
> 2 packets transmitted, 2 received, 0% packet loss, time 999ms
> rtt min/avg/max/mdev = 554.098/569.655/585.212/15.557 ms
>
> My source route policy rules:
>
> /sbin/ip rule show
> 0:      from all lookup 255
> 32762:  from 4.3.2.8 lookup nic0
> 32763:  from 192.168.168.155 lookup nic1
> 32764:  from 192.168.168.155 lookup nic1
> 32765:  from 4.3.2.8 lookup nic0
> 32766:  from all lookup main
> 32767:  from all lookup default
>
>
>
> Print out routing tables using /sbin/ip route show table TABLENAME:
> routing table  nic0 :
> /sbin/ip route show table nic0
> default via 4.3.2.1 dev eth0
>
> routing table  nic1 :
> /sbin/ip route show table nic1
> default via 192.168.168.1 dev eth1
>
> routing table  main :
> /sbin/ip route show table main
> 4.3.2.1/27 dev eth0  proto kernel  scope link  src 4.3.2.8
> 192.168.168.0/24 dev eth1  proto kernel  scope link  src 192.168.168.155
> 169.254.0.0/16 dev eth1  scope link
> default via 192.168.168.1 dev eth1
>
> routing table  default :
> /sbin/ip route show table default
>
>
>
>
> NOTES: cat /etc/iproute2/rt_tables to get your own table names.
>
> ping Maintainer YOSHIFUJI Hideaki / USAGI/WIDE Project
>  http://www.skbuff.net/iputils/
> Mailing List netdev at vger.kernel.org
>
> man ping:
>   -I interface address
>        Set source address to specified interface address.
>        Argument may be *numeric IP address or name of device*.
>        When  pinging  IPv6  link-local  address  this option is required.
>
> ping -V returns the latest available on CentOS and Fedora and the
> maintainers website:
> ping utility, iputils-ss020927
> _______________________________________________
> OLUG mailing list
> OLUG at olug.org
> https://lists.olug.org/mailman/listinfo/olug
>
> _______________________________________________
> OLUG mailing list
> OLUG at olug.org
> https://lists.olug.org/mailman/listinfo/olug
>
_______________________________________________
OLUG mailing list
OLUG at olug.org
https://lists.olug.org/mailman/listinfo/olug




More information about the OLUG mailing list