summaryrefslogtreecommitdiff
path: root/man
Commit message (Collapse)AuthorAgeFilesLines
* man: mention "rd.znet_ifnames" option in `man nm-initrd-generator`Thomas Haller2022-01-261-0/+1
|
* build: allow configuring default for wifi.backend settingJames Hilliard2022-01-042-0/+2
| | | | | | | | | Distributions may want to change the default wifi.backend, if for example they are building without wpa_supplicant support. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/869 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1040
* initrd: don't add a connection if there's a connection dir with rd.neednetLubomir Rintel2021-12-011-0/+15
| | | | | | | | Only create a default connection with rd.neednet if we're starting with a totally blank slate. Otherwise it could be that the user already included configuration in the initrd and merely wants us to activate it. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/999
* man: clarify "configure-and-quit" option in NetworkManager.confThomas Haller2021-11-191-16/+19
|
* core: add support for connection.dns-over-tlsRobin Ebert2021-10-151-0/+4
|
* cloud-setup: use suppress_prefixlength rule to honor non-default-routes in ↵th/cloud-setup-fix-containersThomas Haller2021-09-161-40/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the main table Background ========== Imagine you run a container on your machine. Then the routing table might look like: default via 10.0.10.1 dev eth0 proto dhcp metric 100 10.0.10.0/28 dev eth0 proto kernel scope link src 10.0.10.5 metric 100 [...] 10.42.0.0/24 via 10.42.0.0 dev flannel.1 onlink 10.42.1.2 dev cali02ad7e68ce1 scope link 10.42.1.3 dev cali8fcecf5aaff scope link 10.42.2.0/24 via 10.42.2.0 dev flannel.1 onlink 10.42.3.0/24 via 10.42.3.0 dev flannel.1 onlink That is, there are another interfaces with subnets and specific routes. If nm-cloud-setup now configures rules: 0: from all lookup local 30400: from 10.0.10.5 lookup 30400 32766: from all lookup main 32767: from all lookup default and default via 10.0.10.1 dev eth0 table 30400 proto static metric 10 10.0.10.1 dev eth0 table 30400 proto static scope link metric 10 then these other subnets will also be reached via the default route. This container example is just one case where this is a problem. In general, if you have specific routes on another interface, then the default route in the 30400+ table will interfere badly. The idea of nm-cloud-setup is to automatically configure the network for secondary IP addresses. When the user has special requirements, then they should disable nm-cloud-setup and configure whatever they want. But the container use case is popular and important. It is not something where the user actively configures the network. This case needs to work better, out of the box. In general, nm-cloud-setup should work better with the existing network configuration. Change ====== Add new routing tables 30200+ with the individual subnets of the interface: 10.0.10.0/24 dev eth0 table 30200 proto static metric 10 [...] default via 10.0.10.1 dev eth0 table 30400 proto static metric 10 10.0.10.1 dev eth0 table 30400 proto static scope link metric 10 Also add more important routing rules with priority 30200+, which select these tables based on the source address: 30200: from 10.0.10.5 lookup 30200 These will do source based routing for the subnets on these interfaces. Then, add a rule with priority 30350 30350: lookup main suppress_prefixlength 0 which processes the routes from the main table, but ignores the default routes. 30350 was chosen, because it's in between the rules 30200+ and 30400+, leaving a range for the user to configure their own rules. Then, as before, the rules 30400+ again look at the corresponding 30400+ table, to find a default route. Finally, process the main table again, this time honoring the default route. That is for packets that have a different source address. This change means that the source based routing is used for the subnets that are configured on the interface and for the default route. Whereas, if there are any more specific routes in the main table, they will be preferred over the default route. Apparently Amazon Linux solves this differently, by not configuring a routing table for addresses on interface "eth0". That might be an alternative, but it's not clear to me what is special about eth0 to warrant this treatment. It also would imply that we somehow recognize this primary interface. In practise that would be doable by selecting the interface with "iface_idx" zero. Instead choose this approach. This is remotely similar to what WireGuard does for configuring the default route ([1]), however WireGuard uses fwmark to match the packets instead of the source address. [1] https://www.wireguard.com/netns/#improved-rule-based-routing
* nm-initrd-generator: include man entry for rd.ethtool optionsAna Cabral2021-08-171-0/+16
|
* aliyun: reuse ipv4 gateway address returned by metadata serverWen Liang2021-08-091-3/+3
| | | | | | | | | | | | | The default ipv4 gateway address of the VPC in Aliyun cloud is not the first IP address in the CIDR subnet block, we should instead use the ipv4 gateway address retrieved from the metadata server in `_nmc_mangle_connection()`. https://bugzilla.redhat.com/show_bug.cgi?id=1823315 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/958 Signed-off-by: Wen Liang <liangwen12year@gmail.com>
* man: update URL for networkmanager.dev home pageThomas Haller2021-08-032-2/+2
|
* core: introduce device 'allowed-connections' propertybg/rh1934122Beniamino Galvani2021-07-271-0/+19
| | | | | | | | | | | | | | | | | | | | Configuration can have [device*] and [connection*] settings and both can include a 'match-device=' key, which is a list of device-specs. Introduce a new 'allowed-connections' key for [device*] sections, which specifies a list of connection-specs to indicate which connections can be activated on the device. With this, it becomes possible to have a device configuration like: [device-enp1s0] match-device=interface-name:enp1s0 allowed-connections=except:origin:nm-initrd-generator so that NM in the real root ignores connections created by the nm-initrd-generator, and starts activating a persistent connection. This requires also setting 'keep-configuration=no' to not generate an assumed connection.
* core: add nm_utils_connection_match_spec_list()Beniamino Galvani2021-07-271-0/+49
| | | | | | Add function nm_utils_connection_match_spec_list() to check whether a connection matches a spec list. Also document the supported syntax in the man page.
* core: add 'keep-configuration' device configuration optionBeniamino Galvani2021-07-271-0/+38
| | | | | | | | Add a new 'keep-configuration' device option, set to 'yes' by default. When set to 'no', on startup NetworkManager ignores that the interface is pre-configured and doesn't try to keep its configuration. Instead, it activates one of the persistent connections.
* initrd: support infiniband pkeysbg/initrd-ib-pkeyBeniamino Galvani2021-07-261-0/+11
| | | | | | | | | | | | | Introduce a new "ib.pkey=<parent>.<pkey>" command line argument to create a Infiniband partition. The new connection has IPv4 and IPv6 enabled by default. Unlike for VLANs, the generator doesn't create a connection for the parent Infiniband interface. See also: https://github.com/dracutdevs/dracut/pull/1538 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/884
* cloud-setup: configure secondary ip in Aliyun cloudWen Liang2021-07-191-0/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | This is a tool for automatically configuring networking in Aliyun cloud environment. This add a provider implementation for Aliyun that when detected fetches the private ip addressess and the subnet prefix of IPv4 CIDR block. Once this information is fetched from the metadata server, it instructs NetworkManager to add private ip addressess and subnet prefix for each interface detected. It is inspired by SuSE's cloud-netconfig ([1], [2]) and Aliyun Instance Metadata [3]. [1] https://www.suse.com/c/multi-nic-cloud-netconfig-ec2-azure/ [2] https://github.com/SUSE-Enceladus/cloud-netconfig [3] https://www.alibabacloud.com/help/doc-detail/49122.htm It is also intended to work without configuration. The main point is that you boot an image with NetworkManager and nm-cloud-setup enabled, and it just works. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/885 Signed-off-by: Wen Liang <liangwen12year@gmail.com>
* man/cli: mention `nmcli device up|down` instead of `nmcli device ↵Thomas Haller2021-07-091-4/+4
| | | | connect|disconnect`
* man/cli: minor cleanups in "nmcli.xml"Thomas Haller2021-07-091-7/+7
|
* cli: add alias to nmcli device connect|disconnectVojtech Bubela2021-07-091-2/+27
| | | | | | | nmcli now accepts `nmcli device up|down` which works the same way as `nmcli device connect|disconnect` I also edited man pages of nmcli with new options.
* device: use the 'required-timeout' property from IP settingBeniamino Galvani2021-07-051-0/+6
| | | | | | Change the logic in check_ip_state() to delay the connection ACTIVATED state if an address family is pending and its required-timeout has not expired.
* nm-initrd-generator: document support for rd.znet optionJulian Wiedmann2021-06-281-0/+1
| | | | | | | | | rd.znet support was added with commit 11d4412ee155 ("process s390 specific device info from rd.znet parameter in nm-initrd-generator"). Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com> https://github.com/NetworkManager/NetworkManager/pull/362
* Support new attribute tag `description-docbook`Wen Liang2021-06-231-6/+13
| | | | | | | | `description-docbook` is the alternative tag to `description`, the difference is that `description-docbook` expects docbook XML but not plaintext. Signed-off-by: Wen Liang <liangwen12year@gmail.com>
* man: mark [main].dns=unbound as deprecatedThomas Haller2021-06-011-1/+8
|
* man: document that NetworkManager.conf may be emptyThomas Haller2021-06-011-1/+7
|
* iwd: Add default "auto" value for [main].iwd-config-pathAndrew Zaborowski2021-05-261-9/+16
| | | | | | | | | | Since the [main].iwd-config-path functionality, where NM watches for NMSettingsConnection changes and update IWD network config files with new settings, has proven to work without issues so far, enable it by default. Instead of hardcoding /var/lib/iwd as the value, and since the value can't be probed at NM compile time, query it from IWD's recently- added D-Bus interface for settings when [main].iwd-config-path is either missing or set to the new value "auto".
* firewall: add special firewall-backend "none"Thomas Haller2021-05-141-2/+9
|
* firewall: make firewall-backend configurable via "NetworkManager.conf"Thomas Haller2021-05-141-0/+11
| | | | | "iptables" and "nftables" will be supported. Currently, the code is unused and only "iptables" is supported.
* man: document the 'nmcli general reload' commandBeniamino Galvani2021-05-031-0/+61
|
* core: force emission of DNS_CONFIG_CHANGED signal on SIGUSR1Beniamino Galvani2021-05-031-3/+11
| | | | | | | | | If the configuration contains dns=none and resolv.conf is updated through a dispatcher script, currently there is no way to tell NM that the content of resolv.conf changed, so that it can restart a hostname resolution. Use SIGUSR1 (and SIGHUP) for that.
* man: add example script to manual how to enable nm-cloud-setupThomas Haller2021-04-291-0/+31
|
* cloud-setup/azure: fix detecting the gateway addressThomas Haller2021-04-201-1/+3
| | | | | | | | | | | | | | | | The code never set "iface_get_config->cidr_addr", despite setting "cidr_prefix" and "has_cidr". As a result, cloud-setup would think that the subnet is "0.0.0.0/$PLEN", and calculate the gateway as "0.0.0.1". As a result it would add a default route to table 30400 via 0.0.0.1, which is obviously wrong. How to detect the right gateway? Let's try obtain the subnet also via the meta data. That seems mostly correct, except that we only access subnet at index 0. What if there are multiple ones? I don't know. https://bugzilla.redhat.com/show_bug.cgi?id=1912236
* man: fix typo in *commanded* in wifi.iwd.autoconnect descriptionPaul Menzel2021-03-291-1/+1
| | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/797
* iwd: Mirror NM connections to IWD network config filesAndrew Zaborowski2021-03-231-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Watch for NMSettingConnection changes and creation signals and convert them to IWD format and write them to the configured IWD profile storage directory. The logic is off by default and gets enabled when the new iwd-config-path setting in nm.conf's [main] group is set to a path to an existing directory. The idea here is that when a user edits an NM connection profile, the change is immediately mirrored in IWD since IWD watches its configuration directory using inotify. This way NM clients can be used to edit 802.1x settings, the PSK passphrase or the SSID -- changes that would previously not take effect with the IWD backend. Some precautions are taken to not make connections owned by a user available to other users, such connections are not converted at all. In all other cases where a connection cannot be converted sufficiently well to the IWD format, for various reasons, we also give up and not mirror these connections. Due to IWD limitations and design differences with NM this logic has many problems where it may not do its task properly. It's meant to work on a best-effort and "better than nothing" basis, but it should be safe in that it shouldn't delete users data or reveal secrets, etc. The most obvious limitation is that there can be multiple NM connections referring to the same SSID+Security tuple and only one IWD profile can exist because the filename is based on only the SSID+Security type. We already had one NM connection selected for each IWD KnownNetwork and referenced by a pointer, so we ignore changes in NM connections other than that selected one.
* man: clarify keyfile.unmanaged-devices in `man NetworkManager.conf`Thomas Haller2021-03-201-10/+20
|
* man: split NetworkManager-dispatcher(8) manual page out of NetworkManager(8)Thomas Haller2021-03-163-254/+336
| | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/784
* man: document NOZEROCONF in `man nm-settings-ifcfg-rh`Thomas Haller2021-03-161-5/+14
|
* man: fix spelling error in `man NetworkManager.conf`Thomas Haller2021-03-031-1/+1
|
* man: better explain device.carrier-wait-timeout in `man NetworkManager.conf`Thomas Haller2021-03-031-5/+16
| | | | | | https://bugzilla.redhat.com/show_bug.cgi?id=1929513 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/765
* man: clarify use of `systemctl edit` in `man nm-cloud-setup`Thomas Haller2021-02-021-2/+6
|
* initrd: add support for rd.net.timeout.carrierAdarsh J2021-01-201-0/+15
| | | | | | | | | | | | | | | | | | Add support for `carrier-wait-timeout` setting from kernel cmdline. This will create a new `15-carrier-timeout.conf` file in /run/NetworkManager/conf.d with the parameter value as specified. The setting also inserts `match-device` to `*`, matching all devices. NB: The parameter on kernel cmdline is specified in seconds. This is done to be backwards compatible with with network-legacy module. However the generated setting will automatically multiply specified value by 1000 and store timeout value in ms. https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/626 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/730
* man: improve "nm-cloud-setup" manual pageThomas Haller2021-01-081-10/+90
| | | | | | | | | | It's questionable whether the manual page should explain exactly what it does. However, it's a good exercise writing this up (to review what happens). Also, a manual page that simply says "it configures the network automatically" without going into how exactly, is not very useful either.
* all: update deprecated SPDX license identifiersThomas Haller2021-01-051-1/+1
| | | | | | | | | | | | | | | | These SPDX license identifiers are deprecated ([1]). Update them. [1] https://spdx.org/licenses/ sed \ -e '1 s%^/\* SPDX-License-Identifier: \(GPL-2.0\|LGPL-2.1\)+ \*/$%/* SPDX-License-Identifier: \1-or-later */%' \ -e '1,2 s%^\(--\|#\|//\) SPDX-License-Identifier: \(GPL-2.0\|LGPL-2.1\)+$%\1 SPDX-License-Identifier: \2-or-later%' \ -i \ $(git grep -l SPDX-License-Identifier -- \ ':(exclude)shared/c-*/' \ ':(exclude)shared/n-*/' \ ':(exclude)shared/systemd/src' \ ':(exclude)src/systemd/src')
* man: add `man 8 nm-cloud-setup`Thomas Haller2020-12-112-0/+267
| | | | | https://bugzilla.redhat.com/show_bug.cgi?id=1867997 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/ ## 600
* man: better explain default connection settings in `man NetworkManager.conf`Thomas Haller2020-12-031-2/+14
|
* veth: add support to configure veth interfacesFernando Fernandez Mancera2020-11-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NetworkManager is now able to configure veth interfaces throught the NMSettingVeth. Veth interfaces only have "peer" property. In order to support Veth interfaces in NetworkManager the design need to pass the following requirements: * Veth setting only has "peer" attribute. * Ethernet profiles must be applicable to Veth interfaces. * When creating a veth interface, the peer will be managed by NetworkManager but will not have a profile. * Veth connection can reapply only if the peer has not been modified. * In order to modify the veth peer, NetworkManager must deactivate the connection and create a new one with peer modified. In general, it should support the basis of veth interfaces but without breaking any existing feature or use case. The users that are using veth interfaces as ethernet should not notice anything changed unless they specified the veth peer setting. Creating a Veth interface in NetworkManager is useful even without the support for namespaces for some use cases, e.g "connecting one side of the veth to an OVS bridge and the other side to a Linux bridge" this is done when using OVN kubernetes [1][2]. In addition, it would provide persistent configuration and rollback support for Veth interfaces. [1] https://bugzilla.redhat.com/show_bug.cgi?id=1885605 [2] https://bugzilla.redhat.com/show_bug.cgi?id=1894139 Signed-off-by: Fernando Fernandez Mancera <ffmancera@riseup.net>
* iwd: Add the wifi.iwd.autoconnect settingAndrew Zaborowski2020-11-191-1/+18
| | | | | | | | | | | | | | | | | If this setting it true (or missing) we skip most of the D-Bus Disconnect() calls whoe purpose was to keep IWD's internal autoconnect mechanism always disabled. We use the IWD's Station.State property updates, and secrets requets through our IWD agent, to find out when IWD is trying to connect and create "assumed" activations on the NM side to mirror the IWD state. This is quite complicated due to the many possible combinations of NMDevice's state and IWD's state. A lot of them are "impossible" but we try to be careful to consider all the different possibilities. NM has a nice API for "assuming connections" but it's designed for slightly different use cases than what we have here and for now we created normal "managed"-type activations when assuming an IWD automatic connection.
* man: update supported connection types in `man nmcli`Thomas Haller2020-11-171-5/+45
| | | | https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/444
* man: sort supported connection types in `man nmcli`Thomas Haller2020-11-171-17/+17
|
* all: add hostname settingBeniamino Galvani2020-11-161-11/+29
| | | | | Add a new setting that contains properties related to how NM should get the hostname from the connection.
* man: expand DEBUGGING section in `man NetworkManager`Thomas Haller2020-09-021-10/+24
|
* man: update bug tracker in `man NetworkManager`Thomas Haller2020-09-021-1/+1
|
* man: fix description of v2 secret key in `man NetworkManager`Thomas Haller2020-09-021-6/+6
| | | | Fixes: 0aa09da5f46d ('man: explain "/var/lib/NetworkManager/secret-key" in `man NetworkManager`')