Hi Thomas

On Tue, 2021-04-27 at 19:46 +0200, Thomas Haller wrote:
> Hi,
> 
> 
> On Tue, 2021-04-27 at 12:04 +0000, Michel, Matthias via
> networkmanager-
> list wrote:
> > Hi
> > I'm using the dhcp=systemd setting in the networkmanager v1.30.2.
> 
> Btw, dhcp=systemd is an (intentionally) undocumented option.
> Eventually
> it will be replaced and behave the same as dhcp=internal.
> 
> In practice, for you there should be no difference between using
> dhcp=internal and dhcp=systemd. And if there is a difference, that is
> probably something we'd like to fix/investigate.
> 
> But sure, dhcp=systemd works too.
> 
> > I have a requirement to switch to a fallback link-local when the
> > dhcp
> > is not available and to return from link-local to dhcp when it is
> > back.
> > 
> > What I was able to configure was the fallback to link-local. But
> > switching to dhcp automatically was not possible.
> > 
> > my connections with networkmanager:
> > 
> > cat br-lan.nmconnection 
> > [connection]
> > id=br-lan
> > uuid=0d924e20-a7ca-4eec-9ad1-28b6d2ddb0c2
> > autoconnect-priority=100
> > autoconnect-retries=1
> > interface-name=br-lan
> > llmnr=2
> > permissions=
> > zone=lan
> > 
> > [bridge]
> > stp=false
> > 
> > [match]
> > kernel-command-line=!test;
> > 
> > [ipv4]
> > dhcp-timeout=3
> > dns-search=
> > may-fail=false
> > method=auto
> > route1=224.0.0.0/4,0.0.0.0,0
> > 
> > [ipv6]
> > addr-gen-mode=stable-privacy
> > dns-search=
> > method=auto
> > [proxy]
> > 
> > 
> > cat br-lan-ll.nmconnection 
> > [connection]
> > id=br-lan-ll
> > uuid=1d924e20-a7ca-4eec-9ad1-28b6d2ddb0c2
> > type=bridge
> > autoconnect=true
> > autoconnect-priority=50
> > interface-name=br-lan
> > llmnr=2
> > permissions=
> > timestamp=1617958884
> > zone=lan
> > 
> > [bridge]
> > stp=false
> > 
> > [match]
> > kernel-command-line=!test;
> > 
> > [ipv4]
> > dns-search=
> > method=link-local
> > route1=224.0.0.0/4,0.0.0.0,0
> > 
> > [ipv6]
> > addr-gen-mode=stable-privacy
> > dns-search=
> > method=disabled
> > 
> > [proxy]
> > 
> > 
> > my connection with networkd:
> > 
> > cat /etc/systemd/network/lan.network 
> > [Match]
> > Name=enp44s0u2u1
> > 
> > [Network]
> > Bridge=br0
> > 
> > cat /etc/systemd/network/br0.netdev 
> > [NetDev]
> > Name=br0
> > Kind=bridge
> > 
> > cat /etc/systemd/network/bridge.network 
> > [Match]
> > Name=br0
> > 
> > [Network]
> > DHCP=ipv4
> > LinkLocalAddressing=fallback
> > 
> > [DHCPv4]
> > MaxAttempts=1
> 
> The problem is that once the LL profile activates, it will not fail
> automatically, and DHCP is never tried again.
> 
> So there really needs to be one profile that enables both DHCP and
> LL,
> possibly with an option that says: only do LL while not having a DHCP
> lease. That requires new API. The current ipv4.method is not flexible
> enough for that. That needs improvement.
> 
> 
> > I studied the code of networkmanager and networkd.
> > 
> > networkd:
> >   
> >  
> > https://github.com/systemd/systemd/blob/3a1e9d8083b83f611a23cc84ba69a8175e659629/src/network/networkd-dhcp4.c#L1128
> > 
> > 
> > networkmanager:
> >   
> >  
> > https://github.com/NetworkManager/NetworkManager/blob/af360238be198257934b89d42f24431401550721/src/core/dhcp/nm-dhcp-systemd.c#L495
> > 
> > Is there a design reason why this behavior is implemented
> > differently?
> 
> The reason is that it was not implemented this way (yet).
> 
> currently, you cannot have LL and DHCP together. Neither always
> together nor LL-fallback-for-DHCP. Both of course makes sense.
> 
> > 
> > Is it mainly a configuration error on my part?
> 
> No.
> 
> > Would the community accept changes to get the same behavior for
> > networkmanager as is the case in networkd?
> 
> 
> Yes, but it might not be as straight forwards as it should be.
> 
> Also, currently we are about to rework a part in NetworkManager that
> manages the IP configuration. That should make it simpler to do such
> a
> thing. But the work is not yet finished.
Has the rework mentioned been done yet? Is the time right to look at it
again?
> 
> In the current code, without this larger rework, I find it rather
> difficult to implement this feature, and also that would
> conflict/overlap with that work in progress.
> 
> Independent of that, there is the question how the current API (that
> is
> the settings of the connection profiles) should be extended in a
> backward compatible and future proof way, so that such schemes are
> configurable. Possbily there should be new options 
>   ipv4.dhcp=disabled|required|optional
>   ipv4.ll=disabled|enabled|fallback
> that basically extend "ipv4.method". 
> 
> 
> 
> Thank you for you offer to help out. We always appreciate that!! For
> thinking about how the connnection profiles should be, that is
> already
> a good task. About the internals (that get currently reworked), maybe
> hold back for a few weeks because the work would overlap.
We may have a free resource that can take on the topic. Can you give us
some initial thoughts or an entry point into this topic?


regards Matthias

_______________________________________________
networkmanager-list mailing list
networkmanager-list@gnome.org
https://mail.gnome.org/mailman/listinfo/networkmanager-list

Reply via email to