我第一次使用新的网络接口名称方案:可预测的网络接口名称。
如果这个方案更好或更差,我的问题无关紧要......我只是想了解如何正确使用它。
Here我读到了:
更改接口命名方案时,请不要忘记更新所有与网络相关的配置文件和自定义系统单元文件以反映更改。
所以我必须在所有配置文件中写入实际的接口名称。在之前的方案中它是eth0
,它只是意味着第一个以太网卡,如果有多个接口,则有已知的警告。
现在,我必须编写可预测的名称,该名称由一些简单的部分(即接口的类型)和其他不可预测的组成。 MAC地址。据我所知,每张卡都有不同的名称。
我承认我的问题可能显得很愚蠢,但我不了解如何准备配置文件。让我们看一个例子,/etc/dhcpcd.conf
:
profile static_eth0
static ip_address=192.168.1.23/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
interface eth0
fallback static_eth0
我应该在o.s.中放置eth0
而不是upvar
。图片?
只有当我运行目标机器时,我才能检索以太网接口的实际名称。
我的100%系统都是无头的,我从不连接键盘和显示器。此外,如果我必须发送SBC的备用部分,我是否需要重新配置所有?
请您帮我理解正确用法吗?
PS。我知道我可以恢复旧的命名方案......但这不是我的问题。
答案 0 :(得分:0)
请参见https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/ 它说明了名称的分配方式
Names incorporating Firmware/BIOS provided index numbers for on-board devices (example: eno1)
Names incorporating Firmware/BIOS provided PCI Express hotplug slot index numbers (example: ens1)
Names incorporating physical/geographical location of the connector of the hardware (example: enp2s0)
Names incorporating the interfaces's MAC address (example: enx78e7d1ea46da)
Classic, unpredictable kernel-native ethX naming (example: eth0)
By default, systemd v197 will now name interfaces following policy 1) if that
information from the firmware is applicable and available, falling back to 2) if
that information from the firmware is applicable and available, falling back to 3)
if applicable, falling back to 5) in all other cases. Policy 4) is not used by
default, but is available if the user chooses so.
因此,您可以选择一种不同的方法,可能是在您的设置中最容易拿到mac的方法,只要尝试pxe / dhcp请求的映像重新启动并记下发送的mac,就重新启动。
另一种可能可行的方法是界面分组。具体取决于您的设置。
通过“人机界面”
auto /eth*
If the kernel knows about the interfaces with names lo, eth0 and eth1, then the above line is then interpreted as:
auto eth0 eth1
Note that there must still be valid "iface" stanzas for each matching interface. However, it is possible to combine a pattern with a mapping to a logical interface, like so:
auto /eth*=eth
iface eth inet dhcp
因此,如果您只有一个接口,但不知道将在何处分配接口,则可以编写“ auto / e * = eth”以捕获所有以e开头的接口,并将其在配置文件中寻址为“ eth”。