https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=222899

            Bug ID: 222899
           Summary: After lease expiration dhclient-script mess up network
           Product: Base System
           Version: 10.4-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: bin
          Assignee: freebsd-bugs@FreeBSD.org
          Reporter: cab...@yahoo.com

Configuration is like this:
/etc/dhclient.conf:
alias {
        interface "rl0";
        fixed-address 192.168.1.5;
        option subnet-mask 255.255.255.0;
}

So, we have a dynamic address and fixed alias address.

So the interface looks like this:
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=2008<VLAN_MTU,WOL_MAGIC>
        ether xx:xx:xx:xx:xx:xx
        hwaddr xx:xx:xx:xx:xx:xx
        inet 192.168.0.11 netmask 0xffffff00 broadcast 192.168.0.255
        inet 192.168.1.5 netmask 0xffffff00 broadcast 192.168.1.255
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active

But, after the lease expires, dhclient-script renews lease, removes old dynamic
address and adds the new one, at the end of the list. Now it looks like this:
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=2008<VLAN_MTU,WOL_MAGIC>
        ether xx:xx:xx:xx:xx:xx
        hwaddr xx:xx:xx:xx:xx:xx
        inet 192.168.1.5 netmask 0xffffff00 broadcast 192.168.1.255
        inet 192.168.0.11 netmask 0xffffff00 broadcast 192.168.0.255
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active

This has an unintended consequence, that the default route now goes through
fixed alias interface, instead of dynamic interface. As the machine is the
router, it messes up the access to the outside for the rest of the local
network.

I propose a fix like this:
--- dhclient-script.orig        2017-10-09 18:46:39.912218000 +0200
+++ dhclient-script.new         2017-10-09 21:27:45.784826000 +0200
@@ -345,6 +345,7 @@
                add_new_routes
        fi
        if [ "$new_ip_address" != "$alias_ip_address" ]; then
+               delete_old_alias
                add_new_alias
        fi
        if is_default_interface; then

It will, in the RENEW phase, remove and add the alias, which will put it behind
the dynamic address, like it's suppose to be:
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=2008<VLAN_MTU,WOL_MAGIC>
        ether xx:xx:xx:xx:xx:xx
        hwaddr xx:xx:xx:xx:xx:xx
        inet 192.168.0.11 netmask 0xffffff00 broadcast 192.168.0.255
        inet 192.168.1.5 netmask 0xffffff00 broadcast 192.168.1.255
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active

Now the default route will again go through the dynamic address.

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
freebsd-bugs@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"

Reply via email to