Điểm:-1

nsupdate không cập nhật bản ghi Apex

lá cờ tr

nsupdate chỉ hoạt động đối với tên. Có vẻ như đỉnh (Bản ghi cho miền gốc) không được cập nhật. Tôi đã có thể thêm vào tệp vùng bằng cách sử dụng "cập nhật thêm . 604800 A 1.1.1.1" nhưng nó đặt nó trong "$ORIGIN." của tệp vùng và tôi không thể xóa và cập nhật nó. Tôi đã thử "cập nhật thêm . 604800 A 2.2.2.2" nhưng không có cập nhật nào xảy ra. Tôi cũng đã thử "cập nhật thêm example.com. 604800 A 2.2.2.2". Tôi đã đặt một bản ghi giữ chỗ trong "$ORIGIN ." và "$ORIGIN example.com." phần file zone nghĩ cần tìm nó để cập nhật. Tôi đã thử xóa nó và cập nhật nó ... dường như không có gì hoạt động. Tôi đã đọc ở đâu đó rằng liên kết không thể ghi vào /etc/bind/zones nên tôi đặt tệp vùng vào /var/lib/bind.Ràng buộc đã ghi vào tệp, nhưng chỉ một lần để đưa vào bản ghi trong "$ORIGIN ." tiết diện. Có lời khuyên nào không?

Tệp vùng của tôi:

GỐC $.
$TTL 604800 ; 1 tuần
ví dụ.com. TRONG SOA ns1.example.com. quản trị viên.ns1.example.com. (
                24 ; nối tiếp
                604800 ; làm mới (1 tuần)
                86400 ; thử lại (1 ngày)
                2419200 ; hết hạn (4 tuần)
                604800 ; tối thiểu (1 tuần)
                )
            NS ns1.example.com.
            NS ns2.example.com.
ví dụ $ORIGIN.com
@ MỘT 5.5.5.5
ds1512 MỘT 10.0.0.13
ds1817 MỘT 10.0.0.14
nhà CNAME ds1817
ns1 MỘT 10.0.0.6
ns2 MỘT 10.0.0.3
roma CNAME ds1817
www Ví dụ về CNAME.com.

Các lệnh của tôi với đầu ra gỡ lỗi:

brent@dnsdhcpserver:/var/lib/bind$ sudo nsupdate -d
> máy chủ 10.0.0.6
> vùng ví dụ.com
> cập nhật xóa @ A
> cập nhật thêm @ 604800 A 2.2.2.2
> gửi
Đang gửi bản cập nhật tới 10.0.0.6#53
Truy vấn cập nhật gửi đi:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: 25996
;; cờ:; VÙNG: 1, YÊU CẦU TRƯỚC: 0, CẬP NHẬT: 2, BỔ SUNG: 0
;; KHU VỰC:
;example.com. TRONG SOA

;; PHẦN CẬP NHẬT:
. 0 BẤT CỨ MỘT
. 604800 TRONG 172.16.1.10


Trả lời từ truy vấn cập nhật:
;; ->>HEADER<<- opcode: UPDATE, status: NOTZONE, id: 25996
;; cờ: qr; VÙNG: 1, YÊU CẦU TRƯỚC: 0, CẬP NHẬT: 0, BỔ SUNG: 0
;; KHU VỰC:
;example.com. TRONG SOA

Điều đó không hiệu quả nên tôi đã thử:

> máy chủ 10.0.0.6
> prereq nxdomain example.com
> cập nhật thêm ví dụ.com. 604800 A 2.2.2.2
> gửi
Trả lời từ truy vấn SOA:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47462
;; cờ: qr aa ra; CÂU HỎI: 1, ĐÁP ÁN: 1, TỰ GIẢI: 2, BỔ SUNG: 2
;; PHẦN CÂU HỎI:
;example.com. TRONG SOA

;; PHẦN TRẢ LỜI:
ví dụ.com. 604800 TRONG SOA ns1.example.com. quản trị viên.ns1.example.com. 24 604800 86400 2419200 604800

