Re: routing problem ???

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Eli,

 : > > Now I bring host B's ib1 interface down
 : > > (ifconfig ib1 down) and I expect that the interface's IP address will no 
 : > 
 : > > longer exists.
 : > 
 : >         This would be an incorrect assumption.
 : > 
 : > Deleting an address and preventing traffic on an interface are two
 : > different operations. As long as there is a route, through any
 : > interface, all addresses identify the same machine and will be
 : > delivered. This isn't Linux-specific behavior.
 : 
 : But the interface is now down. And suppose I would bring ib1 down 
 : on host B and at the same time assign its IP address to another 
 : interface on host C (this is legal isn't it?). Where would the 
 : packets go then?

This might very well be Linux-specific behaviour.  I would encourage 
you to read the iproute2 documentation and compare the output of "ip 
address show" with your expectations.

When you bring an interface down, the IP address is still listed on 
that interface.  If the system has another link to the network, the 
IP address on the "downed interface" is still reachable.  Some 
people view this as counterintuitive behaviour, but this reflects a 
core decision within the kernel's networking stack:

  IP addresses are associated with the host.

Check out the following behaviour on two hosts.  Note, first, that 
the machine multipleInterfaces has several IP addresses.  We are 
only going to be concerned with the addresses on eth1 (but, observe, 
that all packets exchanged below pass over eth0).

  [multipleInterfaces]$ ip -4 addr show 
  1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue 
      inet 127.0.0.1/8 scope host lo
  3: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
      inet 10.10.20.33/24 brd 10.10.20.255 scope global eth0
      inet 10.10.20.44/24 brd 10.10.20.255 scope global secondary eth0:copula
  4: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
      inet 10.10.20.77/32 scope global eth1
  
  [hostA]$ ping -nc1 10.10.20.77
  PING 10.10.20.77 (10.10.20.77) from 10.10.20.1 : 56(84) bytes of data.
  64 bytes from 10.10.20.77: icmp_seq=1 ttl=64 time=0.303 ms
  
  --- 10.10.20.77 ping statistics ---
  1 packets transmitted, 1 received, 0% loss, time 0ms
  rtt min/avg/max/mdev = 0.303/0.303/0.303/0.000 ms

OK, this is no surprise.  We sent a ping packet from h -> m and 
received a reply.  It doesn't matter that eth1 is not connected to 
an Ethernet.  The traffic simply passes over eth0.
  
  [multipleInterfaces]$ ip link set dev eth1 down
  
  [hostA]$ ping -nc1 10.10.20.77
  PING 10.10.20.77 (10.10.20.77) from 10.10.20.1 : 56(84) bytes of data.
  64 bytes from 10.10.20.77: icmp_seq=1 ttl=64 time=0.305 ms
  
  --- 10.10.20.77 ping statistics ---
  1 packets transmitted, 1 received, 0% loss, time 0ms
  rtt min/avg/max/mdev = 0.305/0.305/0.305/0.000 ms

Wait!  Didn't we "turn off" the eth1 interface?  Why is the machine 
responding.  Let's double-check our work:

  [multipleInterfaces]$ ip -4 addr show dev eth1
  4: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast qlen 1000
      inet 10.10.20.77/32 scope global eth1

Well...the interface is not up.  Let's try blowing away the 
IPs on interface eth1.
  
  [multipleInterfaces]$ ip addr flush dev eth1
  
  [hostA]$ ping -nc1 10.10.20.77
  PING 10.10.20.77 (10.10.20.77) from 10.10.20.1 : 56(84) bytes of data.
  
  --- 10.10.20.77 ping statistics ---
  1 packets transmitted, 0 received, 100% loss, time 0ms

That's better!  No reply!

So, Eli, you may need to adjust your system and/or scripts to 
reflect the actual behaviour of the Linux kernel on this matter.  

Good luck,

-Martin

-- 
Martin A. Brown --- Wonderfrog Enterprises --- martin@xxxxxxxxxxxxxx
-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux