私の内部インターフェイスであるeth0
には、10.0.0.1
の静的アドレスがあります。また、外部インターフェイスとして機能するp4p1
というインターフェイスもあります。それが重要な場合は、私の外部インターフェイスが物理的に接続されておらず、iptables
がオフ/まだ書き込まれています。
/etc/sysconfig/dhcpd
:
DHCPDARGS=eth0
/etc/dhcpd.conf
のサブネット句:
subnet 10.0.0.0 netmask 255.255.255.0 {
option routers 10.0.0.1;
option domain-name-servers 10.0.0.1;
option ntp-servers 10.0.0.1;
default-lease-time 86400; # 1 day
max-lease-time 604800; # 7 days
use-Host-decl-names on;
ddns-updates on;
use-Host-decl-names on;
allow unknown-clients;
ignore client-updates;
option domain-name "localdomain";
ddns-domainname "localdomain";
next-server 10.0.0.1;
filename "pxelinux.0";
group # known hosts
{
Host host1.localdomain {hardware ethernet [REDACTED]; fixed-address Host1.localdomain;}
Host host2.localdomain {hardware ethernet [REDACTED]; fixed-address Host2.localdomain;}
{
pool
{
one-lease-per-client true;
ping-check true;
range 10.0.0.51 10.0.0.60;
}
}
では、起動時に「サブネット宣言がありません」というエラーメッセージが引き続き表示されるのはなぜですか?
No subnet declaration for eth0 (10.0.0.1).
** Ignoring requests on eth0. If this is not what
you want, please write a subnet declaration
in your dhcpd.conf file for the network segment
to which interface eth0 is attached. **
PDATE 4/1 1900h
今夜の実験の前に:
[root@father ~]# ip addr show dev eth0
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 90:e2:ba:2d:92:4d brd ff:ff:ff:ff:ff:ff
inet 10.0.0.1/24 brd 10.0.0.255 scope global eth0
inet6 fe80::92e2:baff:fe2d:924d/64 scope link
valid_lft forever preferred_lft forever
私は内部ネットワークのIPアドレスを192.168.100.0/24
に切り替えましたが、動作の変更はないため、一致する変更を/etc/dhcpd.conf
に変更しました。
[root@father ~]# ip addr show dev eth0
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 90:e2:ba:2d:92:4d brd ff:ff:ff:ff:ff:ff
inet 192.168.100.1/24 brd 192.168.100.255 scope global eth0
inet6 fe80::92e2:baff:fe2d:924d/64 scope link
valid_lft forever preferred_lft forever
[root@father ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 p4p1
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 p4p1
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth0
ああ、ちょっと!そこにゲートウェイはありません!これは、GATEWAY=192.168.0.1
およびifcfg-eth0
ファイルのifcfg-p4p1
で簡単に修正できます。 service network restart
そして...
[root@father ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 p4p1
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 p4p1
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 p4p1
したがって、ゲートウェイがありますが、service dhcpd start
は同じエラーで失敗します。
その他の注意事項:
p4p1
は物理的に接続されていません。service dhcpd configtest
はSyntax: OK
と言います。したがって、これはほぼ間違いなくブレースの配置が間違っている場合ではありません。よし、「ドーッ」をもらえますか?会衆から!
RHEL6および派生物では、dhcpd構成ファイルは/etc/dhcp/dhcpd.conf
ではなく/etc/dhcpd.conf
に配置されるようになりました。ファイルを移動し、すべてが順調です。
dhcpd.conf
で指定したサブネットマスクは、インターフェースのサブネットマスクと一致する必要があります。
実行:
/sbin/ifconfig eth0
サブネットマスクを255.255.255.0
と指定しましたが、これはおそらく誤りです。インターフェイスに合わせてdhcpd.conf
を変更します。
DHCPサーバーが待機しているインターフェイスには、DHCP構成で使用しているものと同じサブネットの静的IPが必要です。