;; PHẦN THẨM QUYỀN:
ví dụ.com.   604800 TRONG NS ns2.example.com.
ví dụ.com. 604800 TRONG NS ns1.example.com.

;; PHẦN BỔ SUNG:
ns1.example.com. 604800 TRONG 10.0.0.6
ns2.example.com. 604800 TRONG 10.0.0.3

Tên khu vực được tìm thấy: example.com
Chủ là: ns1.example.com
Đang gửi bản cập nhật tới 10.0.0.6#53
Truy vấn cập nhật gửi đi:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: 8484
;; cờ:; VÙNG: 1, YÊU CẦU TRƯỚC: 1, CẬP NHẬT: 1, BỔ SUNG: 0
;; PHẦN ĐIỀU KHOẢN:
ví dụ.com. 0 KHÔNG CÓ

;; PHẦN CẬP NHẬT:
ví dụ.com. 604800 TRONG 172.16.1.11


Trả lời từ truy vấn cập nhật:
;; ->>HEADER<<- opcode: UPDATE, status: YXDOMAIN, id: 8484
;; cờ: qr; VÙNG: 1, YÊU CẦU TRƯỚC: 0, CẬP NHẬT: 0, BỔ SUNG: 0
;; KHU VỰC:
;example.com. TRONG SOA

Bất cứ ai có thể nhìn thấy những gì tôi đang thiếu?

Patrick Mevzek avatar
lá cờ cn
"Có lời khuyên nào không?" Logfiles của bạn nói gì? Trong trường hợp đầu tiên, bạn có "NOTZONE" ở đầu ra, điều đó cho thấy tên bạn sử dụng không chính xác. Trường hợp thứ hai bạn nói "prereq nxdomain example.com", điều này rõ ràng sẽ không bao giờ đúng, bởi vì nếu `example.com` không tồn tại, điều đó có nghĩa là vùng này không tồn tại và do đó bạn không thể thêm bất kỳ bản ghi nào vào đó.
lá cờ tr
Vùng này tồn tại vì máy chủ DNS đang phân giải miền thành các IP riêng chính xác. Nhưng nhận được NOTZONE rõ ràng có nghĩa là có vấn đề, tôi chỉ không biết đó là gì. Tôi rất vui khi tìm thấy tệp nhật ký cho nsupdate. Tệp nhật ký đó sẽ được đặt ở đâu?
Patrick Mevzek avatar
lá cờ cn
liên kết các tệp nhật ký, không phải các tệp `nsupdate`. Các tệp nhật ký được thiết lập trong cấu hình liên kết của bạn.
Nikita Kipriyanov avatar
lá cờ za
"Khu vực này tồn tại vì máy chủ DNS đang phân giải tên miền thành các IP riêng chính xác." â không, điều này không hoàn toàn đúng. Vùng "example.com" có thể có các bản ghi như "a.b.example.com", trong trường hợp đó, một bản ghi như vậy sẽ được giải quyết thành công mặc dù thực tế là không có vùng "b.example.com". Nhân tiện, bạn có thể chỉ cho chúng tôi cấu hình máy chủ DNS, ít nhất là phần thiết lập vùng này không? Nó có cập nhật các bản ghi khác theo cách này không? Ngoài ra, bạn có sử dụng DNS chia nhỏ (lượt xem) không?
Điểm:0
lá cờ za

Không thêm dấu chấm vào tên RR. Sử dụng nó như thế này:

máy chủ my.dns.server
ví dụ vùng.com
key example.com some-key-data
cập nhật xóa ví dụ.com 604800 A
cập nhật thêm ví dụ.com 604800 A 192.0.2.1
gửi

Tôi vừa thử nghiệm nó với bản ghi A và MX; nó hoạt động với tôi, máy chủ là PowerDNS, máy khách là ISC nsupdate từ các công cụ liên kết, xác thực thông qua TSIG, tên khóa bằng với tên vùng để đơn giản.


