[eepro100] About RX and TX for a dual port nic on the same network

Ben Greear greearb@candelatech.com
Mon, 17 Sep 2001 13:29:40 -0700


Thomas Lorenzen wrote:
> 
>      Hi'
> 
>    In my cluster setup of linux machines I have a server
> with a dual port nic, which services all the clients via
> diskless boot and root via nfs. The clients and the server
> are connected evenly between two unmanages switches, which
> in turn are connected via their gigabit ports. Half of the
> clients are connected to sw-1, which also hosts eth1 of the
> dual port nic, whereas the other half of the clients are
> connected to sw-2, which also hosts eth2 of the dual port
> nic. I note, that every machine can see each other via the
> gigabit link interconnecting the switches, and thus every
> client is able to see both eth1 and eth2 of the dual port
> nic of the server.
> 
>    Below I present the relevant output of ifconfig.
> 
> eth1      Link encap:Ethernet  HWaddr 00:03:47:3B:27:EE
>           inet addr:192.168.200.100  Bcast:192.168.200.255  Mask:255.255.255.0
>           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>           RX packets:399607 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:1070472 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:100
>           Interrupt:19 Base address:0x4000
> eth2      Link encap:Ethernet  HWaddr 00:03:47:3B:27:EF
>           inet addr:192.168.200.200  Bcast:192.168.200.255  Mask:255.255.255.0
>           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>           RX packets:142634 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:104 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:100
>           Interrupt:16 Base address:0x6000
> 
>    Below I present the relevant output of route.
> 
> 192.168.200.0   *               255.255.255.0   U     0 0 0 eth1
> 192.168.200.0   *               255.255.255.0   U     0 0 0 eth2
> 
>    The problem is, that if I ping the eth2 interface of the
> dual port nic, then the eth1 interface of the dual port nic
> answers back. This is somehow expectable, as both ports are
> (and in my setup has to be) configured on the same network,
> why the first available interface to the kernel apparently
> gets to answer the request. As one can see from the output
> above this however produces a very uneven load on eth1 and
> eth2 with respect to the interfaces. Both interfaces
> receives packages (RX), but just about only the first
> interface answers the requests (TX). In other words, pinging
> eth2 increments RX of eth2, but increments TX on eth1,
> meaning, that eth1 answers the ping.
> 
>    In brief my question goes as follows. Given a dual port
> nic with both interfaces configured on the same network. Is
> there then a way to specify, that packets to a specific
> port, eth2 say, is always answered by the same port, eth2
> say.

Turning on proxy-arp, along with some sort of policy-based
routing should do the trick.

This turns on proxy arp:
echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter

Policy based routing can be manipulated with the 'ip' program,
but I don't know of a real quick way to do what you want...

Ben

> 
>    Thanks for any help in advance.
> 
>    Best Regards.
> 
>      Thomas.
> 
> ----------------------------------------------------------------------
> Cand. Scient. Thomas Lorenzen               Phone : (+ 45) 35 32 02 50
> Department of Chemistry                       Fax : (+ 45) 35 32 02 59
> University of Copenhagen                     Mail : tl@theory.ki.ku.dk
> DK, 2100 Copenhagen, Denmark   Homepage : http://theochem.ki.ku.dk/~tl
> ----------------------------------------------------------------------
> 
> _______________________________________________
> eepro100 mailing list
> eepro100@scyld.com
> http://www.scyld.com/mailman/listinfo/eepro100

-- 
Ben Greear <greearb@candelatech.com>          <Ben_Greear@excite.com>
President of Candela Technologies Inc      http://www.candelatech.com
ScryMUD:  http://scry.wanfear.com     http://scry.wanfear.com/~greear