Qemu

如何橋接執行 dhcp 伺服器的乙太網介面

  • July 2, 2022

工作站具有eth0作為 dhcp 伺服器執行的介面,具有以下設置

auto eth0
 iface eth0 inet static
 network 10.0.0.0
 address 10.0.0.1
 netmask 255.0.0.0
 gateway 10.0.0.1
 broadcast 0.255.255.255

/etc/dhcp/dhcpd.conf

default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;

 
subnet 10.0.0.0 netmask 255.0.0.0 {
   range 10.0.0.1 10.0.0.254;
   option time-servers 10.0.0.1;
   option broadcast-address 10.255.255.255;
   default-lease-time 600;
   max-lease-time 7200;
}

是否可以在不更改任何 DHCP 配置設置的情況下創建網橋,eth0以便在 QEMU 中創建的任何機器都在 DHCP 伺服器給出的定義的 NIC 上分配一個 IP 地址

工作站連接到交換機,其他機器也連接到交換機,目標是能夠使用 ip 地址從網路上的其他機器訪問 vm10.0.0.X

最簡單的方法是將初始介面定義為橋接器。例如,刪除您在 中的iface eth0 ...定義/etc/network/interfaces,將其替換為 的定義iface br0

auto br0
iface br0 inet static
 address 10.0.0.1/8
 bridge_ports eth0
 bridge_stp off
 bridge_maxwait 0
 bridge_fd 0
 bridge_hello 2
 bridge_maxage 12

完成後,您必須將 VM 配置為使用橋接網路br0

您將不再擁有您的 IP 地址eth0。它/它們將br0改為打開。這相對不重要,並且很少對任何事情產生任何影響-僅對於關心介面名稱的程序。大多數不會,但有些會…例如某些守護程序(例如dhcpdor arpwatch),或者在執行時tcpdump您需要使用tcpdump -i br0而不是tcpdump -i eth0. dhclient當然,你也不應該在執行 dhcp 伺服器的同一介面和機器上執行 dhcp 客戶端。無論如何,這些都需要重新配置才能使用br0.

如果您的 dhcp 伺服器與您的工作站是同一台機器,您還需要配置dhcpd為使用br0而不是eth0.

您似乎正在執行 Debian(或 Debian 的衍生產品),因此您可以在/etc/default/isc-dhcp-server. 例如,我有以下內容,用於監聽 br0(用於 VM 和 LAN 上的物理主機)和無線介面 wlan0(用於手機、筆記型電腦、平板電腦等):

INTERFACESv4="br0 wlan0"

您需要使用類似ifdown eth0 ; sleep 5; ifup br0. 如果您正在執行此ssh操作或類似操作,請務必將其作為 ONE 命令行執行,否則當 eth0 出現故障時您將無法啟動 br0。之所以存在,sleep 5是因為我發現在擊倒 iface 並再次將其重新啟動之間等待幾秒鐘是件好事。

在 eth0 消失後,一些網路守護程序需要重新啟動 - 如果您有很多守護程序在 eth0 上偵聽,那麼重新啟動可能比重新啟動它們更容易。

引用自:https://unix.stackexchange.com/questions/708347