On 28/10/14(Tue) 08:57, Adam Thompson wrote: > On 14-10-28 05:55 AM, Martin Pieuchot wrote: > >There's nothing that prevent you to configure the same IPv4 address on > >different interfaces in the same routing domain. But does it make > >sense? > > > >Index: netinet/in.c > >=================================================================== > >RCS file: /home/ncvs/src/sys/netinet/in.c,v > >retrieving revision 1.106 > >diff -u -p -r1.106 in.c > >--- netinet/in.c 7 Oct 2014 08:47:28 -0000 1.106 > >+++ netinet/in.c 28 Oct 2014 10:23:07 -0000 > >@@ -616,6 +616,10 @@ in_ifinit(struct ifnet *ifp, struct in_i > > splsoftassert(IPL_SOFTNET); > >+ /* Make sure this address does not exist in the given rdomain. */ > >+ if (ifa_ifwithaddr(sintosa(sin), ifp->if_rdomain)) > >+ return (EEXIST); > >+ > > if (newaddr) > > TAILQ_INSERT_TAIL(&in_ifaddr, ia, ia_list); > > It might be needful when reconfiguring networks; if I swap two interfaces' > IP addresses in /etc/hostname.* and re-run /etc/netstart instead of > rebooting, I suspect this might break - I believe there would be a very > brief overlap where two interfaces had the same IP address.
The scenario you're describing is already broken :) Did you try? > Come to think of it, I'm not even sure whether this even works or not as-is; > any opinions on what would be the canonical approach to swapping IPs between > interfaces on a live system? Just do it by hand? Write your own script? > Use netstart? Or just reboot? Nobody published a tool that would do that properly, so for the moment do it by hand or reboot your machine.