日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux网卡下有两个system,systemd-networkd 作为网络管理服务,导致dhcp给所有网卡分配同样的IP...

發(fā)布時間:2023/12/20 linux 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux网卡下有两个system,systemd-networkd 作为网络管理服务,导致dhcp给所有网卡分配同样的IP... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我們虛擬機之前的網(wǎng)卡配置是交給 init的 networking 服務(wù)來管理的, 具體配置不同系統(tǒng)系統(tǒng)可能不一樣。

比如 Debian/Ubuntu系列操作系統(tǒng)配置在 /etc/network/interfaces文件中,

而Redhat/CentOS系列操作系統(tǒng)配置在 /etc/sysconfig/network-scripts/ifcfg-XXX 網(wǎng)卡配置中。

但是如果我們希望所有網(wǎng)卡通過 DHCP 動態(tài)獲取IP地址, 那我們就需要在對應(yīng)的網(wǎng)卡配置中, 配置動態(tài)獲取功能。

例如 Ubuntu

# interfaces(5) file used by ifup(8) and ifdown(8)

# Include files from /etc/network/interfaces.d:

source-directory /etc/network/interfaces.d

auto lo

iface lo inet loopback

allow-hotplug eth0

iface eth0 inet dhcp

allow-hotplug eth1

iface eth1 inet dhcp

如果我們網(wǎng)卡數(shù)量較多, 就需要在網(wǎng)卡配置文件中添加所有網(wǎng)卡的 dhcp 配置信息。 但是有些時候我們又不定有多少張網(wǎng)卡的化, 那這種配置就帶來很大問題。 無法提前預(yù)制好配置。

當(dāng)然有個比較low的辦法就是在network服務(wù)啟動之前, 添加一個服務(wù)采集所有網(wǎng)卡名稱, 將dhcp的配置寫進(jìn)去。這種方式最大的問題, 就是要添加自定義網(wǎng)卡配置采集和配置服務(wù),

同時要求該服務(wù)要在網(wǎng)絡(luò)服務(wù)啟動之前啟動。但是這種基礎(chǔ)服務(wù), 要我們插入我們自定義的服務(wù)才能,還是不能酸完美

較新的發(fā)行版, 都使用systemd作為init進(jìn)程, 為什么網(wǎng)絡(luò)服務(wù)還在使用 /etc/init.d/networking服務(wù)? 所以查找了下 systemd 下的網(wǎng)絡(luò)管理模塊,可以使用 systemd-networkd來管理網(wǎng)卡配置。

對于我們的需求, 可以使用模式匹配模式, 比如 eth* 來匹配所有 eth0/eth1/...等等網(wǎng)卡。在 /etc/systemd/network/50-dhcp.network 配置如下:

[Match]

Name=eth*

[Network]

DHCP=ipv4

相比 /etc/init.d/networking 最后使用 dhclient 來進(jìn)行dhcp操作, 默認(rèn)是將網(wǎng)卡的 mac 作為 DHCP 的 Client ID,而 systemd-networkd 模式則是有 networkd 程序處理 DHCP請求。

因此在按 /etc/systemd/network/50-dhcp.network 這種模式配置, 所有網(wǎng)卡以及所有虛擬機通過DHCP獲取的IP變成了同樣的。查找 systemd-networkd 的配置選項之后, dhcp部分有如下選項

[DHCP]

ClientIdentifier=duid

使用什么樣的 DHCPv4 客戶端標(biāo)識符: "mac" 表示連接的MAC地址; "duid" 表示一個符合RFC4361規(guī)范的客戶端ID(也就是 IAID 與 DUID 的組合); "duid-only" 表示僅使用 DUID (可能與 RFC 規(guī)范不兼容,但某些場合需要這樣做)。 默認(rèn)值是 "duid"

默認(rèn)是使用 duid 來作為 DHCP 客戶端的標(biāo)識, 而 duid 又依賴 /etc/machine-id, 因為所有虛擬機的都是基于同一個原始qcow2鏡像, 我們并沒有清理 /etc/machine-id 的內(nèi)容。因此相當(dāng)于所有虛擬機均使用的同樣的 /etc/machine-id, 導(dǎo)致最終 DHCP Server來分配IP的時候, 發(fā)現(xiàn)所有請求都是基于同一個 客戶端標(biāo)識, 因此分配同樣的IP給客戶端。問題找到, 最終的配置如下:

[Match]

Name=eth*

[Network]

DHCP=ipv4

[DHCP]

ClientIdentifier=mac

將 ClientIdentifier指制定為根據(jù) mac 地址來分配IP, 就不存在上述問題了。

總結(jié)

以上是生活随笔為你收集整理的linux网卡下有两个system,systemd-networkd 作为网络管理服务,导致dhcp给所有网卡分配同样的IP...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。