Ühel kenal päeval (reede 17 detsember 2004 20:37) kirjutas Martin A. Brown:
> Hello Hasso and Andrea,
> We've gotten a little far afield from Neil Horman's initial question
> about why there are primary and secondary IPs, and I can't address your
> concern Andrea about the (route cache?) 500ms latency between the time
> that an address is added (or removed) from an interface and the time that
> the address is actually used. Even so, the Linux routing code allows the
> kernel to suggest an IP with the "src" keyword.
> : > Why change the primary address? What is wrong with simply changing
> : > the route to use the other source IP?
> : There is no support for it in most of user space software.
> : None of the routing protocols suites support it etc.
> Though some software provides support for explicit configuration of
> source address for initiated sockets, you can use INADDR_ANY and let the
> kernel perform source address selection for you.
Well, that's the point - we want to have full control over this selection
process without doing fancy things in user space.
> Linux select an IP based on the routing table.  Example:
> # ip route show 192.168.90.0/24
> 192.168.90.0/24 dev eth0 scope link src 192.168.90.250
> # ip route change 192.168.88.0/24 dev eth0 scope link src $SECONDARY
> If you want to be fancy about it, you can have a higher preference
> routing table (make sure there's an entry in /etc/iproute2/rt_tables for
> $SECONDARY_TABLE). Then you can add and remove tables in this routing
> table instead of changing the route in the main routing table.
> # ip rule add prio table $SECONDARY_TABLE
> # ip route add table $SECONDARY_TABLE $DESTNET dev $REALDEV src
All these tricks don't help if you are using dynamic routing.
Elion Enterprises Ltd.