Tôi muốn thiết lập một mạng nhỏ, trong đó máy chủ DHCP trung tâm cho khách hàng thuê địa chỉ IPv4. Máy khách đã đặt tên máy chủ của mình và nên quảng cáo tên máy chủ đó đến máy chủ DNS trung tâm, để cả máy chủ và tất cả máy khách có thể tìm thấy nhau bằng tên máy chủ đó. Máy chủ DNS sẽ phân giải các địa chỉ mạng LAN của miền "my.domain" và trỏ tới một máy chủ DNS bên ngoài cho tất cả các miền khác (internet).
Trong thiết lập hiện tại của tôi, tôi có hai hộp: 10.0.100.1
là máy chủ (Ubuntu 22.04), nơi lưu trữ DHCP và DNS. 10.0.100.2
được cấu hình như một máy khách (Fedora 35) (DHCP gửi IP cố định này trong giai đoạn thử nghiệm của tôi).
Đây là khách hàng (10.0.100.2
) cấu hình:
$ mèo /etc/tên máy chủ
máy khách
$ cat /etc/systemd/network/20-wired.network
[Trận đấu]
Tên=enp0s31f6
[Mạng]
LinkLocalAddressing=ipv4
DHCP=ipv4
GửiHostname=true
[DHCPv4]
Tên miền sử dụng = true
$ giải quyết
Toàn cầu
Giao thức: LLMNR=resolve -mDNS -DNSoverTLS DNSSEC=no/unsupported
chế độ giải quyết.conf: sơ khai
Liên kết 2 (enp0s31f6)
Phạm vi hiện tại: DNS LLMNR/IPv4
Giao thức: +DefaultRoute +LLMNR -mDNS -DNSoverTLS DNSSEC=no/unsupported
Máy chủ DNS hiện tại: 10.0.100.1
Máy chủ DNS: 10.0.100.1
Tên miền DNS: my.domain
địa chỉ IP 10.0.100.2
được gán chính xác. Máy khách có thể ping máy chủ (10.0.100.1
) bằng IP, tên máy chủ hoặc FQDN của nó. Tôi cũng có thể thấy trong tcpdump rằng tên máy chủ được gửi đến máy chủ DHCP (tùy chọn 81 Client FQDN). Càng xa càng tốt.
Cấu hình máy chủ DHCP được cho là sẽ được thay đổi sau khi thiết lập ban đầu hoạt động, hướng tới việc phân phát IP từ một dải. Vì vậy, trong tương lai, tôi sẽ không có địa chỉ IP được gán cố định cho khách hàng. Tôi sẽ bỏ qua việc hiển thị các tệp khóa rndc ở đây. Chúng giống hệt nhau và được đặt ở các vị trí đã định cấu hình. Máy chủ được cấu hình như sau:
$ mèo /etc/tên máy chủ
Máy chủ lưu trữ
$ cat /etc/systemd/network/20-wired.network
[Trận đấu]
Tên=enp0s31f6
[Mạng]
LinkLocalAddressing=ipv4
Địa chỉ=10.0.100.1/16
Cổng=10.0.1.1
DNS=10.0.100.1
[DHCPv4]
UseDomains=my.domain
$ cat /etc/default/isc-dhcp-server
GIAO DIỆNv4="enp0s31f6"
$ con mèo /etc/dhcp/dhcpd.conf
bao gồm "/etc/dhcp/ddns-keys/my-domain.key";
thời gian thuê mặc định 7200;
thời gian thuê tối đa 28800;
cập nhật ddns trên;
tiêu chuẩn kiểu cập nhật ddns;
tên miền ddns "my.domain.";
cho phép khách hàng không xác định;
có thẩm quyền;
khoanh vùng my.domain. {
chính 10.0.100.1;
khóa ddns-mydomain;
}
vùng 10.0.in-addr.arpa. {
chính 10.0.100.1;
khóa ddns-mydomain;
}
# chỉ phục vụ riêng cho một hộp khách hàng trong giai đoạn thử nghiệm
mạng con 10.0.0.0 mặt nạ mạng 255.255.0.0 {}
máy chủ thử nghiệm {
ethernet phần cứng 00:00:00:00:00:00;
địa chỉ cố định 10.0.100.2;
tùy chọn mặt nạ mạng con 255.255.0.0;
bộ định tuyến tùy chọn 10.0.1.1;
tùy chọn máy chủ tên miền 10.0.100.1;
tùy chọn tên miền "my.domain";
tên tệp "pxelinux.0";
}
$ mèo /etc/bind/named.conf
bao gồm "/etc/bind/keys/my.domain.key";
bao gồm "/etc/bind/named.conf.options";
bao gồm "/etc/bind/named.conf.local";
bao gồm "/etc/bind/named.conf.default-zones";
$ con mèo /etc/bind/named.conf.options
acl "nội bộ" {
127.0.0.1;
10.0.0.0/16;
};
tùy chọn {
thư mục "/var/cache/bind";
đệ quy có;
cho phép đệ quy { nội bộ; };
nghe trên { 10.0.100.1; };
cho phép chuyển { none; };
cho phép truy vấn { nội bộ; };
allow-query-cache { nội bộ; };
giao nhận {
1.1.1.1;
};
nghe-on-v6 { bất kỳ; };
};
$ mèo /etc/bind/named.conf.local
vùng "my.domain" {
gõ chủ;
tập tin "/etc/bind/zones/db.my.domain";
chính sách cập nhật { cấp tên ddns-mydomain my.domain BẤT KỲ; };
cho phép chuyển { none; };
};
vùng "0.10.in-addr.arpa" {
gõ chủ;
tệp "/etc/bind/zones/db.0.10";
chính sách cập nhật { cấp tên ddns-mydomain my.domain BẤT KỲ; };
cho phép chuyển { none; };
};
$ con mèo /etc/bind/zones/db.my.domain
$ TTL 86400
@ TRONG SOA serverhost.my.domain. admin.my.domain. (
3 ; nối tiếp
28800 ; Làm mới
3600 ; Thử lại
28800 ; Hết hiệu lực
43200 ); Bộ đệm âm TTL
;
; máy chủ định danh - bản ghi NS
TRONG NS serverhost.my.domain.
; một hồ sơ
máy chủ lưu trữ.my.domain. TRONG 10.0.100.1
$ con mèo /etc/bind/zones/db.10.0
$ TTL 86400
@ TRONG SOA serverhost.my.domain. admin.my.domain. (
3 ; nối tiếp
28800 ; Làm mới
3600 ; Thử lại
28800 ; Hết hiệu lực
43200 ); Bộ đệm âm TTL
;
; máy chủ định danh - bản ghi NS
TRONG NS serverhost.my.domain.
; hồ sơ PTR
100.1 TRONG PTR serverhost.my.domain. ; 10.0.100.1
Tôi nghĩ đó phải là tất cả các cấu hình có liên quan. Xin vui lòng cho tôi biết nếu bạn cần một cái gì đó khác.
Vấn đề ở đây là, đang ở trên 10.0.100.1 (máy chủ lưu trữ)
tôi chỉ có thể ping máy khách
thông qua IP của nó 10.0.100.2
nhưng không phải bởi tên máy chủ cũng như FQDN của nó.Thật không may, tôi không biết bắt đầu gỡ lỗi từ đâu để xem liệu tên máy chủ của máy khách có được gửi đến máy chủ DNS và được đăng ký hay không.
Có thể là một lưu ý phụ có khả năng không liên quan: Chạy lệnh dhcp-list-cho thuê
trên Máy chủ lưu trữ
trả về một danh sách trống. Nhật ký hiển thị một DHCPACK cho 10.0.100.2
nhưng nó không bao giờ xuất hiện trong đầu ra cụ thể này (điều này sẽ rất thú vị vì có cột "tên máy chủ").
Chỉnh sửa: Rốt cuộc, có vẻ như chìa khóa có thể quan trọng. Ban đầu tôi tự tạo một khóa với rndc-confgen -a -b 512
, sau đó sao chép tệp đó vào /etc/dhcp/rndc-keys/
. Hiện tại, tôi đã tạo một khóa mới với ddns-confgen -a -b 512
và đặt chìa khóa cả trong /etc/bind/keys/my.domain.key
và trong /etc/dhcp/ddns-keys/my.domain.key
(và cập nhật các câu lệnh bao gồm trong các tệp cấu hình tương ứng). Tôi vẫn có khóa rndc bên dưới /etc/bind/rndc.key
cũng được bind9 chọn khi nhật ký hiển thị.
Chỉnh sửa2:
Chạy thủ công nsupdate
trông giống như sau:
$ nsupdate -D -k /etc/bind/keys/my.domain.key
> cập nhật thêm clienthost.my.domain 7200 A 10.0.100.2
> gửi
[…]
Trả lời từ truy vấn cập nhật:
;; ->>HEADER<<- opcode: UPDATE, status: REFUSED, id: 39064
;; cờ: qr; VÙNG: 1, YÊU CẦU TRƯỚC: 0, CẬP NHẬT: 0, BỔ SUNG: 1
;; KHU VỰC:
;tên miền của tôi. TRONG SOA
;; TSIG PSEULiều lượng:
ddns-tên miền của tôi. 0 BẤT KỲ TSIG hmac-sha256. 1652972427 300 32 4e/XXXXXXXXXXXXXXXXXXXXXXXX/bmg= 39064 KHÔNG LỖI 0
Và trong quá trình cập nhật thủ công, nhật ký hiển thị
khách hàng @ 0x7f61d8004cb8 10.0.100.1#39791/key ddns-mydomain: vùng cập nhật 'my.domain/IN': cập nhật không thành công: bị cập nhật bảo mật từ chối (ĐÃ TỪ CHỐI)