Ubuntu 12.10にisc-dhcp-serverをインストールしましたが、ローカルネットワークの6台のワーカーコンピューターのヘッドノードにDHCPサーバーをセットアップしようとしています。ヘッドノード自体は、ネットワーク内の他のコンピューターから(eth0で)IPアドレス192.168.20.1を受信するDHCPクライアントです。
ヘッドノードでIPv4 IP転送が有効になっています。 /etc/sysctl.confに次の行が追加されました:
net.ipv4.ip_forward = 1
/etc/rc.localには次のルールが設定されています。
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE
さらに、INTERFACES="eth0"
は/ etc/default/isc-dhcp-serverに設定されています。
Dhcpd.confファイルには次の内容が含まれています(現時点では、ファイルには1台のワーカーコンピューターしかありません)
ddns-update-style none;
default-lease-time 3600;
max-lease-time 7200;
authoritative;
subnet 192.168.20.0 netmask 255.255.255.0 {
range 192.168.20.2 192.168.20.200
Host hostName {
hardware ethernet macOfHost;
fixed-address 192.168.20.20;
}
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.20.255;
option routers 192.168.20.1;
}
ワーカーノードは実質的にIPアドレス192.168.20.20を取得しますが、インターネット接続はありません。 192.168.20.1へのpingと、ヘッドノードのDHCPサーバーとして機能するコンピューターへのping(192.168.1.1へのping)が成功します。この問題は、IPアドレス(8.8.4.4など)へのpingが失敗したため、DNSとは関係がないようです。
更新
ネットワークトポロジは次のとおりです。コンピューター(インターネットアクセスがあり、DHCPサーバーを実行し、IPアドレス192.168.1.1)と他の7台のコンピューターを接続するスイッチがあります。これらの7台のコンピューターのいずれかが192.168.1.1コンピューターからIPを取得します。取得するIPは192.168.20.1で、そのコンピューターのインターネットは正常に機能します。これで、他の6台のコンピューターにインターネットアクセスを提供するために、192.168.20.1でDHCPサーバーが実行されましたが、失敗します。 IPアドレスを取得しますが、インターネットにアクセスできません。 192.168.1.1ノードの変更は許可されていないため、この設定でインターネットを機能させることは可能です。
誰かが問題が何であるかを知っていますか?
クライアントでの/ sbin/route -nの出力:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.20.1 0.0.0.0 UG 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1
192.168.20.0 0.0.0.0 255.255.255.0 U 1 0 0 eth1
Sudo iptablesの出力-L -v -n:チェーンINPUT(ポリシーACCEPT 2146パケット、1551Kバイト)pktsバイトターゲットプロトオプトインソースの宛先
Chain FORWARD (policy ACCEPT 59 packets, 3762 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 1908 packets, 213K bytes)
pkts bytes target prot opt in out source destination
ip ro shの出力 192.168.1.1を介したデフォルトdev eth0 proto static 169.254.0.0/16 dev eth0スコープリンクメトリック1000 192.168.0.0/16 dev eth0 protoカーネルスコープリンクsrc 192.168.20.1メトリック1
現在、すべてが機能しています。 DNSの問題であることが判明しました。 option routers
からoption routers 192.168.1.1
問題を修正しました。 pingはネットワークのどこかでブロックされているはずです。応答が届かなかったためですが、ブラウザーで特定のIPアドレスにサーフィンできたため、DNSに問題があることに気付きました。皆さんの助けに感謝します。
私のコメントごとに...
Eth0とeth1の両方で同じIPを使用しようとしています。
Eth1のサブネットを10.10.0.0 /255.255.255.0のように変更すると、すべてが設定されます。
転送を有効にする必要があります。
sysctl -w net.ipv4.ip_forward=1
上記の行はすぐに機能します。ただし、次回システムを再起動したときに失われます。
永続的な設定の場合、以下を/etc/sysctl.conf
に入れます(ただし、再起動後にのみ有効になります):
net.ipv4.ip_forward=1
Ubuntuのドキュメントでは、接続共有ガイドでかなり詳しく説明しています。
https://help.ubuntu.com/community/Internet/ConnectionSharing