On Tue, 18.01.11 18:34, Alexander E. Patrakov (patra...@gmail.com) wrote: > >Hmm, I am not sure how miredo works. Is the client something where you > >have to run one instance per network iface? Or do you have a global > >instance for all? If the latter, then why doesn't it watch the network > >interfaces on its own? > > The client creates its own interface (called "teredo", but in fact > it is just a tun interface). There cannot be more than one copy of > the client, and it should only care about the IPv4 route to the > teredo server (by default, teredo.ipv6.microsoft.com) which is often > the default route.
Hmpf. We live in a mobile world today. It should actively watch the routing table with netlink instead of assuming that an IPv4 connection is unconditionally available. Connections come, connections go, connections are reconfigured. A robust, mobile system must hence be able to watch configuration changes instead of assuming that IP configuration is static like in '95. > miredo creates the socket and the teredo interface > miredo: "hey teredo server, which IPv6 address should I use?" > kernel drops packet, because there is no route (or, alternatively, > DNS doesn't work yet and miredo fails to resolve the IPv4 address of > the teredo server) > miredo waits a bit, gets upset > dhcpcd configures eth0, adds the default route > miredo is still upset > miredo waits 100 seconds > miredo: "hey teredo server, which IPv6 address should I use?" > kernel sends packet > teredo server replies > > So it looks like miredo should reset its timeout when the routing > table changes, and that I have to implement this myself. But I have > no good tutorial on rtnetlink sockets. libnl is the way to go these days. Lennart -- Lennart Poettering - Red Hat, Inc. _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel