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. **
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
。したがって、これはブラケットの位置合わせ不良ではない場合がほぼ確実である。
答え1
まあ、「D'oh!」をもらえますか?会衆で!
RHEL6と派生製品では、dhcpd設定ファイルが/etc/dhcp/dhcpd.conf
代わりに配置され、/etc/dhcpd.conf
すべてが正常です。
答え2
指定するサブネットマスクはdhcpd.conf
インターフェイスサブネットマスクと一致する必要があります。
ランニング:
/sbin/ifconfig eth0
サブネットマスクをとして指定しましたが255.255.255.0
、これは間違っている可能性があります。dhcpd.conf
インターフェースに合わせて変更してください。
DHCPサーバーがリッスンしているインターフェイスには、DHCPの設定に使用したのと同じサブネットの静的IPが必要です。
答え3
RedHatEnterprise 8.3では、根本的な原因はファイアウォールでした。 Firewalld では dhcp サービスが有効になっており、両方のインターフェイスを管理していますが、ファイアウォールが停止すると dhcpd の問題は消えます。 /etc/firewalld/zones/public.xmlを次のように変更しました。
[root@lab-dns1 zones]# pwd
/etc/firewalld/zones
[root@lab-dns1 zones]#
[root@lab-dns1 zones]# diff -c public.xml.20210304 public.xml
*** public.xml.20210304 2021-03-02 12:55:13.897419070 -0700
--- public.xml 2021-03-04 09:18:53.033552618 -0700
***************
*** 4,10 ****
<description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
<service name="ssh"/>
<service name="ntp"/>
- <service name="dhcp"/>
<rule family="ipv4">
<source address="10.220.18.0/25"/>
<port port="53" protocol="tcp"/>
--- 4,9 ----
***************
*** 25,28 ****
--- 24,37 ----
<port port="53" protocol="udp"/>
<accept/>
</rule>
+ <rule family="ipv4">
+ <source address="10.220.18.0/25"/>
+ <port port="67" protocol="udp"/>
+ <accept/>
+ </rule>
+ <rule family="ipv4">
+ <source address="10.220.99.0/24"/>
+ <port port="67" protocol="udp"/>
+ <accept/>
+ </rule>
</zone>
[root@lab-dns1 zones]#