Tôi có ấn tượng rằng bạn không hiểu đầy đủ về cách $Origin@ làm việc, vì vậy đây là một lời giải thích nhỏ. Để được giải thích đầy đủ, xem RFC1035.

Trên dây những thứ này không bao giờ xuất hiện. Nó chỉ là một "đường cú pháp" thuận tiện để rút ngắn việc gõ và đọc các tệp vùng. Ba ví dụ sau xác định các vùng giống hệt nhau (Tôi lười hoàn thành các bản ghi SOA, giá trị chính xác của chúng không quan trọng đối với chủ đề của chúng ta):

$ORIGIN ví dụ.com.
@ 604800 TRONG SOA ns1 ....
  604800 TRONG NS ns1
ns1 3600 TRONG 192.0.2.1
@ 3600 TRONG 192.0.2.5 
GỐC $.
example.com 604800 TRONG SOA ns1.example.com ....
$Origin com.
ví dụ 604800 TRONG NS ns1.ví dụ
$ORIGIN ns1.example.com.
@ 3600 TRONG 192.0.2.1
ví dụ.com. 3600 TRONG 192.0.2.5 
ví dụ.com. 604800 TRONG SOA ns1.example.com. ....
ví dụ.com. 604800 TRONG NS ns1.example.com.
ns1.example.com. 3600 TRONG 192.0.2.1
ví dụ.com. 3600 TRONG 192.0.2.5 

Trong ví dụ đầu tiên, tôi không chỉ định bất kỳ tên RR nào trong dòng thứ ba (NS RR sau SOA RR), vì vậy trình phân tích cú pháp sẽ lấy nó từ dòng trước. Hành vi này là lý do chính xác cho @ tồn tại cú pháp: bạn không thể để trống trường tên RR, vì nó sẽ lấy tên bản ghi trước đó. Nếu tôi bỏ qua @ ở bản ghi cuối cùng, tôi sẽ xác định một giây Một ghi lại cho ns1. Vì vậy, để xác định một bản ghi có tên tương đương với điểm gốc được đặt hiện tại (nó sẽ là "đỉnh" nếu điểm gốc được đặt thành tên vùng), bạn không thể sử dụng "tên trống", vì nó sẽ gọi hành vi "lấy trước đó".Bạn phải đánh vần rõ ràng tên bản ghi đầy đủ bằng dấu chấm để nó không thêm phần gốc (như được viết trong các ví dụ khác), thay đổi phần gốc hoặc sử dụng một ký hiệu đặc biệt @ thông báo cho trình phân tích cú pháp: "đừng lặp lại tên trước đó, ở đây có nguồn gốc trần trụi", vì vậy dòng cuối cùng trong ví dụ đầu tiên xác định ví dụ.com..

Ví dụ thứ hai chỉ là trình diễn lạ mắt về cách $Origin@ làm việc cùng nhau.

Ví dụ thứ ba không sử dụng đường. Đây là dữ liệu tuyệt đối thực sự mà vùng chứa trong ba ví dụ đó.


Vì vậy, bản ghi của bạn có thể được trình bày trong tệp vùng dưới dạng ví dụ.com sau đó GỐC $., hoặc ví dụ.com. bất cứ nơi nào, hoặc @ sau đó $ORIGIN ví dụ.com., hoặc thậm chí ví dụ sau đó $Origin com., không thành vấn đề. Những trường hợp này đều bình đẳng. Có thể bạn đang mong đợi thấy biến thể "@", nhưng BIND có thể quyết định đánh vần nó là bất kỳ biến thể nào trong số đó, vì vậy hãy chuẩn bị để nhận ra tất cả chúng. Và bạn không thể buộc nó sử dụng bất kỳ biến thể cụ thể nào, xin lỗi.

