Duplicate Echo Replies with Channel Bonding

Vincent Aniello vincent.aniello at pipelinefinancial.com
Mon Jan 30 14:47:03 UTC 2006


An "ifconfig -a" shows the failover interface with the NOARP parameter
(see below).  I don't think the issue is related to the interface
responding to the ARP request, though.  Since eth0 would respond to the
ARP request from Router B with the same MAC address as eth1 (and bond0).
The problem seems to be that even though eth1 is the failover interface
it still is receiving and processing traffic.

--Vincent


bond0     Link encap:Ethernet  HWaddr 00:11:43:DC:8C:91
          inet addr:192.168.1.20  Bcast:192.168.1.255
Mask:255.255.255.0
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:2465384 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2096118 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:611740573 (583.4 Mb)  TX bytes:500718216 (477.5 Mb)

eth0      Link encap:Ethernet  HWaddr 00:11:43:DC:8C:91
          inet addr:192.168.1.20  Bcast:192.168.1.255
Mask:255.255.255.0
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:1920547 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2083770 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:502022742 (478.7 Mb)  TX bytes:497797723 (474.7 Mb)
          Base address:0xecc0 Memory:dfae0000-dfb00000

eth1      Link encap:Ethernet  HWaddr 00:11:43:DC:8C:91
          inet addr:192.168.1.20  Bcast:192.168.1.255
Mask:255.255.255.0
          UP BROADCAST RUNNING NOARP SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:544837 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12348 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:109717831 (104.6 Mb)  TX bytes:2920493 (2.7 Mb)
          Base address:0xdcc0 Memory:df8e0000-df900000

 

-----Original Message-----
From: redhat-list-bounces at redhat.com
[mailto:redhat-list-bounces at redhat.com] On Behalf Of Tom Callahan
Sent: Monday, January 30, 2006 9:25 AM
To: General Red Hat Linux discussion list
Subject: Re: Duplicate Echo Replies with Channel Bonding

If you look at "ifconfig" for the non-primary(active) interface, you
should see it say "NOARP"

That means it won't respond to any arp requests....

Thanks,

Tom Callahan
TESSCO Technologies
Desk: (410)-229-1361
Cell: (443)-506-6216
Email: callahant at tessco.com

A real engineer only resorts to documentation when the keyboard dents on
the forehead get too noticeable.



Vincent Aniello wrote:

>I am running bonding with connections to two switches in an
>active/backup configuration (mode=1) with eth0 the  active interface
and
>eth1 the backup.  In this mode both interfaces receive packets, but
only
>the active interface transmits packets.  I am running RedHat Enterprise
>Linux 3.0 (kernel version 2.4.21-27.0.2.Elsmp).
>
>When both eth0 and eth1 are up and I ping from Host C to Host A I get
>duplicate ICMP echo replies.  I believe this is also causing duplicate
>traffic with other types of traffic as well.
>
>I believe I know why this is happening and I would like to see if
anyone
>else has any input on this and hopefully  a solution that does not
>result in losing the redundancy bonding provides.
>
>My network topology is as follows:
>
>                      |          |           |          |
>                      | Firewall |           | Firewall |
>                      +-----+----+           +-----+----+
>                            |                      |
>                            |                      |
> +----------+         +-----+----+           +-----+----+
>+----------+
> |          |   T1    | Router A |  Ethernet | Router B |    T1    |
>|
> | Router D +---------+          |-----------|          +----------+
>Router C |
> |          |         |  Active  |           | Standby  |          |
>|
> |          |         |  Gateway |           | Gateway  |          |
>|
> +----+-----+         +-----+----+           +-----+----+
>+-----+----+
>      |              192.168.1.3/24         192.168.1.4/24
>|
>      |                     | <-HSRP 192.168.1.1-> |
>|
> +----+-----+         +-----+----+           +-----+----+
>+-----+----+
> |          |         |          |           |          |          |
>|
> | Switch D |         | Switch A +-----------+ Switch B |          |
>Switch C |
> |          |         |          +-----------+          |          |
>|
> |          |         |          |           |          |          |
>|
> +----+-----+         +-----+----+           +-----+----+
>+-----+----+
>      |eth0                 |                      |
>|eth0
>  +--------+                |      +--------+      |
>+--------+
>  | Host D |                +------+ Host A +------+                |
>Host C |
>  +--------+                  eth0 +--------+ eth1
>+--------+
>                                     bond0                         
>                                192.168.1.20/24
>
>
>According to my theory the path the echo request packets are taking is
>as follows:
>
>  Host c -> Switch C -> Router C -> Router B -> Switch B
>-+-------------> Host A eth1
>                                                          |
>                                                          +-> Switch A
>-> Host A eth0
>
>The destination network 192.168.120.0/24 exists on both Router A and
>Router B and HSRP is used for failover  between them, with Router A
>being the primary gateway.
>
>The destination network is local to Router B and When the echo request
>gets to Router B this router has the MAC address for 192.168.1.20 in
its
>ARP cache, and if it doesn't it requests it.  
>
>Router B sends the Ethernet frame to the MAC address for 192.168.1.20.
>The interfaces eth0, eth1, and bond0 have  the same MAC address on the
>server.  Switch B does not have the MAC address in its MAC address
table
>and floods  the ports.  In flooding the ports the server receives the
>packet on eth1.  The packet is also sent through the  connection
between
>Switch B and Switch A and received on eth0 of the server.  
>
>Since the packet is received twice by the server (on eth0 & eth1) two
>echo replies are sent along the following  path:
>
>   Host A eth0 -> Switch A -> Router A -> Router B -> Router C ->
Switch
>C -> Host C
>
>The reply packet is sent to the primary gateway IP address on Router A.
>Switch A learns the MAC address of the  server, but Switch B does not.

>
>The switches only learn a MAC address when traffic is received from a
>host on the switch port.  The interface eth0  is the active bonding
>interface all outbound traffic is sent from this interface and
therefore
>the MAC address is  only learned on the switch port that eth0 is
>connected to.  Switch B never learns the MAC address for the server
and
>therefore the duplicate packets never stop when pining Host A from Host
>C.
>
>If I ping Host A from Host D I do not receive duplicate packets.  The
>echo requests are only received once  (through eth0) on the server.
The
>path the packets travel in this setup is:
>
>  Echo Request: Host D -> Switch D -> Router A -> Switch A -> Host A
>eth1
>
>  Echo Reply: Host A eth0 -> Switch A -> Router A -> Router D -> Switch
>D -> Host D
>
>If I shut down one of the bonded (eth0 or eth1) interfaces I stop
>receiving duplicate packets.
>
>Has anyone else experienced this problem and know how to fix it?
>
>Thanks.
>
>--Vincent
>
>  
>

-- 
redhat-list mailing list
unsubscribe mailto:redhat-list-request at redhat.com?subject=unsubscribe
https://www.redhat.com/mailman/listinfo/redhat-list




More information about the redhat-list mailing list