Raspberry-Pi

DHCP 和備用 IP - 我可以在同一個網路介面上有兩個不同的設置嗎?

  • July 24, 2020

我有一個項目,使用者可以通過以下 Web 界面更改 RPI 的網路設置:

  • DHCP WiFi
  • DHCP 乙太網
  • 靜態 WiFi
  • 靜態乙太網

dhcpcd_conf每個選擇都會相應地重新配置wpa_conf它工作得非常好

整個軟體包設計為在第一次啟動時位於 DHCP 乙太網中。但這種設計存在缺陷,因為並非每個使用者都有 DHCP 伺服器。

那是我想到製作一個備用靜態乙太網 IP的時候,這就是我想出的:

案例 1 - DHCP 乙太網

# dhcpcd_conf

interface wlan0
noipv4
noipv6

interface eth0
hostname DeviceEth
clientid

profile static_eth0
static ip_address=192.168.1.150/24
static routers=192.168.1.1
static domain_name_servers=8.8.8.8

interface eth0
fallback static_eth0
# wpa_conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

如您所見,我設置wlan0為沒有 IP,然後設置eth0為 DHCP,然後將其設置eth0fallback profile.

**這個對嗎 ?**我可以在同一個界面上進行兩種不同的設置嗎?

案例 2 - DHCP WiFi:

# dhcpcd_conf
interface wlan0
hostname DeviceWiFi
clientid

interface eth0
noipv4
noipv6

profile static_eth0
static ip_address=192.168.1.150/24
static routers=192.168.1.1
static domain_name_servers=8.8.8.8

interface eth0
fallback static_eth0
# wpa_conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=RO
network={
ssid="SSID"
psk="password"
}

在這裡我設置wlan0為 DHCP,然後我設置eth0為 no ip,然後我將其設置eth0fallback profile. 這個配置正確嗎?

在這兩種情況下,我只希望一個介面處於活動狀態,這就是為什麼我將一個配置為 DHCP,而將另一個配置為無 IP。

DHCP WiFiwlan0的情況下,回退生效後是否保持正常並不重要,因為使用者很可能會在訪問 Web 界面後配置靜態 IP,靜態配置類似於 DHCP 配置,方式如下:它一次只使一個界面處於活動狀態。

您不能fallback用來在不同的界面之間切換(這似乎是案例 2 的目標)。如果同一介面上的 dhpc 失敗,而不是另一個介面上的 dhcp 失敗,則在為其配置的介面上使用 dhcp 回退配置文件。

不確定是否可以arping用於此目的(請參閱dhcpd.conf)。想法是 ping 第一個介面並指向一個“無 ip”的配置文件。然後,備用 MAC 地址配置文件將包含要在輔助介面上使用的靜態 IP 或 DHCP。但我擔心這不會可靠,因為它取決於主介面何時啟動 IP 地址的時間。

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