Một lưu ý khác là bạn có thể đọc tệp vùng sau khi cập nhật mà không đóng băng tệp đó trước. Lưu ý tệp "jnl" bên cạnh tệp vùng; đó là nhật ký nơi dữ liệu cập nhật của bạn được lưu trữ lần đầu tiên. Chỉ khi bạn làm rndc đóng băng ví dụ.com dữ liệu được ghi vào tệp vùng (nhưng vùng này sau đó bị khóa để cập nhật, để mở khóa, bạn cần thực hiện tan băng hoạt động hoặc tải lại máy chủ). Cách thích hợp để kiểm tra xem vùng có được cập nhật hay không là thực hiện truy vấn DNS thực tế, với đào hoặc chủ nhà hoặc nslookup, bất cứ thứ gì bạn thích:

máy chủ -v example.com
Patrick Mevzek avatar
lá cờ cn
Điều này được giải thích trong tài liệu, nó có ví dụ sau: `update add newhost.example.com 86400 A 172.16.1.1`. Tuy nhiên, nó cũng phụ thuộc vào việc bạn có sử dụng pragma `zone` trước đó hay không.
Nikita Kipriyanov avatar
lá cờ za
Có, trước đây tôi có pragma vùng và tôi có khóa TSIG. (Tôi đã phản ánh nó trong câu trả lời, đã thêm tập lệnh `nsupdate` hoàn chỉnh của mình để hoạt động.) Cũng lưu ý: có dấu chấm *không* trong tên RR trong ví dụ của bạn, chính xác như tôi đề xuất. Tôi nghĩ dấu chấm này là gốc rễ vấn đề của O.P.
lá cờ tr
Đây là DNS cục bộ, IP duy nhất cập nhật chính máy chủ dns. Tôi không biết khóa TSIG là gì nhưng tôi cho rằng đó là khóa xác thực, tôi không sử dụng khóa này theo bất kỳ cách nào. Tôi đã xóa dấu chấm và tôi vẫn không nhận được thông tin cập nhật: máy chủ 10.0.0.6 ví dụ vùng.com cập nhật xóa ví dụ.com 604800 A cập nhật thêm ví dụ.com 604800 A 192.0.2.1 gửi Tôi đã yêu cầu nó xóa bản ghi "@ A 5.5.5.5" trong $ORIGIN example.com và nó đã chèn một bản ghi mới vào "$ORIGIN." của tệp vùng. Nhưng nó sẽ không xóa bản ghi mới cũng như không cập nhật nó.
lá cờ tr
Điều này sẽ không cập nhật bản ghi, gửi riêng lẻ hoặc tất cả cùng một lúc: máy chủ 10.0.0.6 ví dụ vùng.com cập nhật thêm ví dụ.com 604800 A 192.0.2.3 cập nhật thêm ví dụ.com. 604800 MỘT 192.0.2.3 cập nhật thêm @ 604800 A 192.0.2.3 cập nhật thêm . 604800 MỘT 192.0.2.3 gửi Để rõ ràng, bản ghi nằm trong "$ORIGIN ." một phần của tệp vùng là " A 5.5.5.5". Không có ký hiệu @ hoặc dấu chấm ở phía bên trái của bản ghi. Rất thích những ý tưởng khác về những gì để thử.
Nikita Kipriyanov avatar
lá cờ za
Không bao giờ sử dụng ký hiệu "@" trong `nsupdate`. Nó không có ý định được sử dụng bên trong truy vấn DNS, mục đích sử dụng duy nhất được xác định cho nó là trình giữ chỗ thuận tiện trong tệp vùng BIND, để không chỉ định lại $ORIGIN qua lại. https://datatracker.ietf.org/doc/html/rfc1035#section-5.1 Bạn có thể xác định một vùng hoàn toàn mà không cần vùng đó, giống như bạn đã xác định một bản ghi SOA. Cũng lưu ý, bản ghi "apex" có tên trùng với tên vùng chỉ là bản ghi bình thường trong vùng, không có gì đặc biệt ở đây, ngoại trừ sự trùng hợp ngẫu nhiên này. (Tôi có ấn tượng mạnh rằng bạn không hiểu hết @ là gì.)

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.