Hi, On Wed, Nov 10, 2021 at 6:01 AM Lev Stipakov <lstipa...@gmail.com> wrote:
> From: Lev Stipakov <l...@openvpn.net> > > When /30 subnet is pushed (like in the case of OpenVPN Cloud), > DHCP server address is calculated to be the same as local address, > which causes collision and therefore connection is not established. > > To fix that, use openvpn3 approach, which sets DHCP server > address to a network address for small subnets > > Signed-off-by: Lev Stipakov <l...@openvpn.net> > --- > src/openvpn/tun.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/src/openvpn/tun.c b/src/openvpn/tun.c > index 28f803ec..994e3751 100644 > --- a/src/openvpn/tun.c > +++ b/src/openvpn/tun.c > @@ -6363,7 +6363,9 @@ tuntap_dhcp_mask(const struct tuntap *tt, const char > *device_guid) > } > else > { > - ep[2] = dhcp_masq_addr(tt->local, tt->remote_netmask, -1); > + int prefix_len = netmask_to_netbits2(tt->adapter_netmask); > + /* use network address as DHCP server for small subnets, > otherwise last address before broadcast */ > + ep[2] = dhcp_masq_addr(tt->local, tt->remote_netmask, > prefix_len < 28 ? -1 : 0); > } > } > else > -- Why not just use 0 offset always? Perpetuating this dance of 0 offset in some cases, -1 otherwise is not a way forward. Also see my patch from 2015 that never got any traction. I have lost touch with the context, so, I'm not sure whether this addresses the same (apart from code changes) or something related. https://sourceforge.net/p/openvpn/mailman/openvpn-devel/thread/1449454660-20050-1-git-send-email-selva.nair%40gmail.com/#msg34674818 Also: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg13413.html and other messages in that thread. Selva
_______________________________________________ Openvpn-devel mailing list Openvpn-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openvpn-devel