diff options
author | Bobby Rong <rjl931189261@126.com> | 2021-07-01 23:16:05 +0800 |
---|---|---|
committer | Bobby Rong <rjl931189261@126.com> | 2021-07-01 23:21:22 +0800 |
commit | e602771722d1820620f0e5cbecc821d561684a71 (patch) | |
tree | fae1ce05adbe64daf21194615b67296f768b4578 /nixos/doc/manual/from_md/configuration/renaming-interfaces.section.xml | |
parent | 55aa106c0b7fbb9f50b3bc791749fcb9822bb971 (diff) | |
download | nixpkgs-e602771722d1820620f0e5cbecc821d561684a71.tar nixpkgs-e602771722d1820620f0e5cbecc821d561684a71.tar.gz nixpkgs-e602771722d1820620f0e5cbecc821d561684a71.tar.bz2 nixpkgs-e602771722d1820620f0e5cbecc821d561684a71.tar.lz nixpkgs-e602771722d1820620f0e5cbecc821d561684a71.tar.xz nixpkgs-e602771722d1820620f0e5cbecc821d561684a71.tar.zst nixpkgs-e602771722d1820620f0e5cbecc821d561684a71.zip |
nixos: nixos/doc/manual/configuration/renaming-interfaces.xml to CommonMark
Diffstat (limited to 'nixos/doc/manual/from_md/configuration/renaming-interfaces.section.xml')
-rw-r--r-- | nixos/doc/manual/from_md/configuration/renaming-interfaces.section.xml | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/nixos/doc/manual/from_md/configuration/renaming-interfaces.section.xml b/nixos/doc/manual/from_md/configuration/renaming-interfaces.section.xml new file mode 100644 index 00000000000..80c162ca85e --- /dev/null +++ b/nixos/doc/manual/from_md/configuration/renaming-interfaces.section.xml @@ -0,0 +1,62 @@ +<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="sec-rename-ifs"> + <title>Renaming network interfaces</title> + <para> + NixOS uses the udev + <link xlink:href="https://systemd.io/PREDICTABLE_INTERFACE_NAMES/">predictable + naming scheme</link> to assign names to network interfaces. This + means that by default cards are not given the traditional names like + <literal>eth0</literal> or <literal>eth1</literal>, whose order can + change unpredictably across reboots. Instead, relying on physical + locations and firmware information, the scheme produces names like + <literal>ens1</literal>, <literal>enp2s0</literal>, etc. + </para> + <para> + These names are predictable but less memorable and not necessarily + stable: for example installing new hardware or changing firmware + settings can result in a + <link xlink:href="https://github.com/systemd/systemd/issues/3715#issue-165347602">name + change</link>. If this is undesirable, for example if you have a + single ethernet card, you can revert to the traditional scheme by + setting + <link xlink:href="options.html#opt-networking.usePredictableInterfaceNames"><literal>networking.usePredictableInterfaceNames</literal></link> + to <literal>false</literal>. + </para> + <section xml:id="sec-custom-ifnames"> + <title>Assigning custom names</title> + <para> + In case there are multiple interfaces of the same type, it’s + better to assign custom names based on the device hardware + address. For example, we assign the name <literal>wan</literal> to + the interface with MAC address + <literal>52:54:00:12:01:01</literal> using a netword link unit: + </para> + <programlisting language="bash"> +systemd.network.links."10-wan" = { + matchConfig.MACAddress = "52:54:00:12:01:01"; + linkConfig.Name = "wan"; +}; +</programlisting> + <para> + Note that links are directly read by udev, <emphasis>not + networkd</emphasis>, and will work even if networkd is disabled. + </para> + <para> + Alternatively, we can use a plain old udev rule: + </para> + <programlisting language="bash"> +services.udev.initrdRules = '' + SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \ + ATTR{address}=="52:54:00:12:01:01", KERNEL=="eth*", NAME="wan" +''; +</programlisting> + <warning> + <para> + The rule must be installed in the initrd using + <literal>services.udev.initrdRules</literal>, not the usual + <literal>services.udev.extraRules</literal> option. This is to + avoid race conditions with other programs controlling the + interface. + </para> + </warning> + </section> +</section> |