mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-19 19:00:38 +01:00
If the server sends a packet with multiple instances of the same
option, they are concatenated during n_dhcp4_incoming_linearize() and
evaluated as a single option as per section 7 of RFC 3396.
However, there are broken server implementations that send
self-contained options in multiple copies. They are reassembled to
form a single instance by the nettools client, which then fails to
parse them because they have a length greater than the expected one.
This problem can be reproduced by starting a server with:
dnsmasq --bind-interfaces --interface veth1 -d
--dhcp-range=172.25.1.100,172.25.1.200,1m
--dhcp-option=54,172.25.1.1
In this way dnsmasq sends a duplicate option 54 (server-id) when the
client requests it in the 'parameter request list' option, as
dhcp=systemd and dhcp=nettools currently do.
While this is a violation of the RFC by the server, both isc-dhcp and
systemd-networkd client implementations have mechanisms to deal with
this situation. dhclient simply takes the first bytes of the
aggregated option. systemd-networkd doesn't follow RFC 3396 and
doesn't aggregate multiple options; it considers only the last
occurrence of each option.
Change the parsing code to accept options that are longer than
necessary.
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/324
|
||
|---|---|---|
| .. | ||
| .cherryci | ||
| src | ||
| subprojects | ||
| .editorconfig | ||
| .gitmodules | ||
| .travis.yml | ||
| AUTHORS | ||
| meson.build | ||
| NEWS.md | ||
| README.md | ||
n-dhcp4
Dynamic Host Configuration Protocol for IPv4
The n-dhcp4 project implements the IPv4 Dynamic Host Configuration Protocol as defined in RFC-2132+.
Project
- Website: https://nettools.github.io/n-dhcp4
- Bug Tracker: https://github.com/nettools/n-dhcp4/issues
- Mailing-List: https://groups.google.com/forum/#!forum/nettools-devel
Requirements
The requirements for this project are:
Linux kernel >= 3.19libc(e.g.,glibc >= 2.16)
At build-time, the following software is required:
meson >= 0.41pkg-config >= 0.29
Build
The meson build-system is used for this project. Contact upstream documentation for detailed help. In most situations the following commands are sufficient to build and install from source:
mkdir build
cd build
meson setup ..
ninja
meson test
ninja install
No custom configuration options are available.
Repository:
- web: https://github.com/nettools/n-dhcp4
- https:
https://github.com/nettools/n-dhcp4.git - ssh:
git@github.com:nettools/n-dhcp4.git
License:
- Apache-2.0 OR LGPL-2.1-or-later
- See AUTHORS file for details.