如何使用树莓派作为本地网络 (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.
答案1
您说您正在设置一台路由器,但它似乎无法连接到多个网段。另一方面,您的代码示例是关于设置 DHCP 服务器的。
路由器的主要目的是路线交通一个网段与另一个网段之间;它可能有 DHCP 服务器作为附加功能,也可能没有。
尽管家庭路由器通常包含一个简单的 DHCP 服务器,但 DHCP 服务器并不能使系统成为路由器。在企业级设置中,不同网段之间通常有多个路由器,并且可能有一对中央容错 DHCP 服务器。即使对于大多数家庭路由器,如果您希望在网络中获得更可配置的 DHCP 服务,您也可以禁用 DHCP 服务器功能并提供自己的 DHCP 服务器。
运行 DHCP 服务器的系统通常不会从自己的 DHCP 服务器获取自己的 IP 地址;您需要首先设置一个静态IP地址(例如10.0.0.1)。 DHCP 服务器不会为您设置任何本地接口,并且尝试让 DHCP 服务器和 DHCP 客户端在同一个接口上运行可能只会导致头痛。
你的/etc/network/interfaces
语法对我来说看起来不正确。假设 RasPi 的 Kali 使用与通用 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
有一些错误。
首先,您应该从该子句中排除 DHCP 服务器自己的 IP 地址(以及将具有静态配置 IP 的任何其他系统)range
。
其次,您的子网声明与本身不一致。如果广播地址应为 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 成为DHCP服务器对于您的局域网。
让你的 RasPi 成为路由器,您首先需要某种类型的第二个网段:第二个物理网络接口、VLAN、启用互联网共享的智能手机,或者可能是专用的 USB WWAN 加密狗。
在具有多个网络接口的系统上,您应该配置默认网关仅适用于连接到互联网的网络接口。 (拥有多个并行互联网连接属于高级路由;在尝试之前,你应该先让简单的案例工作起来。)
一旦配置了两个或多个网络接口并将其连接到不同的网段,您只需运行
sysctl net.ipv4.ip_forward=1
你将有一个最小的路由器。 (要使其持久,请编辑/etc/sysctl.conf
。)
为了使其真正有用,您可能需要使用或 更新的 来设置一些FORWARD
规则,如果您希望路由器为 10.xxx 网段提供 Internet 访问,则可能需要使用或目标来设置一些规则。iptables
nftables
POSTROUTING
SNAT
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 是路由器。