On Fri, Mar 6, 2009 at 6:11 PM, Daniel Benoy <[email protected]> wrote:
>> Is this necessary?
>> Just set a higher metric on usb0, then routes thorough eth0 will be
>> preferred when available. The default route through usb0 will only be
>> used as a last resort when there is no other way.
>
> Yes. Packets will route out that interface whether it's connected or not
> because it never disappears even when the cable is completely unplugged, and
> I want (obviously) the usb0 interface to be a higher priority than my gprs
> interface, so every packet would go out usb0 if I set it to a preferable
> metric.
>
> Unless I brought the interface up and down manually when the cable is
> disconnected, which brings us back to the original problem.
>
> Also, I'm setting up routing based on firewall rules, so it complicates
> things. When I'm writing my firewall script it needs to know whether usb is
> up or not to decide where web and ssh and instant messaging should be routed.
>
> I eventually did come up with a solution to this. I check the charger state.
> If it detects a host it should be charging at 500mA. This doesn't prove
> that the network interface is successfully configured, but it's good enough
> for my purposes.
>
> If anyone's interested in seeing the convoluted script I had to make, I've
> attached it to this e-mail.
>
> Here's basically what it does for me:
> 1) Automatically brings up and down network interfaces. (Only for usb0 now.
> I took out eth0 wifi scanning because I found a way to do it outside of the
> script. And ppp0 I'm still handling manually.. may change that in the future)
> 2) Creates a routing table for each device with a default route out that
> device automatically by detecting changes to the main table made by ifup and
> other connection software.
> 3) Creates iptables rules automatically based on which interfaces are up and
> which are down, in accordance with my preferences. (xmpp and ssh always go
> out GPRS, because I want the connections to be unbroken when I roam away from
> my usb or wifi connection, and they're low bandwidth)
>
> The effect is that web browsing and such will switch over seamlessly when I
> come within range of my home network, while my instant messager never has its
> connection broken so long as it's in cell phone range.
>
> If you want to try the script as well you'll need some firewall rules, such
> as:
> iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
> iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE
> iptables -t nat -A POSTROUTING -o ppp+ -j MASQUERADE
> iptables -t mangle -A OUTPUT -j CUSTOMROUTE
>
> Someone let me know if there's a better way to achieve this. I thought about
> using the ROUTE iptables target, but it seemed pretty complicated to get
> installed.
>
> One problem I've encountered is that when software determines its source
> address automatically (There's rarely an option to set it by hand, and I
> wouldn't want to be doing that anyway) then it will examine the routing table
> for its source address *without sending a packet* so therefore firewall never
> marks the packet, and the routing table thinks its supposed to use the main
> rule chain. My solution for this was the MASQUERADE lines above.
>
> --
> Daniel Benoy
> http://daniel.benoy.name
Is it possible to use "bonding" to all possible interfaces (eth0,
usb0, bnep0) making preferences trough bonding?
guessed /etc/network/interfaces
--------------------------
iface bond0
inet static
address 10.0.1.5
netmask 255.255.255.0
network 10.0.1.0
gateway 10.0.1.254
up /sbin/ifenslave bond0 usb0
up /sbin/ifenslave bond0 eth0
up /sbin/ifenslave bond0 bnep0
up /sbin/ifenslave bond0 ppp0
alias bond0 bonding
options bonding mode=1 miimon=100 downdelay=200 updelay=200
--------------------------
So it will end with only one bond0 to work with.
may be it's not applicable here
Evgeny.
--
So long, and thanks for all the fish.
_______________________________________________
Openmoko community mailing list
[email protected]
http://lists.openmoko.org/mailman/listinfo/community