.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "BIND9_QUERY2DLF.IN 1" .TH BIND9_QUERY2DLF.IN 1 2025-09-28 "Lire 2.1.1" "LogReport's Lire Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" bind9_query2dlf \- تبدیل گزارش‌های پرسمان BIND9 به قالب dlf .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" \&\fBbind9_query2dlf\fR .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" دستور \fBbind9_query2dlf\fR فایل‌های لاگ پرسمان (query log) نسخه BIND 9 را از ورودی استاندارد (stdin) دریافت می‌کند. .PP اگر در فایل named.conf خود پیکربندی زیر را داشته باشید: .PP .Vb 5 \& channel query_logging { \& file "/var/log/named_querylog" \& versions 3 size 100M; \& print\-time yes; // timestamp log entries \& }; .Ve .PP فایل‌های لاگ تولیدشده پشتیبانی می‌شوند. همچنین در صورت تمایل می‌توانید خطوط زیر را به این کانال اضافه کنید: .PP .Vb 2 \& print\-category yes; // print category name \& print\-severity yes; // print severity level .Ve .PP لاگ‌های پرسمان تولیدشده توسط BIND وصله‌شده (پچ‌شده - بخش «نکات» در زیر را ببینید) نیز پشتیبانی می‌شوند. .PP همچنین لاگ‌های Bind 9.3 که از قالب تاریخ جدید (15\-Jul\-2002) به جای قالب قدیمی syslog استفاده می‌کنند، پشتیبانی می‌شوند. .SH "نمونه لاگ‌ها (LOG EXAMPLES)" .IX Header "EXAMPLE" در صورت فعال بودن گزینه‌های print\-time، print\-category و print\-severity: .PP .Vb 10 \& Feb 25 11:09:43.651 queries: info: client 10.0.0.3#1035: \& query: 3.example.com.nl IN A \& Feb 25 11:09:48.739 queries: info: client 10.0.0.3#1035: \& query: 3.example.com.nl IN A \& Feb 25 12:50:32.476 queries: info: client 10.0.0.3#1035: \& query: 21.example.com.co.uk IN A \& Feb 25 12:50:34.110 queries: info: client 10.0.0.3#1035: \& query: 22.example.com IN A \& Feb 25 12:50:34.525 lame\-servers: info: lame server on \& \*(Aq22.example.com\*(Aq (in \*(Aq23.example.com\*(Aq?): 10.0.0.4#53 \& Feb 25 12:50:34.715 queries: info: client 10.0.0.3#1035: \& query: 24.example.com IN A \& Feb 26 07:30:08.211 queries: info: client 10.0.0.1#1050: \& query: 1.0.0.10.in\-addr.arpa IN PTR \& Feb 26 12:26:55.455 queries: info: client 10.0.0.1#1051: \& query: 28.example.com.nl IN MX \& Feb 04 04:02:00.932 general: info: loading configuration \& from \*(Aq/etc/336.example.com\*(Aq \& Feb 18 04:02:01.023 security: warning: zone \& \*(Aq337.example.com.nl\*(Aq allows updates by IP address, which \& is insecure \& Feb 18 04:02:01.049 config: warning: option \*(Aquse\-id\-pool\*(Aq \& is obsolete \& Feb 18 04:02:01.049 config: warning: option \*(Aqcheck\-names\*(Aq \& is not implemented \& Feb 18 04:02:01.049 config: warning: option \& \*(Aqstatistics\-interval\*(Aq is not yet implemented \& Feb 18 04:02:01.049 network: info: no IPv6 interfaces found \& Feb 04 16:47:18.289 security: info: client 10.0.0.201#137: \& query denied \& Feb 20 07:26:53.731 general: info: running \& Feb 13 08:01:56.138 general: info: shutting down \& Feb 13 08:01:56.140 network: info: no longer listening on \& 10.0.0.3#53 \& Feb 14 08:02:13.983 general: info: refresh_callback: zone \& 384.example.com/IN: failure for 10.0.0.204#53: timed out .Ve .PP فقط با تنظیم بودن گزینه print\-time: .PP .Vb 3 \& Aug 27 04:07:13.361 client 127.0.0.1#3123: query: foo.com IN ANY \& Aug 27 04:07:13.438 client 127.0.0.1#3123: query: fu.bar.nl IN AAAA \& Aug 27 04:07:13.443 client 127.0.0.1#3123: query: fu.bar.nl IN A .Ve .SH "مثال‌ها (EXAMPLES)" .IX Header "EXAMPLES" برای پردازش یک لاگ تولیدشده توسط bind9: .PP .Vb 1 \& $ bind9_query2dlf < dns\-query .Ve .PP دستور bind9_query2dlf به‌ندرت به‌تنهایی استفاده می‌شود و بیشتر توسط lr_log2report فراخوانی می‌گردد: .PP .Vb 1 \& $ lr_log2report bind9_query < /var/log/dns\-query .Ve .SH "نکات (NOTES)" .IX Header "NOTES" نسخه‌های BIND 9 قبل از 9.3 مشخص نمی‌کردند که آیا پرسمان بازگشتی (recursive) بوده است یا خیر، بنابراین آخرین فیلد dlf یعنی (DLF_RESOLVER) مقدار \*(Aq\-\*(Aq خواهد بود. با این حال، با اعمال وصله زیر ارائه‌شده توسط Wytze van der Raay: .PP .Vb 10 \& # patch bin/named/query.c to log recursive/non\-recursive query indication \& SRC=bin/named/query.c \& if [ \-f ${SRC}.org ] \& then \& echo "Patched ${SRC} already in place" \& else \& echo "Patch ${SRC} for recursive/non\-recursive query indication" \& cp \-p ${SRC} ${SRC}.org \& patch \-p0 ${SRC} <<\e! \& \-\-\- bin/named/query.c.org Mon Sep 24 22:57:48 2001 \& +++ bin/named/query.c Tue Sep 25 09:55:21 2001 \& @@ \-3272,7 +3272,8 @@ \& dns_rdatatype_format(rdataset\->type, typename, sizeof(typename)); \& \& ns_client_log(client, NS_LOGCATEGORY_QUERIES, NS_LOGMODULE_QUERY, \& \- level, "query: %s %s %s", namebuf, classname, typename); \& + level, "query: %s %s %s%s", namebuf, classname, typename, \& + WANTRECURSION(client) ? "+" : "\-"); \& } \& \& void \& ! \& fi .Ve .PP خطوط لاگی مشابه نمونه زیر تولید خواهند شد: .PP .Vb 2 \& Nov 11 12:06:42.829 queries: info: client 10.0.0.1#3664: \& query: 6.example.com.nl IN A+ .Ve .PP علامت \*(Aq+\*(Aq نشان‌دهنده پرسمان بازگشتی (recursive) و علامت \- نشان‌دهنده پرسمان غیربازگشتی است؛ عدم وجود + یا \- نشان‌دهنده نسخه وصله‌نشده پیش از 9.3 در bind9 است. به پیام Wytze در تاریخ جمعه ۲۸ دسامبر ۲۰۰۱ در bind9\-workers@isc.org که در نشانی آرشیو شده است مراجعه نمایید. .PP این نوع فایل‌های لاگ توسط این اسکریپت شناسایی و پشتیبانی می‌شوند. .PP نسخه BIND 9.3 یا بالاتر پشتیبانی کاملی از این قابلیت لاگ‌گیری ارائه می‌دهد. علاوه بر این، اطلاعات view، امضاکننده (signer) و EDNS را نیز ثبت می‌کند که همگی در این نسخه از اسکریپت نادیده گرفته می‌شوند. .PP در یک گفتگوی خصوصی در تاریخ پنجشنبه ۱۸ ژوئیه ۲۰۰۲، Wytze نوشت: .PP .Vb 3 \& This contains the "ISC\-compatible" version of the patch for getting a \& recursive/non\-recursive request logged. ISC decided there should be a space \& between the type and the recursion indicator in the logfile, so be it. .Ve .PP اگر مایلید BIND 9.2.1 شما به سبک سازگار با ISC در نسخه 9.3 لاگ‌گیری کند، این وصله را روی سورس‌های BIND خود اعمال کنید: .PP .Vb 4 \& \-\-\- bin/named/query.c.org Thu Mar 28 06:10:09 2002 \& +++ bin/named/query.c Wed Jul 17 08:14:41 2002 \& @@ \-3279,7 +3279,8 @@ \& dns_rdatatype_format(rdataset\->type, typename, sizeof(typename)); \& \& ns_client_log(client, NS_LOGCATEGORY_QUERIES, NS_LOGMODULE_QUERY, \& \- level, "query: %s %s %s", namebuf, classname, typename); \& + level, "query: %s %s %s %s", namebuf, classname, typename, \& + WANTRECURSION(client) ? "+" : "\-"); \& } \& \& void .Ve .PP این اسکریپت هر دو سبک نشانگر بازگشتی Wytze و ISC را به خوبی درک و پشتیبانی می‌کند. .SH "سپاسگزاری (THANKS)" .IX Header "THANKS" با تشکر از Wytze van der Raay برای ارائه پچ لاگ پرسمان BIND 9. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" \&\fBbind8_query2dlf\fR\|(1)، مستندات آنلاین bind9 که همراه با BIND توزیع شده است (البته در نشانی در دسترس نیست، اما مستندات در نشانی می‌تواند مفید باشد). .SH "نسخه (VERSION)" .IX Header "VERSION" \&\f(CW$Id:\fR bind9_query2dlf.in,v 1.7 2006/07/23 13:16:33 vanbaal Exp $ .SH "حق نشر (COPYRIGHT)" .IX Header "COPYRIGHT" کپی‌رایت (C) 2001 Joost Bekkers ، کپی‌رایت (C) 2000, 2001, 2002 Stichting LogReport Foundation LogReport@LogReport.org .PP این برنامه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط «پروانه عمومی همگانی گنو» (GNU GPL) منتشرشده توسط بنیاد نرم‌افزارهای آزاد (نسخه ۲ یا به انتخاب خود هر نسخه بالاتر) بازتوزیع کرده یا تغییر دهید. .PP این برنامه با این امید توزیع شده است که مفید واقع شود، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی تجاری بودن یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به پروانه عمومی همگانی گنو مراجعه کنید. .PP شما باید همراه با این برنامه یک نسخه از پروانه عمومی همگانی گنو را دریافت کرده باشید (فایل COPYING را ببینید)؛ در غیر این صورت به نشانی مراجعه نمایید. .SH "نویسنده (AUTHOR)" .IX Header "AUTHOR" Joost Bekkers بر پایه کارهای Edwin Groothuis و Joost van Baal، و در حال حاضر توسط تیم LogReport نگهداری می‌شود.