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

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

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

linux

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

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

我們虛擬機(jī)之前的網(wǎng)卡配置是交給 init的 networking 服務(wù)來(lái)管理的, 具體配置不同系統(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)卡通過(guò) DHCP 動(dòng)態(tài)獲取IP地址, 那我們就需要在對(duì)應(yīng)的網(wǎng)卡配置中, 配置動(dò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 配置信息。 但是有些時(shí)候我們又不定有多少?gòu)埦W(wǎng)卡的化, 那這種配置就帶來(lái)很大問(wèn)題。 無(wú)法提前預(yù)制好配置。

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

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

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

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

[Match]

Name=eth*

[Network]

DHCP=ipv4

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

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

[DHCP]

ClientIdentifier=duid

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

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

[Match]

Name=eth*

[Network]

DHCP=ipv4

[DHCP]

ClientIdentifier=mac

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

總結(jié)

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

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