我正在尝试将我的主机作为 DNS 服务器运行,它也将充当网关。
我的/etc/named.conf如下:
options {
directory "/var/named/";
allow-query {127.0.0.1; 192.168.64.0/24;};
forwarders { 192.168.48.2; };
};
zone "localhost" {
type master;
file "named.localhost";
};
zone "huh.dod" {
type master;
file "mydb-huh-dod";
};
我的/var/named/mydb-huh-dod:
$TTL 3D
@ IN SOA host.huh.dod. hostmaster.huh.dod.(
2018042901 ; Serial
8H ; Refresh
2H ; Retry
1W ; Expire
1D ; Negative Cache TTL
);
@ IN NS host.huh.dod.
host IN A 192.168.64.1
我将我的主机名设置为主机并通过配置域名/etc/sysconfig/network-scripts/ifcfg-eth0文件搜索参数:
DNS1="192.168.64.1"
IPADDR="192.168.48.10"
NETMASK="255.255.255.0"
GATEWAY="192.168.48.2"
SEARCH="huh.dod"
所以/etc/resolv.conf好像:
# Generated by NetworkManager
search huh.dod
nameserver 192.168.64.1
尝试使用主机命令被拒绝:
host host
host.huh.dod has address 192.168.64.1
Host host.huh.dod not found: 5(REFUSED)
Host host.huh.dod not found: 5(REFUSED)
host host.huh.dod
host.huh.dod has address 192.168.64.1
Host host.huh.dod not found: 5(REFUSED)
Host host.huh.dod not found: 5(REFUSED)
我不确定问题是什么。
也许与我的 iptables 防火墙有关?
输出netstat -anlp | 网络统计53 | grep 53 grep 听
tcp 0 0 192.168.64.1:53 0.0.0.0:* LISTEN 942/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 942/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 942/named
tcp6 0 0 ::1:953 :::* LISTEN 942/named
命名正在运行
答案1
粗略地目视一下,你的options {}
部分看起来很简朴。
它里面缺少listen-on
指令,如下所示:
options {
listen-on port 53 { 192.168.64.1; 127.0.0.1; };
.....
};
如果没有该指令,BIND 将不会在预期的接口中侦听。
答案2
根据netstat
输出,BIND 正在 IP 地址为 192.168.64.1 的主机上运行。
客户端主机(即文件所在的主机ifcfg-eth0
)具有
DNS1="192.168.64.1"
IPADDR="192.168.48.10"
NETMASK="255.255.255.0"
...
所以DNS服务器地址是正确的,但是客户端自己的地址是192.168。48.10...与配置选项中的任何值都不匹配allow-query
:
allow-query {127.0.0.1; 192.168.64.0/24;};
使用此配置,192.168.64.1 上的 BIND 将拒绝除来自 192.168 的查询之外的任何查询。64.* 网络和 BIND 服务器主机本身。客户端的地址192.168.48.10在指定的网络之外,所以它当然会被拒绝。
如果您只希望这一特定客户端在 192.168.64.* 网络之外工作,则allow-query
BIND 配置中的此设置即可实现:
allow-query { 127.0.0.1; 192.168.64.0/24; 192.168.48.10; };
或者,如果您也想允许从整个 192.168.48.* 网络进行访问:
allow-query { 127.0.0.1; 192.168.64.0/24; 192.168.48.0/24; };