如何橋接執行 dhcp 伺服器的乙太網介面
工作站具有
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 地址從網路上的其他機器訪問 vm
10.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
改為打開。這相對不重要,並且很少對任何事情產生任何影響-僅對於關心介面名稱的程序。大多數不會,但有些會…例如某些守護程序(例如dhcpd
orarpwatch
),或者在執行時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 上偵聽,那麼重新啟動可能比重新啟動它們更容易。