Howto? 2 interfaces, same network, same gateway

Linux Advanced Routing and Traffic Control

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

 



Hello

Summary:
I have ifplugd managing eth0 and wlan0 (both dhcp).  When I plug in the cat5 
(which brings up eth0) applications which have already bound to wlan0 stop 
working, obviously because wlan0 for some reason is unable to get non-local 
packets out that interface.  

I figured if poodoze is able to have both interfaces working, then linux must 
surely be able to do it as well.




The lowdown.

I have my beautiful dell i8600 laptop here running debian.

It has the following interfaces.
------------------------------------------------------------------------------
i8600:~# ip addr ls
1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:11:43:5f:e7:1d brd ff:ff:ff:ff:ff:ff
    inet6 fe80::211:43ff:fe5f:e71d/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
    link/ieee1394 43:4f:c0:00:0d:2b:ac:38 brd ff:ff:ff:ff:ff:ff:ff:ff
4: wlan0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:11:f5:0c:d9:a3 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.234/24 brd 192.168.0.255 scope global wlan0
    inet6 fe80::211:f5ff:fe0c:d9a3/64 scope link
       valid_lft forever preferred_lft forever
5: sit0: <NOARP> mtu 1480 qdisc noop
    link/sit 0.0.0.0 brd 0.0.0.0
------------------------------------------------------------------------------

As you can see only wlan0 is up.  That way i can actually do some work.

I have tried manually editing the routing table using `ip`.  I tried making a 
table for wlan0 (seeings that it was the interface unable to get remote 
packets out to the gateway).  I created a table 'wlan0' (200) and attempted 
added a default route for that interfaces (the IP of wlan0).  However it did 
not work.

I thought maybe I had it wrong about doze and double checked.  I was able to 
ping both interfaces, and apps which had bound to the old or new interface 
were all able to work.  Probably because doze doesn't force a dev for a 
default gateway entry.


Is there some same way in linux to have both interfaces working properly?  IE 
bound connections on both IP's able to get out to the default gateway.  
Perferably packets going out the connection they're bound to.


Here is some info about my setup.


The network is 192.168.0/24
eth0 is directly connected to the lan.
wlan0 is connected to a doze box which is bridging to the
  lan (this is not the issue)
gateway is 192.168.0.1

When both interfaces are up (and broken) ... the routing tables look like this 
(wlan0 was brought up first).

------------------------------------------------------------------------------
i8600:~# routing_tables
0:      from all lookup local
32766:  from all lookup main
32767:  from all lookup default
local
--------------------------------------------
local 192.168.0.238 dev eth0  proto kernel  scope host  src 192.168.0.238
broadcast 192.168.0.255 dev wlan0  proto kernel  scope link  src 192.168.0.234
broadcast 192.168.0.255 dev eth0  proto kernel  scope link  src 192.168.0.238
broadcast 127.255.255.255 dev lo  proto kernel  scope link  src 127.0.0.1
local 192.168.0.234 dev wlan0  proto kernel  scope host  src 192.168.0.234
broadcast 192.168.0.0 dev wlan0  proto kernel  scope link  src 192.168.0.234
broadcast 192.168.0.0 dev eth0  proto kernel  scope link  src 192.168.0.238
broadcast 127.0.0.0 dev lo  proto kernel  scope link  src 127.0.0.1
local 127.0.0.1 dev lo  proto kernel  scope host  src 127.0.0.1
local 127.0.0.0/8 dev lo  proto kernel  scope host  src 127.0.0.1


main
--------------------------------------------
192.168.0.0/24 dev wlan0  proto kernel  scope link  src 192.168.0.234
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.238
default via 192.168.0.1 dev eth0
default via 192.168.0.1 dev wlan0


default
--------------------------------------------


------------------------------------------------------------------------------
i8600:~# ip addr ls dev wlan0
4: wlan0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:11:f5:0c:d9:a3 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.234/24 brd 192.168.0.255 scope global wlan0
    inet6 fe80::211:f5ff:fe0c:d9a3/64 scope link
       valid_lft forever preferred_lft forever
------------------------------------------------------------------------------
i8600:~# ip addr ls dev eth0
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:11:43:5f:e7:1d brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.238/24 brd 192.168.0.255 scope global eth0
    inet6 fe80::211:43ff:fe5f:e71d/64 scope link
       valid_lft forever preferred_lft forever
------------------------------------------------------------------------------
i8600:~# ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=2.63 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=2.40 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=2.34 ms

--- 192.168.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 2.343/2.462/2.637/0.132 ms
------------------------------------------------------------------------------
i8600:~# ping -I eth0 192.168.0.1
PING 192.168.0.1 (192.168.0.1) from 192.168.0.238 eth0: 56(84) bytes of data.

--- 192.168.0.1 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 3998ms

------------------------------------------------------------------------------
i8600:~# ping -I wlan0 192.168.0.1
PING 192.168.0.1 (192.168.0.1) from 192.168.0.234 wlan0: 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=3.64 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=2.28 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=2.33 ms

--- 192.168.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 2.289/2.757/3.645/0.630 ms
------------------------------------------------------------------------------
i8600:~# ping -I wlan0 google.com.au
PING google.com.au (216.239.57.104) from 192.168.0.234 wlan0: 56(84) bytes of 
data.

--- google.com.au ping statistics ---
6 packets transmitted, 0 received, 100% packet loss, time 4999ms

------------------------------------------------------------------------------
i8600:~# ping -I wlan0 google.com.au
PING google.com.au (216.239.57.104) from 192.168.0.234 wlan0: 56(84) bytes of 
data.

--- google.com.au ping statistics ---
6 packets transmitted, 0 received, 100% packet loss, time 4999ms

------------------------------------------------------------------------------


As you can see eth0 and wlan0 have pretty much the same routing info which i 
assume is screwing things up.

wlan0 can ping GW yet eth0 can not.

New connections appear to be binding to wlan0 (the one that can ping GW), 
however wlan0 cant ping the outside world.

Does anyone have an answer to this?
(dont answer with "just use one at a time" because that's lame, and linux 
should not be lame.  Esp. when it comes to networking)


------------------------------------------------------------------------------
------------------------------------------------------------------------------
~/bin/routing_tables is: 
#!/bin/sh
ip rule ls
for X in `ip rule ls | awk '{ print $5 }'`
    do echo $X
    echo '--------------------------------------------'
    ip route ls table $X
    echo
    echo
done

-- 
Jarne Cook <jcook@xxxxxxxxxxxxxxxxxxx>
Siliconriver.com.au
_______________________________________________
LARTC mailing list / LARTC@xxxxxxxxxxxxxxx
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux