Routing

如何將 pi 變成路由器?

  • May 29, 2022

如何將樹莓派用作本地網路 (LAN) 的路由器?

改成/etc/network/interfaces_

interfaces="eth0"

我像這樣安裝isc-dhcp-server和配置它

default-lease-time 86400;
max-lease-time 604800;

authoritative;

subnet 10.0.0.0 netmask 255.0.0.0 {
       range 10.0.0.1 10.0.0.254;
       option broadcast-address 10.0.0.255;
       option routers 10.0.0.1;
}

當我重新啟動電腦時,pi 連接到一個也連接到另一台電腦的交換機,沒有為另一台電腦分配 IP 地址

這是日誌文件的內容/var/log/dhcp-server.log

May 28 20:54:43 kali-raspberry-pi dhcpd[719]: Internet Systems Consortium DHCP Server 4.4.2-P1
May 28 20:54:43 kali-raspberry-pi dhcpd[719]: Copyright 2004-2021 Internet Systems Consortium.
May 28 20:54:43 kali-raspberry-pi dhcpd[719]: All rights reserved.
May 28 20:54:43 kali-raspberry-pi dhcpd[719]: For info, please visit https://www.isc.org/software/dhcp/
May 28 20:54:43 kali-raspberry-pi dhcpd[734]: Internet Systems Consortium DHCP Server 4.4.2-P1
May 28 20:54:43 kali-raspberry-pi dhcpd[734]: Copyright 2004-2021 Internet Systems Consortium.
May 28 20:54:43 kali-raspberry-pi dhcpd[734]: All rights reserved.
May 28 20:54:43 kali-raspberry-pi dhcpd[734]: For info, please visit https://www.isc.org/software/dhcp/
May 28 20:54:43 kali-raspberry-pi dhcpd[734]: Wrote 0 leases to leases file.
May 28 20:54:43 kali-raspberry-pi dhcpd[734]: Server starting service.
May 28 21:10:30 kali-raspberry-pi dhcpd[1184]: Internet Systems Consortium DHCP Server 4.4.2-P1
May 28 21:10:30 kali-raspberry-pi dhcpd[1184]: Copyright 2004-2021 Internet Systems Consortium.
May 28 21:10:30 kali-raspberry-pi dhcpd[1184]: All rights reserved.
May 28 21:10:30 kali-raspberry-pi dhcpd[1184]: For info, please visit https://www.isc.org/software/dhcp/
May 28 21:10:30 kali-raspberry-pi dhcpd[1190]: Internet Systems Consortium DHCP Server 4.4.2-P1
May 28 21:10:30 kali-raspberry-pi dhcpd[1190]: Copyright 2004-2021 Internet Systems Consortium.
May 28 21:10:30 kali-raspberry-pi dhcpd[1190]: All rights reserved.
May 28 21:10:30 kali-raspberry-pi dhcpd[1190]: For info, please visit https://www.isc.org/software/dhcp/
May 28 21:10:30 kali-raspberry-pi dhcpd[1190]: Wrote 0 leases to leases file.
May 28 21:10:30 kali-raspberry-pi dhcpd[1190]: Server starting service.
May 28 21:11:22 kali-raspberry-pi dhcpd[718]: Internet Systems Consortium DHCP Server 4.4.2-P1
May 28 21:11:22 kali-raspberry-pi dhcpd[718]: Copyright 2004-2021 Internet Systems Consortium.
May 28 21:11:22 kali-raspberry-pi dhcpd[718]: All rights reserved.
May 28 21:11:22 kali-raspberry-pi dhcpd[718]: For info, please visit https://www.isc.org/software/dhcp/
May 28 21:11:22 kali-raspberry-pi dhcpd[734]: Internet Systems Consortium DHCP Server 4.4.2-P1
May 28 21:11:22 kali-raspberry-pi dhcpd[734]: Copyright 2004-2021 Internet Systems Consortium.
May 28 21:11:22 kali-raspberry-pi dhcpd[734]: All rights reserved.
May 28 21:11:22 kali-raspberry-pi dhcpd[734]: For info, please visit https://www.isc.org/software/dhcp/
May 28 21:11:22 kali-raspberry-pi dhcpd[734]: Wrote 0 leases to leases file.
May 28 21:11:22 kali-raspberry-pi dhcpd[734]: Server starting service.

您說您正在設置路由器,但它似乎無法連接到多個網段。另一方面,您的程式碼範例是關於設置 DHCP 伺服器的。

路由器的主要目的是在一個網段和另一個網段之間*路由流量。*它可能有一個 DHCP 伺服器作為附加功能,也可能沒有。

儘管家庭路由器通常包含一個簡單的 DHCP 伺服器,但 DHCP 伺服器並不能使系統成為路由器。在企業級設置中,不同網段之間通常有多個路由器,可能還有一對中央容錯 DHCP 伺服器。即使使用大多數家用路由器,如果您想在網路中提供更多可配置的 DHCP 服務,您也可以禁用 DHCP 伺服器功能並提供您自己的 DHCP 伺服器。

執行 DHCP 伺服器的系統通常不會從其自己的 DHCP 伺服器獲得自己的 IP 地址。您需要先設置一個靜態 IP 地址(例如 10.0.0.1)。DHCP 伺服器不會為您設置任何本地介面,嘗試讓 DHCP 伺服器和 DHCP 客戶端在同一介面上執行可能只會讓人頭疼。

你的/etc/network/interfaces語法對我來說看起來不正確。假設 Kali for RasPi 使用與通用 Debian 相同的語法,你應該這樣寫:

auto eth0
allow-hotplug eth0
iface eth0 inet static
   address 10.0.0.1
   netmask 255.255.255.0

請注意,由於您沒有提及與外界的任何联系,因此gateway此處有意省略了該行。

另外,請注意 Raspbian/Raspberry Pi 作業系統傾向於通過配置網路介面/etc/dhcpcd.conf而不是使用/etc/network/interfaces. 如果您的 Kali for RasPi 也這樣做,您可能需要先禁用dhcpcd以確保它不會與您似乎試圖實現的純 Debian 樣式設置衝突。

一旦你有一個具有靜態 IP 地址的網路介面啟動並執行,你就可以開始考慮配置 DHCP 伺服器了。

恐怕你的subnet配置isc-dhcp-server有一些錯誤。

range首先,您應該從子句中排除 DHCP 伺服器自己的 IP 地址(以及將具有靜態配置 IP 的任何其他系統) 。

其次,您的子網聲明與自己不一致。如果廣播地址應該是 10.0.0.255,那麼netmask不能是 255.0.0.0 而應該是 255.255.255.0。如果您只使用 10.0.0.0 … 10.255.255.255(也稱為 10.0.0.0/8)私有地址範圍的一個 /24 塊,您的子網聲明還應包括 DHCP 客戶端的子網遮罩 DHCP 選項:

option subnet-mask 255.255.255.0;

通過這些更正,您應該能夠使您的 RasPi 成為您 LAN 的DHCP 伺服器


要使您的 RasPi 成為路由器,您首先需要某種類型的第二個網段:第二個物理網路介面、VLAN、啟用 Internet 共享的智能手機,或者可能是專用的 USB WWAN 加密狗。

在具有多個網路介面的系統上,您應該只為連接到 Internet 的網路介面配置預設網關。(擁有多個並行網際網路連接屬於高級路由領域;在嘗試之前,您應該先讓簡單的案例工作。)

一旦您配置了兩個或多個網路介面並連接到單獨的網段,您只需要執行

sysctl net.ipv4.ip_forward=1

你將擁有一個最小的路由器。(要使其持久化,請編輯/etc/sysctl.conf。)

為了使其真正有用,您可能需要設置一些FORWARD使用iptablesor 更新的規則,如果您希望路由器為您的 10.xxx 網段提供網際網路訪問,nftables可能還需要POSTROUTING使用SNATor目標設置一些規則。MASQUERADE

如果您在兩個專用網段之間進行路由,此配置將允許 RasPi 將來自另一個網段的流量路由到您的 10.0.0.0 … 10.0.0.255 網段,並讓該網段中的系統成功響應來自其他部分。

但除非您執行 SNAT/MASQUERADE,否則其他網段中的系統也需要知道您的系統是 10.0.0.0/24 網段的路由器,即這些系統需要在其路由表中添加一個條目,告訴他們使用 RasPi 的其他網路介面的 IP 地址作為網關可以訪問 10.0.0.0 … 10.0.0.255 段。

option routers 10.0.0.1;由於DHCP 伺服器配置中的線路,10.0.0.0 … 10.0.0.255 段中的系統已經知道您的 RasPi 是路由器。

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