私はコンピューター教師です。放課後のコンピュータークラブ用に、インターネットにアクセスできる「サンドボックス」ネットワークをセットアップしようとしています。
私は 2 つのイーサネット インターフェイスを備えた古い PC (Debian 11 インストール) を持っています。1 つのインターフェイスは標準の学校ネットワークに接続されています。これは、インターネット トラフィックを 2 番目のインターフェイスに転送するために使用されます。2 番目のインターフェイスは、小規模な教室ネットワークに DHCP とインターネットを提供します。ラップトップや Raspberry Pi などのデバイスは、このスイッチに接続され、ある時点で WiFi アクセス ポイントも接続されます。
以下は物理的なセットアップです。enp2s0 は学校に接続されており、enp3s0 は私のコンピューティング ネットワークに接続されています。
ser@computingClubBridge:~$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 34:64:a9:24:01:55 brd ff:ff:ff:ff:ff:ff
inet 10.202.248.250/21 brd 10.202.255.255 scope global dynamic enp2s0
valid_lft 621249sec preferred_lft 621249sec
inet 10.202.248.240/21 brd 10.202.255.255 scope global secondary enp2s0
valid_lft forever preferred_lft forever
inet6 fe80::3664:a9ff:fe24:155/64 scope link
valid_lft forever preferred_lft forever
3: enp3s0: <BROADCAST,MULTICAST,DYNAMIC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:e0:4c:69:1f:cd brd ff:ff:ff:ff:ff:ff
inet 169.254.151.221/16 brd 169.254.255.255 scope global enp3s0
valid_lft forever preferred_lft forever
inet6 fe80::2e0:4cff:fe69:1fcd/64 scope link
valid_lft forever preferred_lft forever
私はこのチュートリアルに従っていますが、dhcp3 を参照している部分が古くなっているため、これを isc-dhcp-server に置き換えました。
/etc/default/isc-dhcp-server は現在次のとおりです:
Defaults for isc-dhcp-server (sourced by /etc/init.d/isc-dhcp-server)
# Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf).
DHCPDv4_CONF=/etc/dhcp/dhcpd.conf
#DHCPDv6_CONF=/etc/dhcp/dhcpd6.conf
# Path to dhcpd's PID file (default: /var/run/dhcpd.pid).
#DHCPDv4_PID=/var/run/dhcpd.pid
#DHCPDv6_PID=/var/run/dhcpd6.pid
# Additional options to start dhcpd with.
# Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead
#OPTIONS=""
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACESv4="enp3s0"
INTERFACESv6=""
サブネットを機能させるために、チュートリアルの /etc/dhcp にある dhcp.conf ファイルを次のように簡略化しました。
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.5 192.168.2.200;
option routers router.lan.computing.local;
}
ただし、isc-dhcp-server を再起動しても機能しません。Syslog に次のメッセージが表示されます。
Nov 17 11:54:45 computingClubBridge dhcpd[8828]: No subnet declaration for enp3s0 (169.254.151.221).
Nov 17 11:54:45 computingClubBridge dhcpd[8828]: ** Ignoring requests on enp3s0. If this is not what
Nov 17 11:54:45 computingClubBridge dhcpd[8828]: you want, please write a subnet declaration
Nov 17 11:54:45 computingClubBridge dhcpd[8828]: in your dhcpd.conf file for the network segment
Nov 17 11:54:45 computingClubBridge dhcpd[8828]: to which interface enp3s0 is attached. **
Nov 17 11:54:45 computingClubBridge dhcpd[8828]:
Nov 17 11:54:45 computingClubBridge dhcpd[8828]:
Nov 17 11:54:45 computingClubBridge dhcpd[8828]: Not configured to listen on any interfaces!
Nov 17 11:54:45 computingClubBridge dhcpd[8828]:
Nov 17 11:54:45 computingClubBridge dhcpd[8828]: If you think you have received this message due to a bug rather
Nov 17 11:54:45 computingClubBridge dhcpd[8828]: than a configuration issue please read the section on submitting
Nov 17 11:54:45 computingClubBridge dhcpd[8828]: bugs on either our web page at www.isc.org or in the README file
Nov 17 11:54:45 computingClubBridge dhcpd[8828]: before submitting a bug. These pages explain the proper
Nov 17 11:54:45 computingClubBridge dhcpd[8828]: process and the information we find helpful for debugging.
Nov 17 11:54:45 computingClubBridge dhcpd[8828]:
Nov 17 11:54:45 computingClubBridge dhcpd[8828]: exiting.
Nov 17 11:54:47 computingClubBridge isc-dhcp-server[8812]: Starting ISC DHCPv4 server: dhcpdcheck syslog for diagnostics. ...
Nov 17 11:54:47 computingClubBridge isc-dhcp-server[8833]: failed!
Nov 17 11:54:47 computingClubBridge isc-dhcp-server[8834]: failed!
Nov 17 11:54:47 computingClubBridge systemd[1]: isc-dhcp-server.service: Control process exited, code=exited, status=1/FAILURE
Nov 17 11:54:47 computingClubBridge systemd[1]: isc-dhcp-server.service: Failed with result 'exit-code'.
Nov 17 11:54:47 computingClubBridge systemd[1]: Failed to start LSB: DHCP server.
さらに先に進む方法がわかりません。私が見る限り、サンプルの isc-dhcp-server 構成を使用してネットワーク インターフェイスのサブネットを宣言しましたが、DHCP はそれを使用したくないのでしょうか?
答え1
明らかに enp3s0 を自動構成に設定しているため、DHCP 経由で IP アドレスを取得しようとしますが失敗します。そのため、169.254.151.221/16 アドレスが自動的に割り当てられます。このインターフェイスを DHCP サーバーとして使用するには、まず静的 IP アドレスを設定する必要があります。このアドレスは、このインターフェイスから提供する IP アドレスの範囲内である必要があります。つまり、学生のコンピューターに 192.168.2.0 ~ 255 の範囲の IP アドレスを取得させたい場合は、192.168.2.1/24 など、この範囲内のアドレスで enp3s0 を設定する必要があります。静的 IP アドレスです。