
こんにちは。 Raspberry PIをdhcpサーバーとして構成しようとしています。私の考えは、eth0インターフェイスを介してスイッチを接続し、他のデバイスをスイッチに接続できることです。しかし、まだwlan0を介してsshとインターネットアクセスを維持したいと思います。
これを達成するために、isc-dhcp-serverをインストールし、静的IPアドレスの設定を追加しました。/etc/network/interfaces.d/eth0
allow-hotplug eth0
iface eth0 inet static
address 10.0.0.1
netmask 255.255.255.0
broadcast 10.0.0.255
gateway 10.0.0.1
次に、dhcpサーバーの構成をファイルに追加しました。/etc/dhcp/dhcpd.conf:
authorative
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.1 10.0.0.10;
option subnet-mask 255.255.255.0;
option broadcast-address 10.0.0.255;
option routers 10.0.0.1;
option domain-name "local-network";
option domain-name-servers 8.8.8.8, 8.8.4.4;
}
その後、Raspberry PIを再起動しましたが、すべてが大丈夫に見えました。 WiFi経由でマイコンピュータから接続でき、スイッチに接続された他のコンピュータは10.0.0.2から10.0.0.10までIPアドレスを取得しました。設定されたRaspberry PIを介して)。
最大の問題は、Raspberry PIからインターネットにアクセスできないことです。私が次のように入力したとき
ping 10.0.0.3
働くが
ping 8.8.8.8
失敗する。問題をデバッグした後、次のコマンドを使用して問題を見つけましたip route
。
default via 10.0.0.1 dev eth0 proto dhcp src 10.0.0.2 metric 202
default via 192.168.0.1 dev wlan0 proto dhcp src 192.168.0.46 metric 303
10.0.0.0/24 dev eth0 proto dhcp scope link src 10.0.0.2 metric 202
192.168.0.0/24 dev wlan0 proto dhcp scope link src 192.168.0.46 metric 303
10.0.0.1を介してデフォルトパスを削除しようとしましたが、一時的に役に立ちましたが、しばらくすると、一部のプロセス(DHCPサーバーが疑われる)がそれを復元します。もちろん、常に削除するデーモンを書くこともできますが、より良い解決策を探しています。
アップデート#1
DHCP サーバーに次のものはip route
表示されません。
default via 192.168.0.1 dev wlan0 proto dhcp src 192.168.0.46 metric 303
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.1
169.254.0.0/16 dev eth0 scope link src 169.254.44.117 metric 202
192.168.0.0/24 dev wlan0 proto dhcp scope link src 192.168.0.46 metric 303
事前にありがとう
答え1
問題は実際にルーティングテーブルですが、ルーティングレコードを再インポートせずに正常に削除しました。
上記のように、Stretchのネットワーキング(Jessieに戻って考えてみると)が大きく変わりました。これ郵便はがき/etc/dhcpcd.conf
代わりに、固定IP設定プロセスを案内するための指示が修正されました/etc/network/interfaces*
。しかし、私の場合、static router=x.x.x.x
私のアダプタの固定IPの変数をコメントアウトする方が良いことがわかりました。eth0
なぜなら、それが私のデフォルトゲートウェイになることを望んでいなかったからです。その後、テーブルからパスを削除し、削除されたままip route del default via <address> dev eth0
にしました。
しかし、ここでの作業はまだ完了していません。 DHCPサーバーに接続されている他のデバイスがインターネットに正常にアクセスできるようにするには、次の操作を実行してNATを設定する必要があります。
1)/etc/sysctl.conf
次のトグルを使用して IP 転送を有効にするように編集します。 2)net.ipv4.ip_forward=1
転送と戻りのための/etc/rc.local
iptableルールを追加するように編集します。以下を追加してください。eth0
wlan0
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -A FORWARD -i wlan0 -o eth0 -m state \
--state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
3) 変更を適用するには、再起動してください。
これで、Wi-Fi経由で他のデバイスにアクセスできるようになり、dhcpサーバーから割り当てられたIPで正常に動作します。