DNS ו- DHCP ב- CentOS 7 - רשתות SMB

אינדקס כללי של הסדרה: רשתות מחשבים לעסקים קטנים ובינוניים: מבוא

שלום חברים! במאמר זה, נראה כיצד ליישם את שירותי הרשת החשובים של DNS ו-DHCP ב-CentOS לינוקס, ובפרט בגרסה 7.2.

  • כמה מאמרים על DNS מתייחסים לעובדה שהטמעת שירות זה מעט לא ברורה וקשה. אני לא מאוד מסכים עם הצהרה זו. אני מעדיף לומר שזה קצת רעיוני ושרבים מקבצי התצורה שלו כוללים תחביר מטריד. למרבה המזל, יש לנו כלים לבדוק, צעד אחר צעד, את התחביר של כל קובץ תצורה שאנו משנים. לכן, ננסה להפוך את הקריאה לפוסט זה לנעימה ומהנה ככל האפשר..

למי שמחפש מושגים בסיסיים לגבי שני השירותים, אנו ממליצים בחום להתחיל את החיפוש בוויקיפדיה, הן בגרסאות הספרדיות והן באנגלית. זה לא פחות נכון שמאמרים באנגלית כמעט תמיד שלמים וקוהרנטיים יותר. ובכל זאת, ויקיפדיה היא נקודת התחלה טובה מאוד.

אלו שבאמת רוצים ללמוד על DNS ו-BIND מומלץ לקרוא את הספר " OReilly – DNS and BIND 4th ed " שנכתב על ידי פול אלביטס וקריקט ליו , או מהדורה מאוחרת יותר שבוודאי קיימת.

כבר פרסמנו מאמר בנושא זה תחת הכותרת " DNS ו-DHCP ב-openSUSE 13.2 Harlequin – רשתות SME " עבור אלו המעדיפים סביבה גרפית. עם זאת, מעתה והלאה, תיתקלו במאמרים בנושא זה - אך לא באחרים - שנכתבו תוך שימוש נרחב באמולטור מסוף או קונסולה. במילים אחרות, בסגנון הקלאסי בו משתמשים מנהלי מערכות UNIX®/Linux.

אם תרצו ללמוד עוד על נושא המאמר, " רשתות עסקים קטנים ובינוניים ", תוכלו לבקר בדף באותו בלוג, " רשתות עסקים קטנים ובינוניים: גרסה וירטואלית ראשונה ". שם תמצאו קישורים למאמרים רבים אחרים שפורסמו.

  • לאחר סיום ההתקנה של מערכת ההפעלה CentOS 7 עם החבילות שאנו ממליצים עליהן, eספריה /usr/share/doc/bind-9.9.4/ מכיל כמות טובה של תיעוד עליו אנו ממליצים להתייעץ לפני שתתחיל בחיפוש באינטרנט מבלי שתדע קודם לכן, בקצות אצבעותיך ובביתך, תוכל למצוא את מבוקשך.

התקנת מערכת בסיס

נתונים כלליים של התחום ושרת ה- DNS

שם דומיין: desdelinux.אוהד
שם שרת DNS: dns.desdelinux.אוהד
כתובת IP: 192.168.10.5
מסיכת רשת משנה: 255.255.255.0

התקנה

אנו מתחילים בהתקנה חדשה או נקייה של מערכת ההפעלה CentOS 7, כמתואר במאמר הקודם " CentOS 7 Hypervisor I – רשתות SME ". עלינו לבצע רק את השינויים הבאים:

  • ב Imagen 22 «בחירת תוכנה«, אנו ממליצים לבחור בעמודה השמאלית«סביבת בסיס»האפשרות המתאימה ל-«שרת תשתית«, בעמודה הימנית«תוספים לסביבה נבחרת»בחר בתיבת הסימון«שרת DNS«. נתקין את שרת DHCP בהמשך.
  • בואו נזכור את הצהרת המאגרים הנוספים כפי שמוצג ב Imagen 23, לאחר הגדרת הסימן «שם רשת וצוות".
  • התמונות המתייחסות למחיצות שניצור בכונן הקשיח ניתנות רק כמדריכים. אל תהסס לבחור את המחיצות לפי שיקול דעתך, תרגולך ושיקול דעתך.
  • לבסוף, ב תמונה 13 «רשת & שם צוות", עלינו לשנות את הערכים בהתאם לפרמטרים הכלליים של התחום המוצהר ושרת ה- DNS, מבלי לשכוח לציין את שם המארח - במקרה זה «DNS«- לאחר השלמת תצורת הרשת. זה חיובי לעשות פינג -מארח אחר- לכתובת ה- IP שצוינה לאחר שהרשת פעילה:

DNS ו- DHCP ב- CentOS

יש מעט מאוד ושינויים ברורים מאוד שעלינו לבצע ביחס למאמר הקודם.

בדיקות והתאמות ראשוניות

לאחר התקנת מערכת ההפעלה עלינו לבדוק לפחות את הקבצים הבאים, ולשם כך אנו מתחילים הפעלה באמצעות SSH מהמחשב שלנו מנהל מערכת.desdelinux.אוהד:

buzz @ sysadmin: ~ $ ssh 192.168.10.5
[מוגן בדוא"ל]סיסמה של: כניסה אחרונה: שבת 28 ינואר 2017 09:48:05 מ-192.168.10.1
[buzz @ dns ~] $

הפעולה הנ"ל עשויה להימשך זמן רב מהרגיל, והיא נובעת בעיקר מכך שאין לנו עדיין DNS ברשת המקומית. בדוק שוב מאוחר יותר ש- DNS פועל.

[buzz @ dns ~] $ cat / etc / hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 :: 1 localhost localhost.localdomain localhost6 localhost6.localdomain6

[buzz @ dns ~] $ cat / etc / hostname
DNS

[buzz @ dns ~] $ cat / etc / sysconfig / scripts network / ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
UUID=946f5ac9-238a-4a94-9acb-9e3458c680fe
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.10.5
PREFIX=24
GATEWAY=192.168.10.1
DNS1=127.0.0.1
DOMAIN=desdelinux.fan

[buzz @ dns ~] $ cat /etc/resolv.conf 
# נוצר על ידי חיפוש NetworkManager desdelinuxשרת שמות .fan 127.0.0.1

התצורות העיקריות משקפות את הבחירות שלנו. שימו לב שגם בשרת Red Hat 7 – CentOS 7 , NetworkManager מוגדר כברירת מחדל לנהל ממשקי רשת, בין אם קוויים או אלחוטיים (WiFi), חיבורי VPN, חיבורי PPPoE וכל חיבור רשת אחר.

[buzz @ dns ~] $ sudo systemctl מנהל רשת
סיסמת [sudo] לבאז: ● networkmanager.service נטען: לא נמצא (סיבה: אין קובץ או ספרייה כאלה) פעיל: לא פעיל (מת)

[buzz @ dns ~] $ sudo systemctl status NetworkManager
● NetworkManager.service - מנהל רשת נטען: טעון (/usr/lib/systemd/system/NetworkManager.service; מופעל; מוגדר מראש של ספק: מופעלפעיל: פעיל (פועל) מאז יום שבת 2017-01-28 12:23:59 EST; לפני 12 דקות PID ראשי: 705 (NetworkManager) CGroup: /system.slice/NetworkManager.service └─705 / usr / sbin / NetworkManager - no-daemon

Red Hat – CentOS מאפשר לך גם לחבר ולנתק ממשקי רשת באמצעות הפקודות הקלאסיות `ifup` ו -`ifdown` . בואו נריץ את הפקודות הבאות בקונסולת שרת:

[root @ dns ~] # ifdown eth0
המכשיר 'eth0' נותק בהצלחה.

[root @ dns ~] # ifup eth0
החיבור הופעל בהצלחה (נתיב פעיל D-Bus: / org / freedesktop / NetworkManager / ActiveConnection / 1)
  • אנו מציעים אל תשנה את הגדרות ברירת המחדל שמציעה CentOS 7 ביחס מנהל רשת.

אנו מצהירים באופן סופי על המאגרים שאנו נשתמש בהם ולעדכן את מערכת ההפעלה במידת הצורך:

[buzz @ dns ~] $ su סיסמה: [root @ dns buzz] # cd /etc/yum.repos.d/
[root @ dns yum.repos.d] # ls -l
סה"כ 28 -rw-r - r--. שורש שורש אחד 1 1664 בדצמבר 9 CentOS-Base.repo -rw-r - r--. שורש שורש אחד 2015 1 בדצמבר 1309 CentOS-CR.repo -rw-r - r--. שורש שורש אחד 9 2015 בדצמבר 1 CentOS-Debuginfo.repo -rw-r - r--. שורש שורש אחד 649 9 בדצמבר 2015 CentOS-fasttrack.repo -rw-r - r--. שורש שורש אחד 1 בדצמבר 290 CentOS-Media.repo -rw-r - r--. שורש שורש 9 2015 1 בדצמבר 630 CentOS-Sources.repo -rw-r - r--. שורש שורש אחד 9 2015 בדצמבר 1 CentOS-Vault.repo

זה בריא לקרוא את התוכן של קבצי ההצהרה המקוריים של המאגרים המומלצים על ידי CentOS. השינויים שאנו מבצעים כאן נובעים מהעובדה שאין לנו גישה לאינטרנט, ואנו עובדים עם מאגרים מקומיים שהורדו מ-WWW Village, על ידי עמיתים שמקלים מעט על חיינו. 

[root @ dns yum.repos.d] מקורי # mkdir
[root @ dns yum.repos.d] # mv CentOS- * original /

[root @ dns yum.repos.d] # nano centos-repos.repo
[centos-base]
name=CentOS-$releasever
baseurl=http://10.10.10.1/repos/centos/7/base/
gpgcheck=0
enabled=1

[centos-updates]
name=CentOS-$releasever
baseurl=http://10.10.10.1/repos/centos/7/updates/x86_64/
gpgcheck=0
enabled=1

[root @ dns yum.repos.d] # yum נקי הכל
תוספים טעונים: המהיר מירור, langpacks מאגרי ניקוי: centos-base centos-updates מנקים הכל

[root @ dns yum.repos.d] עדכון # yum
תוספים טעונים: המהיר מירור, langpacks בסיס בסיסי | 3.4 kB 00:00 עדכוני centos | 3.4 kB 00:00 (1/2): centos-base / primary_db | 5.3 מגהב 00:00 (2/2): centos-updates / primary_db | 9.1 מגהב 00:00 קביעת מראות מהירות ביותר אין חבילות המסומנות לעדכון

ההודעה "אין חבילות מסומנות לעדכון" מציינת שעל ידי הצהרת המאגרים המעודכנים ביותר הזמינים במהלך ההתקנה, החבילות העדכניות ביותר הותקנו.

אודות הקשר SELinux וחומת האש

אנו מתמקדים במאמר זה - ביסודו - ביישום שירותי DNS ו- DHCP, שהוא מטרתו העיקרית.

אם קורא כלשהו בחר מדיניות אבטחה במהלך תהליך ההתקנה, כפי שמוצג בתמונה 06 של מאמר ההפניה " CentOS 7 Hypervisor I – SME Networks " המשמש להתקנת שרת DNS-DHCP זה, וגילה שאינו יודע כיצד להגדיר כראוי את SELinux ואת חומת האש של CentOS, אנו מציעים לו להפעיל את הפעולות הבאות:

שנה את הקובץ /etc/sysconfig/selinux ושנה את SELINUX=enforcing ל- SELINUX=disable

[root @ dns ~] # nano / etc / sysconfig / selinux
# קובץ זה שולט במצב SELinux במערכת. # SELINUX = יכול לקחת אחד משלושת הערכים האלה: # אכיפה - מדיניות האבטחה של SELinux נאכפת. # מתירני - SELinux מדפיסה אזהרות במקום אכיפה. # מושבת - לא נטענת מדיניות SELinux.
SELINUX = מושבת
# SELINUXTYPE = יכול לקחת אחד משלושה שני ערכים: # ממוקד - תהליכים ממוקדים מוגנים, # מינימום - שינוי מדיניות ממוקדת. רק התהליכים שנבחרו הם pr $ # mls - הגנת אבטחה מרובת רמות. SELINUXTYPE = ממוקד

לאחר מכן הפעל את הפקודות הבאות

[root @ dns ~] # setenforce 0
[root @ dns ~] # עצירת firewallld שירות
הפניה מחדש אל / bin / systemctl עצירה של firewalld.service

[root @ dns ~] # systemctl השבת את firewallld
הסיר קישור /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. הסיר קישור /etc/systemd/system/basic.target.wants/firewalld.service.

אם אתם מיישמים שרת DNS הפונה לאינטרנט, אין לבצע את ההוראות לעיל. במקום זאת, הגדר את ההקשר וחומת האש של SELinux בצורה נכונה. עיין ב- "Configuring Servers with GNU/Linux" מאת ג'ואל באריוס דוניאס או בתיעוד של CentOS/Red Hat.

אנו מגדירים את שם ה- BIND

  • Eספריה /usr/share/doc/bind-9.9.4/ מכיל כמות טובה של תיעוד שאנו ממליצים להיוועץ בו לפני היציאה לחיפוש באינטרנט מבלי לדעת תחילה, בקצות אצבעותיך ובביתך, תוכל למצוא את מבוקשך

בהפצות רבות, שירות ה-DNS המותקן דרך חבילת BIND נקרא named ( Name Daemon ). ב-CentOS 7, הוא מותקן כ"disabled" כברירת מחדל, כפי שמוצג בפלט של הפקודה הבאה, המציינת שמצבו הוא " disabled ", וכי מצב זה מוגדר מראש על ידי הספק שלו - vendor preset . שימו לב ש-BIND היא תוכנה חופשית.

הפעלת השירות הנקוב

[root @ dns ~] # systemctl status בשם
● named.service - דומיין שם האינטרנט של ברקלי (DNS) טעון: טעון (/usr/lib/systemd/system/named.service; נכה; מוגדר מראש של ספק: מושבתפעיל: לא פעיל (מת)

[root @ dns ~] # systemctl הפעל בשם
נוצר קישור סימלי מ /etc/systemd/system/multi-user.target.wants/named.service אל /usr/lib/systemd/system/named.service.

[root @ dns ~] # systemctl התחל בשם

[root @ dns ~] # systemctl status בשם
● named.service - דומיין שם האינטרנט של ברקלי (DNS) טעון: טעון (/usr/lib/systemd/system/named.service; מופעל; מוגדר מראש של ספק: מושבת)
   פעיל: פעיל (פועל) מאז יום שבת 2017-01-28 13:22:38 EST; לפני 5 דקות תהליך: 1990 ExecStart = / usr / sbin / בשם - u בשם $ OPTIONS (code = exited, status = 0 / SUCCESS) תהליך: 1988 ExecStartPre = / bin / bash -c if [! "$ DISABLE_ZONE_CHECKING" == "כן"]; ואז / usr / sbin / named-checkconf -z /etc/named.conf; אחר מהדהד "בדיקת קבצי אזור מושבתת"; fi (code = exited, status = 0 / SUCCESS) PID ראשי: 1993 (שם) CGroup: /system.slice/named.service └─1993 / usr / sbin / named -u בשם 28 Jan 13:22:45 dns בשם [1993]: שגיאה (רשת בלתי נגישה) פותרת './NS/IN': 2001: 500: 2f :: f # 53 28 בינואר 13:22:47 dns בשם [1993]: שגיאה (לא ניתן להשיג ברשת) פותרת './ DNSKEY / IN ': 2001: 500: 3 :: 42 # 53 28 בינואר 13:22:47 dns בשם [1993]: שגיאה (רשת בלתי נגישה) פותרת' ./NS/IN ': 2001: 500: 3 :: 42 # 53 28 בינואר 13:22:47 dns בשם [1993]: שגיאה (לא ניתן להגיע לרשת) פותר './DNSKEY/IN': 2001: 500: 2d :: d # 53 28 בינואר 13:22:47 dns בשם [1993 ]: שגיאה (לא ניתן להגיע לרשת) בפתרון './NS/IN': 2001: 500: 2d :: d # 53 28 בינואר 13:22:47 dns בשם [1993]: שגיאה (ברשת בלתי נגישה) בפתרון './DNSKEY/ IN ': 2001: dc3 :: 35 # 53 28 בינואר 13:22:47 dns בשם [1993]: שגיאה (לא ניתן להגיע לרשת) נפתרת' ./NS/IN ': 2001: dc3 :: 35 # 53 28 בינואר 13: 22:47 dns בשם [1993]: שגיאה (רשת אינה ניתנת להשגה) פותרת './DNSKEY/IN': 2001: 7fe :: 53 # 53 28 בינואר 13:22:47 dns בשם [1993]: שגיאה (רשת בלתי נגישה) res olving './NS/IN': 2001: 7fe :: 53 # 53 28 בינואר 13:22:48 dns בשם [1993]: zone-keys-managed: לא ניתן להביא את הגדרת DNSKEY '.': זמן קצוב

[root @ dns ~] # systemctl הפעלה מחדש בשם

[root @ dns ~] # systemctl status בשם
● named.service - דומיין שם האינטרנט של ברקלי (DNS) טעון: נטען (/usr/lib/systemd/system/named.service; מופעל; הגדרת הגדרות קבועות מראש של ספק: מושבתת)
   פעיל: פעיל (פועל) מאז יום שבת 2017-01-28 13:29:41 EST; לפני שניות תהליך: 1 ExecStop = / bin / sh -c / usr / sbin / rndc stop> / dev / null 1449> & 2 || / bin / kill -TERM $ MAINPID (code = exited, status = 1 / SUCCESS) תהליך: 0 ExecStart = / usr / sbin / named -u בשם $ OPTIONS (code = exited, status = 1460 / SUCCESS) תהליך: 0 ExecStartPre = / bin / bash -c אם [! "$ DISABLE_ZONE_CHECKING" == "כן"]; ואז / usr / sbin / named-checkconf -z /etc/named.conf; אחר מהדהד "בדיקת קבצי אזור מושבתת"; fi (code = exited, status = 1457 / SUCCESS) PID ראשי: 0 (שם) CGroup: /system.slice/named.service └─1463 / usr / sbin / called -u בשם 1463 Jan 28:13:29 dns בשם [41]: אזור המפתחות המנוהלים: קובץ היומן אינו מעודכן: הסרת קובץ היומן 1463 בינואר 28:13:29 dns בשם [41]: אזור המפתחות המנוהלים: נטען סדרתי 1463 בינואר 2 28:13:29 dns שם [41]: אזור 1463.in-addr.arpa/IN: טעון סדרתי 0 ינואר 0 28:13:29 dns בשם [41]: אזור localhost.localdomain / IN: טעון סדרתי 1463 ינואר 0 28:13:29 dns שם [41]: אזור 1463.in-addr.arpa/IN: טעון סדרתי 1.0.0.127 0 בינואר 28:13:29 dns בשם [41]: אזור 1463 .1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa / IN: טעון סדרתי 0 ינואר 28 13:29:41 dns בשם [1463]: אזור localhost / IN: טעון סדרתי 0 ינואר 28 13 : 29: 41 dns בשם [1463]: כל האזורים הנטענים 28 בינואר 13:29:41 dns בשם [1463]: פועל 28 בינואר 13:29:41 dns systemd [1]: התחיל ברקלי דומיין שם אינטרנט (DNS).

לאחר הפעלה והפעלה ראשונה של השירות `systemctl status named` , הפלט של הפקודה `systemctl status named` מציג שגיאות. כאשר אנו מפעילים מחדש את השירות, `systemctl status named` יוצר כברירת מחדל את כל קבצי התצורה הדרושים לו כדי לפעול כראוי. לכן, כאשר אנו מפעילים שוב את הפקודה `systemctl status named` , לא מוצגות שגיאות נוספות.

  • קורא יקר, יקר ותובעני: אם ברצונך לגלות -לפחות- איזה שביל מוביל לקצה חור הארנב, אנא קרא ברוגע את הפלטים המפורטים של כל פקודה.  בוודאי המאמר ייראה מעט ארוך, אך לא תכחיש שהוא זוכה להסבר ובהירות.

אנו משנים את הקובץ /etc/named.conf

תגובות רבות של קוראים מבטאות - ואני לא היחיד שאומר זאת - את ההרגל שיש למתחזקי הפצות לינוקס שונות למקם קבצי תצורת מערכת בתיקיות עם שמות שונים בהתאם להפצה. הם צודקים. אבל מה אנחנו, המשתמשים הרגילים של ההפצות הללו, יכולים לעשות? להסתגל! 😉

אגב, ב-FreeBSD, שיבוט של UNIX® "The Origin", הקובץ ממוקם ב- /usr/local/etc/namedb/named.conf ; בעוד שב-Debian, בנוסף לחלוקה לארבעת הקבצים named.conf, named.conf.options, named.conf.default-zones, ו- named.conf.local , הוא נמצא בתיקייה /etc/bind/ . מי שרוצה לדעת היכן openSUSE ממקם אותו צריך לקרוא " DNS and DHCP in openSUSE 13.2 Harlequin – SME Networks ". הקוראים צודקים! 😉

וכמו שאנחנו תמיד עושים: לפני שאנחנו משנים משהו, אנחנו שומרים את קובץ התצורה המקורי תחת שם אחר.

[root @ dns ~] # cp /etc/named.conf /etc/named.conf.original

כדי להקל על הדברים, במקום לייצר את מפתח TSIG עבור עדכוני DNS דינמיים דרך DHCP, אנו מעתיקים את אותו rndc.key כמו dhcp.key.

[root @ dns ~] # cp /etc/rndc.key /etc/dhcp.key

[root @ dns ~] # nano /etc/dhcp.key
מקש "dhcp-key" {אלגוריתם hmac-md5; סודי "OI7Vs + TO83L7ghUm2xNVKg =="; };

כדי שהמשתמש בעל השם יוכל לקרוא את הקובץ שהועתק, נשנה את הקבוצה שבבעלותה:

[root @ dns ~] # root root: שם /etc/dhcp.key [root @ dns ~] # ls -l /etc/rndc.key /etc/dhcp.key -rw-r -----. שורש אחד בשם 1 בינואר 77 28:16 /etc/dhcp.key -rw-r -----. שורש אחד בשם 36 1 בינואר 77:28 /etc/rndc.key

פרטים קטנים כמו הקודמים הם מה שיכול לשגע אותנו בניסיון להבין, עכשיו ... איפה הבעיה ...? עם עוד כמה שמות תואר שאנחנו לא כותבים מכבוד לכבוד.

כעת, סוף סוף, שינינו את הקובץ /etc/named.conf . השינויים או התוספות שביצענו, בהשוואה למקור, מודגשים . שימו לב שישנם רק מעטים.

[root @ dns ~] # nano /etc/named.conf
// // named.conf // // מסופק על ידי חבילת bind של Red Hat להגדרת תצורת ה- ISC BIND בשם (8) DNS // שרת כשרת שמירה במטמון בלבד (כפתרון DNS מקומי בלבד). // // ראה / usr / share / doc / bind * / sample / לדוגמא קבצי תצורה בשם. //

// רשימת בקרת גישה שמצהירה אילו רשתות יוכלו להתייעץ
// השרת שלי
acl הסתכל {
 127.0.0.0 / 8;
 192.168.10.0 / 24;
};

אפשרויות {
 // אני מצהיר שהדמון ששמו מקשיב גם לממשק
 // eth0 שיש לו IP: 192.168.10.5
    יציאת האזנה 53 {127.0.0.1; 192.168.10.5; };
    האזן ב- v6 יציאה 53 {:: 1; }; ספריה "/ var / named"; קובץ dump "/var/named/data/cache_dump.db"; קובץ סטטיסטיקה "/var/named/data/named_stats.txt"; קובץ memstatistics "/var/named/data/named_mem_stats.txt";

 // הצהרת משלחים
 // משלחים {
 // 0.0.0.0;
 // 1.1.1.1;
 //};
    // קדימה ראשונה;

    // אני מתיר שאילתות רק ל- ACL מירד שלי
    allow-query { mired; }; // כדי לבדוק עם הפקודה dig desdelinux.fan axfr // מתחנת העבודה SysAdmin ו-localhost בלבד // אין לנו שרתי DNS עבדים. אנחנו לא צריכים את זה...עד עכשיו.
 העברת הרשאה {localhost; 192.168.10.1; };

    / * - אם אתה בונה שרת DNS מורשה, אל תאפשר רקורסיה. - אם אתה בונה שרת DNS RECURSIVE (מטמון), עליך לאפשר רקורסיה. - אם לשרת ה- DNS הרקורסיבי שלך יש כתובת IP ציבורית, עליך לאפשר בקרת גישה כדי להגביל שאילתות למשתמשים החוקיים שלך. כישלון לעשות כן יביא לשרת שלך להיות חלק מהתקפות הגברה של DNS בקנה מידה גדול. יישום BCP38 ברשת שלך יצמצם מאוד את משטח ההתקפה הזה * /
    // אנו רוצים שרת AUTHORITY עבור ה- LAN שלנו - SME
    רקורסיה לא;

    הפעלת dnssec כן; אימות dnssec כן; / * נתיב למפתח DLV ISC * / bindkeys-file "/etc/named.iscdlv.key"; ספריה מנוהלת-מפתחות "/ var / named / dynamic"; קובץ pid "/run/named/named.pid"; file-keyfile "/ run/named/session.key"; }; רישום {channel default_debug {file "data / named.run"; דינמיות חומרה; }; }; אזור "." IN {סוג רמז; קובץ "named.ca"; }; כוללים "/etc/named.rfc1912.zones"; כוללים "/etc/named.root.key";

// אנו כוללים את מפתח TSIG לעדכוני DNS דינמיים // מאת DHCP
כוללים "/etc/dhcp.key";

// הצהרת שם, סוג, מיקום והיתר עדכון
// של אזורי רשומות ה- DNS // שני האזורים הם MASTERS
אֵזוֹר"desdelinux.אוהד" {
 סוג מאסטר;
 קובץ "dynamic/db.desdelinux.אוהד";
 allow-update {key dhcp-key; };
};

אזור "10.168.192.in-addr.arpa" {
 סוג מאסטר;
 קובץ "דינמי / db.10.168.192.in-addr.arpa";
 allow-update {key dhcp-key; };
};

אנו בודקים את התחביר

[root @ dns ~] # named-checkconf 
[root @ dns ~] #

מכיוון שהפקודה הקודמת לא מחזירה דבר, התחביר תקין. עם זאת, אם נריץ את אותה פקודה, אך עם האפשרות -z , הפלט יהיה:

[root @ dns ~] # named-checkconf -z
zone localhost.localdomain/IN: נטען טורי 0 zone localhost/IN: טעון טורי 0 zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0. .ip6.arpa/IN: טעון סדרתי 0 אזור 1.0.0.127.in-addr.arpa/IN: טעון סדרתי 0 אזור 0.in-addr.arpa/IN: טעון סדרתי 0 אזור desdelinux.fan/IN: טעינה מקובץ מאסטר dynamic/db.desdelinux.fan נכשל: אזור הקובץ לא נמצא desdelinux.fan/IN: לא נטען עקב שגיאות. _בְּרִירַת מֶחדָל/desdelinuxFan/IN addr.arpa/IN: לא נטען עקב שגיאות. _default/10.168.192.in-addr.arpa/IN: הקובץ לא נמצא

כמובן שמדובר בשגיאות המתרחשות מכיוון שעדיין לא יצרנו את אזורי רישום ה- DNS לדומיין שלנו.

  • למידע נוסף על הפקודה שם-צ'ק-קונף, לרוץ איש בשם-צ'ק-קונףלפני שתחפש מידע אחר באינטרנט. אני מבטיח לך שזה יחסוך הרבה זמן.

אנו יוצרים את הקובץ Direct Zone desdelinux.אוהד

...אבל לא בלי תחילה קצת תיאוריה. 

כתבנית ליצירת קובץ נתוני האזור, נוכל להשתמש ב- /var/named/named.empty או ב-/usr/share/doc/bind-9.9.4/ sample/var/named/named.empty. שניהם זהים.

[root @ dns ~] # cat /var/named/named.empty 
$ TTL 3H @ IN SOA @ rname.invalid. (0; 1D סדרתי; רענן 1H; נסה שוב 1W; תפוג 3H); זמן מטמון מינימלי או שלילי לחיות NS @ A 127.0.0.1 AAAA :: 1

זמן החיים - הגיע הזמן לחיות TTL שיא SOA

בואו ניקח רגע להסביר את ה- TTL – Time to Live – של רשומת SOA – Start of Authority עבור אזור ראשי. הבנת משמעותם שימושית כשרוצים לשנות את הערכים שלהם.

$TTL : זמן חיים – זמן חיים עבור כל הרשומות בקובץ לאחר ההצהרה (אך לפני כל הצהרת $TTL אחרת) ושאין להן הצהרת TTL מפורשת.

סידורי : המספר הסידורי של נתוני האזור. בכל פעם שאנו משנים ידנית רשומת DNS באזור, עלינו להגדיל מספר זה ב-1, במיוחד אם יש לנו שרתי עבדים או משניים. בכל פעם ששרת DNS משני או עבד יוצר קשר עם שרת המאסטר שלו, הוא מבקש את המספר הסידורי של נתוני המאסטר. אם המספר הסידורי של העבד נמוך יותר, אז הנתונים עבור אזור זה בשרת העבד מיושנים, והעבד מבצע העברת אזור כדי לעדכן אותו.

רענן : מציין לשרת העבד את מרווח הזמן שבו עליו לבדוק אם הנתונים שלו מעודכנים ביחס לשרת הראשי.

retry : אם שרת המאסטר אינו זמין - נניח בגלל שהוא חלה - עבור העבד לאחר מרווח זמן רענון , retry מורה לעבד כמה זמן להמתין לפני שינסה ליצור קשר שוב עם המאסטר שלו.

פקיעת תוקף : אם שרת העבד אינו יכול ליצור קשר עם שרת האב שלו למשך פרק זמן מוגדר , אזי הקשר בין אזור האב לעבד נותק, ולשרת העבד אין ברירה אלא להוציא את האזור המדובר משימוש. פקיעת אזור על ידי שרת DNS עבד פירושה שהוא יפסיק להגיב לשאילתות DNS הקשורות לאזור זה מכיוון שהנתונים הזמינים ישנים מדי מכדי להיות שימושיים.

  • האמור לעיל מלמד אותנו בעקיפין ועמוס בשכל ישר נהדר - הפחות נפוץ בחושים - שאם איננו זקוקים לשרתי DNS עבדים להפעלת SME שלנו, איננו מיישמים אותו, אלא אם כן הם נחוצים בהחלט. בואו תמיד ננסה לעבור מהפשוט למתחם.

מינימום : בגרסאות קודמות ל- BIND 8.2 , רשומת ה-SOA האחרונה מציינת גם את זמן ה-default to live ואת זמן ה-negative caching to live עבור האזור. זמן זה מתייחס לכל התגובות השליליות שניתנו על ידי השרת הסמכותי עבור האזור.

קובץ אזור /var/named/dynamic/db.desdelinux.אוהד

[root@dns ~]# nano /var/named/dynamic/db.desdelinux.אוהד
$TTL 3H @ IN SOA dns.desdelinux.אוהד. root.dns.desdelinux.אוהד. (1; סדרתי 1D; רענון 1H; נסה שוב 1W; פג 3H); מינימום או ; זמן מטמון שלילי לחיות; @ IN NS dns.desdelinux.אוהד. @ IN MX 10 דוא"ל.desdelinux.מְנִיפָה. @ IN TXT "FromLinux, הבלוג שלך המוקדש לתוכנה חופשית"; sysadmin IN A 192.168.10.1 ad-dc IN A 192.168.10.3 שרת קבצים IN A 192.168.10.4 dns IN A 192.168.10.5 proxyweb IN A 192.168.10.6 בלוג IN A 192.168.10.7 .192.168.10.8 דואר IN A 192.168.10.9

אנו בודקים את /var/named/dynamic/db.desdelinux.אוהד

[root@dns ~]# named-checkzone desdelinux.fan /var/named/dynamic/db.desdelinux.אוהד
אזור desdelinux.fan/IN: נטען סדרתי 1 בסדר

אנו יוצרים את קובץ ה- Reverse Zone 10.168.192.in-addr.arpa

  • רשומת ה- SOA של אזור זה זהה לזו של ה- Direct Zone מבלי להתחשב ברשומת ה- MX..
[root @ dns ~] # nano /var/named/dynamic/db.10.168.192.in-addr.arpa
$TTL 3H @ IN SOA dns.desdelinux.אוהד. root.dns.desdelinux.אוהד. (1; סדרתי 1D; רענון 1H; נסה שוב 1W; פג 3H); מינימום או ; זמן מטמון שלילי לחיות; @ IN NS dns.desdelinux.אוהד. ; 1 IN PTR sysadmin.desdelinux.אוהד. 3 IN PTR ad-dc.desdelinux.אוהד. שרת קבצים 4 IN PTR.desdelinux.אוהד. 5 IN PTR dns.desdelinux.אוהד. 6 IN PTR proxyweb.desdelinux.אוהד. בלוג 7 IN PTR.desdelinux.אוהד. 8 IN PTR ftpserver.desdelinux.אוהד. 9 בדואר PTR.desdelinux.אוהד.

[root @ dns ~] # named-checkzone 10.168.192.in-addr.arpa /var/named/dynamic/db.10.168.192.in-addr.arpa 
אזור 10.168.192.in-addr.arpa/IN: טורי סדרתי 1 בסדר

לפני הפעלה מחדש של השם אנו בודקים את תצורתו

  • עד שאנו בטוחים שקבצי התצורה שצוינו, בשם.קונף, וקבצי האזור שלו אינם מוגדרים כראוי, אנו ממליצים לא להפעיל מחדש את הדמון. אם נעשה זאת ונשנה מאוחר יותר קובץ אזור, עלינו להגדיל את המספר הסידורי של האזור שהשתנה ב -1.
  • בואו נסתכל על ה- "." בסוף שמות הדומיין והמארח.
[root @ dns ~] # named-checkconf 
[root @ dns ~] # named-checkconf -z
zone localhost.localdomain/IN: נטען טורי 0 zone localhost/IN: טעון טורי 0 zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0. .ip6.arpa/IN: טעון סדרתי 0 אזור 1.0.0.127.in-addr.arpa/IN: טעון סדרתי 0 אזור 0.in-addr.arpa/IN: טעון סדרתי 0 אזור desdelinux.fan/IN: טעון סדרתי 1 אזור 10.168.192.in-addr.arpa/IN: סידורי 1 נטען

כל התצורה בשם הנוכחי

לשם הבהירות, ולמרות שהמאמר יהיה ארוך, אנו מספקים את הפלט המלא של הפקודה בשם-checkconf -zp :

[root @ dns ~] # named-checkconf -zp
zone localhost.localdomain/IN: נטען טורי 0 zone localhost/IN: טעון טורי 0 zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0. .ip6.arpa/IN: טעון סדרתי 0 אזור 1.0.0.127.in-addr.arpa/IN: טעון סדרתי 0 אזור 0.in-addr.arpa/IN: טעון סדרתי 0 אזור desdelinux.fan/IN: טעון סידורי 1 אזור 10.168.192.in-addr.arpa/IN: אפשרויות סדרתי 1 טעון { bindkeys-file "/etc/named.iscdlv.key"; session-keyfile "/run/named/session.key"; ספרייה "/var/named"; קובץ dump "/var/named/data/cache_dump.db"; יציאת האזנה 53 { 127.0.0.1/32; 192.168.10.5/32; }; יציאת האזנה ב-v6 53 { ::1/128; }; managed-keys-directory "/var/named/dynamic"; memstatistics-file "/var/named/data/named_mem_stats.txt"; pid-file "/run/named/named.pid"; קובץ סטטיסטיקה "/var/named/data/named_stats.txt"; dnssec-enable כן; אימות dnssec כן; רקורסיה לא; allow-query { "צפו"; }; אפשר-העברה { 192.168.10.1/32; }; }; acl "צפו" { 127.0.0.0/8; 192.168.10.0/24; }; רישום { ערוץ "default_debug" { קובץ "data/named.run"; חומרה דינמית; }; }; מפתח "dhcp-key" { אלגוריתם "hmac-md5"; סוד "OI7Vs+TO83L7ghUm2xNVKg=="; }; אזור "." IN { סוג רמז; קובץ "named.ca"; }; אזור "localhost.localdomain" IN { סוג מאסטר; הקובץ "named.localhost"; allow-update { "ללא"; }; }; אזור "localhost" IN { סוג מאסטר; הקובץ "named.localhost"; allow-update { "ללא"; }; }; אזור "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN { type master; קובץ "named.loopback"; allow-update { "ללא"; }; }; אזור "1.0.0.127.in-addr.arpa" IN { סוג מאסטר; קובץ "named.loopback"; allow-update { "ללא"; }; }; אזור "0.in-addr.arpa" IN { סוג מאסטר; קובץ "named.empty"; allow-update { "ללא"; }; }; אֵזוֹר"desdelinux.fan" { type master; file "dynamic/db.desdelinux.fan"; allow-update { key "dhcp-key"; }; }; אזור "10.168.192.in-addr.arpa" { סוג מאסטר; קובץ "dynamic/db.10.168.192.in-addr.arpa "; אפשר עדכון {מפתח" dhcp-key ";};}; מנוהל-קיז {". "מפתח ראשוני 257 3 8" aweaaagaiklvzrpc6ia7gezahor+9w29euxhjvbloyqbsew0o8gccjf fvqutfuxthpytsywapyew6o58gcjf fvqutf0gtpytsywypypyt0t8-0gipsywyt2 fl37mtjrkxox bfdaueavpquyehg9nzwajq496vnmvdxp/vhl5m/qzxkjf2/efucp6gad f6dsv68dobqzgul0sgicgoyl1oyqxfz9rels qagou+ipadtttjcgtabtabtabtabtabtabtabtabtabtabtabtabtabtabtabtabtabtabtabtabtabtabtabtabtabtabtabtabtaocl7aiqdx6rels. N3knnnulq qxa +Uk5ihz2="; };
  • בעקבות נוהל שינוי ה- בשם.קונף בהתאם לצרכים שלנו ולבדוק, וליצור כל קובץ אזור ולבדוק אותו, אנו בספק שנצטרך להתמודד עם בעיות תצורה גדולות. בסופו של דבר אנו מבינים שזה משחק של ילד, עם הרבה מושגים ותחביר מטריד. 

הבדיקות החזירו תוצאות משביעות רצון, לכן נוכל להפעיל מחדש את ה-BIND – בשם.

אנו מפעילים מחדש את השם ובודקים את מצבו

[root @ dns ~] # הפעלה מחדש של systemctl בשם.שירות
[root @ dns ~] # systemctl status בשם.שירות

אם אתם מקבלים שגיאות בפלט של הפקודה האחרונה, עליכם להפעיל מחדש את named.service ולבדוק שוב את מצבו . אם השגיאות נעלמו, השירות הופעל בהצלחה. אחרת, עליכם לבדוק בקפידה את כל הקבצים ששונו ונוצרו ולחזור על ההליך.

הפלט הנכון של הסטטוס צריך להיות:

[root @ dns ~] # systemctl status בשם.שירות
● named.service - דומיין שם האינטרנט של ברקלי (DNS) טעון: נטען (/usr/lib/systemd/system/named.service; מופעל; הגדרת הגדרות קבועות מראש של ספק: מושבתת) פעיל: פעיל (רץ) מאז יום ראשון 2017-01-29 10:05:32 EST; לפני 2 דקות 57 שניות תהליך: 1777 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (קוד=יצא, סטטוס=0/SUCCESS) תהליך: 1788 ExecStart=/usr/sbin/named -u בשם $OPTIONS (קוד=יצא, סטטוס=0/SUCCESS) תהליך: 1786 ExecStartPre =/bin/bash -c אם [ ! "$DISABLE_ZONE_CHECKING" == "כן" ]; לאחר מכן /usr/sbin/named-checkconf -z /etc/named.conf; else echo "בדיקת קבצי אזור מושבתת"; fi (קוד=יוצא, מצב=0/הצלחה) PID ראשי: 1791 (שם) CGroup: /system.slice/named.service └─1791 /usr/sbin/named -u בשם 29 ינואר 10:05:32 dns named [1791]: אזור 1.0.0.127.in-addr.arpa/IN: טעון סדרתי 0 29 ינואר 10:05:32 dns בשם[1791]: אזור 10.168.192.in-addr.arpa/IN: נטען סדרתי 1 ינואר 29 10:05:32 dns named[1791]: אזור 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN : נטען סדרתי 0 בינואר 29 10:05:32 dns named[1791]: אזור desdelinux.fan/IN: נטען סדרתי ינואר 1 29 10:05:32 dns named[1791]: zone localhost.localdomain/IN: loaded serial Jan 0 29 10:05:32 dns named[1791]: zone localhost/IN: loaded סדרתי 0 בינואר 29 10:05:32 dns named[1791]: כל האזורים טעונים
29 בינואר 10:05:32 dns בשם [1791]: ריצה
29 בינואר 10:05:32 dns systemd [1]: התחיל דומיין שם האינטרנט של ברקלי (DNS). 29 בינואר 10:05:32 dns בשם [1791]: אזור 10.168.192.in-addr.arpa/IN: הודעות שליחה (סדרתי 1)

בדיקות

ניתן לבצע את הבדיקות על אותו שרת או על מכונה המחוברת לרשת LAN. אנחנו מעדיפים לעשות אותם מהקבוצה מנהל מערכת.desdelinux.אוהד אליהם נתנו אישור מפורש לבצע העברות אזוריות. הקובץ / Etc / resolv.conf של אותו צוות הוא:

buzz @ sysadmin: ~ $ cat /etc/resolv.conf 
# נוצר על ידי חיפוש NetworkManager desdelinuxשרת שמות .fan 192.168.10.5

buzz@sysadmin:~$ לחפור desdelinux.מעריץ axfr
; <<>> DiG 9.9.5-9+deb8u1-Debian <<>> desdelinux.מעריץ axfr ;; אפשרויות גלובליות: +cmd
desdelinux.אוהד. 10800 IN SOA dns.desdelinux.אוהד. root.dns.desdelinux.אוהד. 1 86400 3600 604800 10800
desdelinux.אוהד. 10800 IN NS dns.desdelinux.אוהד.
desdelinux.אוהד. דוא"ל 10800 IN MX 10.desdelinux.אוהד.
desdelinux.מְנִיפָה. 10800 IN TXT "FromLinux, הבלוג שלך המוקדש לתוכנה חופשית" ad-dc.desdelinux.אוהד. 10800 בבלוג 192.168.10.3.desdelinux.אוהד. 10800 IN A 192.168.10.7 דנס.desdelinux.אוהד. שרת קבצים 10800 IN TO 192.168.10.5.desdelinux.אוהד. 10800 IN A 192.168.10.4 ftpserver.desdelinux.אוהד. 10800 בדואר 192.168.10.8.desdelinux.אוהד. 10800 IN A 192.168.10.9 proxyweb.desdelinux.אוהד. 10800 IN A 192.168.10.6 מנהל מערכת.desdelinux.אוהד. 10800 IN TO 192.168.10.1
desdelinux.אוהד. 10800 IN SOA dns.desdelinux.אוהד. root.dns.desdelinux.אוהד. 1 86400 3600 604800 10800 ;; זמן שאילתה: 0 msec ;; שרת: 192.168.10.5#53(192.168.10.5) ;; מתי: ראשון 29 בינואר 11:44:18 EST 2017 ;; גודל XFR: 13 רשומות (הודעות 1, בתים 385)

buzz @ sysadmin: ~ $ dig 10.168.192.in-addr.arpa axfr
; <<>> DiG 9.9.5-9+deb8u1-Debian <<>> 10.168.192.in-addr.arpa axfr ;; אפשרויות גלובליות: +cmd 10.168.192.in-addr.arpa. 10800 IN SOA dns.desdelinux.fan.10.168.192.in-addr.arpa. root.dns.desdelinux.fan.10.168.192.in-addr.arpa. 1 86400 3600 604800 10800 10.168.192.in-addr.arpa. 10800 IN NS dns.desdelinux.אוהד. 1.10.168.192.in-addr.arpa. 10800 IN PTR sysadmin.desdelinux.אוהד. 3.10.168.192.in-addr.arpa. 10800 IN PTR ad-dc.desdelinux.אוהד. 4.10.168.192.in-addr.arpa. שרת קבצים 10800 IN PTR.desdelinux.אוהד. 5.10.168.192.in-addr.arpa. 10800 IN PTR dns.desdelinux.אוהד. 6.10.168.192.in-addr.arpa. 10800 IN PTR proxyweb.desdelinux.אוהד. 7.10.168.192.in-addr.arpa. בלוג 10800 IN PTR.desdelinux.אוהד. 8.10.168.192.in-addr.arpa. שרת ftp 10800 IN PTR.desdelinux.אוהד. 9.10.168.192.in-addr.arpa. 10800 בדואר PTR.desdelinux.אוהד. 10.168.192.in-addr.arpa. 10800 IN SOA dns.desdelinux.fan.10.168.192.in-addr.arpa. root.dns.desdelinux.fan.10.168.192.in-addr.arpa. 1 86400 3600 604800 10800 ;; זמן שאילתה: 0 msec ;; שרת: 192.168.10.5#53(192.168.10.5) ;; מתי: ראשון 29 בינואר 11:44:57 EST 2017 ;; גודל XFR: 11 רשומות (הודעות 1, בתים 352)

buzz@sysadmin:~$ לחפור ב-SOA desdelinux.אוהד
buzz@sysadmin:~$ לחפור ב-MX desdelinux.fan buzz@sysadmin:~$ לחפור ב-TXT desdelinux.אוהד
buzz @ sysadmin: ~ $ dns מארח
dns.desdelinuxל-.fan יש כתובת 192.168.10.5
buzz @ sysadmin: ~ $ host sysadmin
מנהל מערכת.desdelinuxל-.fan יש כתובת 192.168.10.1 ... וכל בדיקה אחרת שאנחנו צריכים
  • עד כה, יש לנו את הבסיס לשרת DNS ברשת ה-SME שלנו. אנו מקווים שנהניתם מכל ההליך, שהיה די פשוט, נכון? 

אנו מתקינים ומגדירים את התצורה של DHCP

[root @ dns ~] # yum להתקין dhcp
תוספים טעונים: המהיר מירור, langpacks בסיס בסיסי | 3.4 kB 00:00:00 centos-updates | 3.4 kB 00:00:00 טעינת מהירויות מראה מהקובץ המארח במטמון פתרון תלות -> הפעלת בדיקת עסקאות ---> חבילה dhcp.x86_64 12: 4.2.5-42.el7.centos חייבים להתקין -> פתרון תלות הסתיימו תלות נפתרת ================================================= ===================================================== ===================================== גודל מאגר גרסאות ארכיטקטורת חבילה ============ ===================================================== ===================================================== ======================= התקנה: dhcp x86_64 12: 4.2.5-42.el7.centos-base 511k סיכום עסקאות ==== ===================================================== ===================================================== ============================= התקן 1 חבילה גודל הורדה כולל: 511k גודל מותקן: 1.4 M האם זה בסדר [y / d / N]: y הורדת חבילות: dhcp-4.2.5-42.el7.centos.x86_64.rpm | 511 kB 00:00:00 הפעלת בדיקת עסקה הפעלת בדיקת עסקאות בדיקת עסקאות הצליחה הפעלת עסקה התקנה: 12: dhcp-4.2.5-42.el7.centos.x86_64 1/1 בדיקה: 12: dhcp-4.2.5-42. el7.centos.x86_64 1/1 מותקן: dhcp.x86_64 12: 4.2.5-42.el7.centos בוצע!

[root @ dns ~] # nano /etc/dhcp/dhcpd.conf
# # קובץ תצורת שרת DHCP. # ראה /usr/share/doc/dhcp*/dhcpd.conf.example # ראה דף אדם של dhcpd.conf(5) # ddns-update-style interim; ddns-עדכונים על; ddns-domainname "desdelinux.fan."; ddns-rev-domainname "in-addr.arpa."; התעלם מעדכוני לקוח; סמכותי; אפשרות העברת ip כבויה; אפשרות שם תחום "desdelinux.fan"; # option ntp-servers 0.pool.ntp.org, 1.pool.ntp.org, 2.pool.ntp.org, 3.pool.ntp.org; כוללים "/etc/dhcp.key" אזור desdelinux.אוהד. { ראשי 127.0.0.1; מפתח dhcp-key; } אזור 10.168.192.in-addr.arpa. { ראשי 127.0.0.1; מפתח dhcp-key; } רשת משותפת redlocal { subnet 192.168.10.0 netmask 255.255.255.0 { אופציה נתבים 192.168.10.1; אפשרות רשת משנה 255.255.255.0; אפשרות שידור-כתובת 192.168.10.255; אפשרות שרתי דומיין 192.168.10.5; אפשרות netbios-name-servers 192.168.10.5; טווח 192.168.10.30 192.168.10.250; } } # END dhcpd.conf

[root @ dns ~] # dhcpd -t
קונסורציום מערכות אינטרנט אינטרנט שרת DHCP 4.2.5 זכויות יוצרים 2004-2013 קונסורציום מערכות אינטרנט. כל הזכויות שמורות. למידע, בקר בכתובת https://www.isc.org/software/dhcp/ לא מחפש ב- LDAP מכיוון ש- ldap-server, ldap-port ו- ldap-base-dn לא צוינו בקובץ התצורה.

[root @ dns ~] # systemctl מאפשר dhcpd
נוצר קישור סימלי מ /etc/systemd/system/multi-user.target.wants/dhcpd.service אל /usr/lib/systemd/system/dhcpd.service.

[root @ dns ~] # systemctl התחל dhcpd

[root @ dns ~] # systemctl status dhcpd
● dhcpd.service - שרת ה- DHCPv4 שרת טעון: טעון (/usr/lib/systemd/system/dhcpd.service; מופעל; הגדרת הגדרות קבוע מראש: מושבתת) פעיל: פעיל (פועל) מאז dom 2017-01-29 12:04:59 IT T; לפני 23 שניות Docs: man: dhcpd (8) man: dhcpd.conf (5) PID ראשי: 2381 (dhcpd) סטטוס: "משלוח מנות ..." CGroup: /system.slice/dhcpd.service 2381─29 / usr / sbin / dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd - no-pid 12 בינואר 04:59:2381 dns dhcpd [4.2.5]: שרת DHCP מערכות מערכות אינטרנט 29 12 בינואר 04 : 59: 2381 dns dhcpd [2004]: זכויות יוצרים 2013-29 קונסורציום מערכות אינטרנט. 12 בינואר 04:59:2381 dns dhcpd [29]: כל הזכויות שמורות. 12 בינואר 04:59:2381 dns dhcpd [29]: למידע, אנא בקר בכתובת https://www.isc.org/software/dhcp/ 12 בינואר 04:59:2381 dns dhcpd [29]: לא מחפש ב- LDAP מאז ldap -שרת, ldap-port ו- ldap-base-dn לא צוינו בקובץ התצורה 12 בינואר 04:59:2381 dns dhcpd [0]: נכתב 29 קובץ שכירות לשכירות. 12 בינואר 04:59:2381 dns dhcpd [0]: האזנה ב- LPF / eth52 / 54: 00: 12: 17: 04: 29 / redlocal 12 בינואר 04:59:2381 dns dhcpd [0]: שליחה ב- LPF / eth52 / 54: 00: 12: 17: 04: 29 / מיקוד מחדש 12 בינואר 04:59:2381 dns dhcpd [29]: שליחה ב- Socket / fallback / fallback-net 12 בינואר 04:59:1 dns systemd [4]: התחיל שרת השרת DHCPvXNUMX.

מה נותר לעשות?

פָּשׁוּט. הפעל Windows 7 או לקוח אחר באמצעות תוכנה חופשית והתחל לבדוק ולבדוק. עשינו זאת עם שני לקוחות: שבע.desdelinux.אוהד y suse-desktop.desdelinux.אוהד. השיקים היו כדלקמן:

buzz @ sysadmin: ~ $ מארח שבעה
שבע.desdelinuxל-.fan יש כתובת 192.168.10.30

buzz@sysadmin:~$ מארח שבע.desdelinux.אוהד
שבע.desdelinuxל-.fan יש כתובת 192.168.10.30

buzz@sysadmin:~$ לחפור IN TXT שבע.desdelinux.אוהד
.... ;; קטע שאלה: שבע.desdelinux.אוהד. IN TXT ;; סעיף תשובות: שבע.desdelinux.אוהד. 3600 IN TXT"31b7228ddd3a3b73be2fda9e09e601f3e9"....

אנו משנים את שם הצוות "שבע" ל"לאגר "ומבצעים אתחול מחדש. לאחר הפעלה מחדש של ה- LAGER החדש, אנו בודקים:

buzz @ sysadmin: ~ $ מארח שבעה
מארח שבעה לא נמצא: 5 (סירוב)

buzz@sysadmin:~$ מארח שבע.desdelinux.אוהד
מארח שבעה.desdelinux.fan לא נמצא: 3(NXDOMAIN)

זמזום@sysadmin: ~ לאגר מארח
לאגר.desdelinuxל-.fan יש כתובת 192.168.10.30

זמזום@sysadmin:~$לאגר מארח.desdelinux.אוהד
לאגר.desdelinuxל-.fan יש כתובת 192.168.10.30

buzz@sysadmin:~$ לחפור IN TXT lager.desdelinux.אוהד
.... ;; קטע שאלה: לאגר.desdelinux.אוהד. IN TXT ;; סעיף תשובה: לאגר.desdelinux.אוהד. 3600 IN TXT"31b7228ddd3a3b73be2fda9e09e601f3e9"....

לגבי לקוח suse-desktop:

buzz @ sysadmin: ~ $ מארח suse-desktop
שולחן העבודה המארח לא נמצא: 5 (סירוב)

buzz @ sysadmin: ~ $ מארח suse-desktop
suse-desktop.desdelinuxל-.fan יש כתובת 192.168.10.33

buzz@sysadmin:~$ מארח suse-desktop.desdelinux.אוהד
suse-desktop.desdelinuxל-.fan יש כתובת 192.168.10.33

buzz @ sysadmin: ~ $ מארח 192.168.10.33
33.10.168.192.in-addr.arpa מצביע שם דומיין suse-desktop.desdelinux.אוהד.

buzz @ sysadmin: ~ $ מארח 192.168.10.30
30.10.168.192.in-addr.arpa מצביע שם דומיין LAGER.desdelinux.אוהד.
buzz @ sysadmin: ~ $ dig -x 192.168.10.33
.... ;; מדור שאלה: ;33.10.168.192.in-addr.arpa. IN PTR ;; סעיף תשובה: 33.10.168.192.in-addr.arpa. 3600 IN PTR suse-desktop.desdelinux.אוהד. ;; מדור הרשות: 10.168.192.in-addr.arpa. 10800 IN NS dns.desdelinux.אוהד. ;; סעיף נוסף: dns.desdelinux.אוהד. 10800 IN TO 192.168.10.5 ....

buzz@sysadmin:~$ לחפור IN TXT suse-desktop.desdelinux.אוהד....
;suse-desktop.desdelinux.אוהד. IN TXT ;; סעיף תשובה: suse-desktop.desdelinux.אוהד. 3600 IN TXT "31b78d287769160c93e6dca472e9b46d73"

; סעיף סמכות:
desdelinux.אוהד. 10800 IN NS dns.desdelinux.אוהד. ;; סעיף נוסף: dns.desdelinux.אוהד. 10800 IN TO 192.168.10.5
....

בואו נפעיל גם את הפקודות הבאות

[root@dns ~]# חפירה desdelinux.מעריץ axfr
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.4 <<>> desdelinux.מעריץ axfr ;; אפשרויות גלובליות: +cmd
desdelinux.אוהד. 10800 IN SOA dns.desdelinux.אוהד. root.dns.desdelinux.אוהד. 6 86400 3600 604800 10800
desdelinux.אוהד. 10800 IN NS dns.desdelinux.אוהד.
desdelinux.אוהד. דוא"ל 10800 IN MX 10.desdelinux.אוהד.
desdelinux.מְנִיפָה. 10800 IN TXT "FromLinux, הבלוג שלך המוקדש לתוכנה חופשית" ad-dc.desdelinux.אוהד. 10800 בבלוג 192.168.10.3.desdelinux.אוהד. 10800 IN A 192.168.10.7 דנס.desdelinux.אוהד. שרת קבצים 10800 IN TO 192.168.10.5.desdelinux.אוהד. 10800 IN A 192.168.10.4 ftpserver.desdelinux.אוהד. 10800 IN A 192.168.10.8 LAGER.desdelinux.אוהד. 3600 IN TXT"31b7228ddd3a3b73be2fda9e09e601f3e9"לאגר.desdelinux.אוהד.   3600 במייל 192.168.10.30.desdelinux.אוהד. 10800 IN A 192.168.10.9 proxyweb.desdelinux.אוהד. 10800 IN A 192.168.10.6 suse-desktop.desdelinux.אוהד. 3600 IN TXT"31b78d287769160c93e6dca472e9b46d73" suse-desktop.desdelinux.אוהד. 3600 IN A 192.168.10.33 מנהל מערכת.desdelinux.אוהד. 10800 IN TO 192.168.10.1
desdelinux.אוהד. 10800 IN SOA dns.desdelinux.אוהד. root.dns.desdelinux.אוהד. 6 86400 3600 604800 10800

בפלט הקודם, הדגשנו באותיות מודגשות את ערכי ה- TTL (בשניות) עבור התקנים עם כתובות IP שהוקצו על ידי שירות DHCP, אשר להם הצהרה מפורשת של TTL של 3600 המסופקת על ידי DHCP. כתובות IP סטטיות נשלטות על ידי ה-TTL של 3H (3 שעות = 10800 שניות) המוצהר ברשומת ה-SOA של כל קובץ אזור.

הם יכולים גם לבדוק את האזור ההפוך.

[root @ dns ~] # dig 10.168.192.in-addr.arpa axfr

פקודות מעניינות במיוחד הן:

[root@dns ~]# named-journalprint /var/named/dynamic/db.desdelinux.fan.jnl
[root @ dns ~] # named-journalprint /var/named/dynamic/db.10.168.192.in-addr.arpa.jnl
[root @ dns ~] # journalctl -f

שינוי ידני של קבצי אזורים

לאחר ש-DHCP משתלט על עדכון דינמי של קבצי האזור של השרת בעל השם , אם אי פעם נצטרך לשנות קובץ אזור באופן ידני, עלינו לבצע את ההליך הבא, אך לא לפני שנלמד מעט יותר על אופן פעולתו של כלי השירות rndc לשליטה בשרת השמות.

[root @ dns ~] # man rndc
....
       להקפיא [אזור [מחלקה [תצוגה]]]
           השהיית עדכונים לאזור דינמי. אם לא מוגדר אזור, כל האזורים מושעים. זה מאפשר לערוך ידניות באזור המעודכן בדרך כלל על ידי עדכון דינמי. זה גם גורם לסינכרון שינויים בקובץ היומן לקובץ הראשי. כל ניסיונות העדכון הדינמיים יידחו בזמן שהאזור קפוא.

       להפשיר [אזור [מחלקה [תצוגה]]]
           אפשר עדכונים לאזור דינמי קפוא. אם לא צוין אזור, כל האזורים הקפואים מופעלים. זה גורם לשרת לטעון מחדש את האזור מהדיסק, ולהפעיל מחדש עדכונים דינמיים לאחר השלמת הטעינה. לאחר הפשרת אזור, עדכונים דינמיים כבר לא יסורבו. אם האזור השתנה ואופציית ixfr-from-difference נמצאת בשימוש, קובץ היומן יעודכן כך שישקף שינויים באזור. אחרת, אם האזור השתנה, כל קובץ יומן קיים יוסר. ....

מה, חשבת שאני הולך לתמלל את כל המדריך?... חתיכה והם נוסעים במכונית. את השאר אני משאיר לך. 

בעיקרון:

  • הקפאת rndc [אזור [מחלקה [תצוגה]]], משעה את העדכון הדינמי של אזור. אם לא צוין אחד מהם, הכל יקפא. הפקודה מאפשרת עריכה ידנית של האזור הקפוא או של כל האזורים. כל עדכון דינמי יידחה כשהוא מוקפא.
  • להפשיר rndc [אזור [מחלקה [תצוגה]]], מאפשר עדכונים דינמיים באזור קפוא בעבר. שרת ה- DNS טוען מחדש את קובץ האזור מהדיסק, ועדכונים דינמיים מופעלים מחדש לאחר השלמת הטעינה מחדש.

אילו אמצעי זהירות יש לנקוט בעת עריכה ידנית של קובץ אזור? כמו אם היינו יוצרים אותו, תוך זכור להגדיל את המספר הסידורי ב-1 לפני שמירת הקובץ עם השינויים הסופיים.

לדוגמה:

[root @ dns ~] # הקפאת rndc desdelinux.אוהד

[root@dns ~]# nano /var/named/dynamic/db.desdelinux.אוהד
אני משנה את קובץ האזור מכל סיבה שהיא, נחוצה או לא. אני שומר את השינויים

[root @ dns ~] # rndc הפשרה desdelinux.אוהד
התחל לטעון מחדש ולהפשיר אזור. בדוק ביומנים כדי לראות את התוצאה.

[root @ dns ~] # journalctl -f
29 ינואר 14:06:46 dns בשם[2257]: אזור ההפשרה 'desdelinux.fan/IN': הצלחה
ינואר 29 14:06:46 dns בשם[2257]: אזור desdelinux.fan/IN: אזור סידורי (6) ללא שינוי. אזור עלול להיכשל בהעברת עבדים.
ינואר 29 14:06:46 dns בשם[2257]: אזור desdelinux.fan/IN: סידורי 6 נטען

השגיאה בפלט הקודם, המוצגת באדום בקונסולה, נובעת מהעובדה ש"שכחתי "להגדיל את המספר הסידורי ב- 1. אם הייתי מבצע את ההליך נכון, הפלט היה:

[root @ dns ~] # journalctl -f
-- היומנים מתחילים ביום ראשון 2017-01-29 08:31:32 EST. -- ינואר 29 14:06:46 dns בשם[2257]: אזור desdelinux.fan/IN: נטען סדרתי 6 בינואר 29 14:10:01 dns systemd[1]: התחילה הפעלה 43 של שורש המשתמש. 29 ינואר 14:10:01 dns systemd[1]: התחלת הפעלה 43 של שורש המשתמש. Jan 29 14:10:01 dns CROND[2693]: (root) CMD (/usr/lib64/sa/sa1 1 1) Jan 29 14:10:45 dns named[2257]: קיבל פקודת ערוץ בקרה 'הקפאה' desdelinux.fan' Jan 29 14:10:45 dns named[2257]: freezing zone 'desdelinux.fan/IN': success Jan 29 14:10:58 dns named[2257]: קיבל את פקודת ערוץ הבקרה 'thaw desdelinux.fan' 29 ינואר 14:10:58 dns named[2257]: אזור ההפשרה 'desdelinux.fan/IN': success Jan 29 14:10:58 dns named[2257]: zone desdelinux.fan/IN: קובץ היומן אינו מעודכן: מסיר קובץ יומן 29 ינואר 14:10:58 dns named[2257]: zone desdelinux.fan/IN: סידורי 7 נטען
  • קורא חברים, אני חוזר ועליך לקרוא בעיון את תפוקות הפקודות. עבור משהו שהמפתחים שלו השקיעו כל כך הרבה עבודה בתכנות כל פקודה, לא משנה כמה זה פשוט.

תקציר

עד כה התייחסנו ליישום צמד ה- DNS - DHCP, שירותים חשובים ומכריעים לביצועים הטובים של רשת ה- SME שלנו, בהתייחסו למתן כתובות דינמיות באמצעות DHCP ולרזולוציה של שמות מחשבים ותחומים באמצעות DNS.

אנו מאוד מקווים שנהניתם מההליך כולו כפי שעשינו. למרות שזה אולי נראה קשה יותר בשימוש בקונסולה, קל וחינוכי יותר ליישם שירות ב- UNIX® / Linux בעזרתו.

סלח לי על כל פרשנות שגויה של מושגים שחשבו, נוצרו, נכתבו, שתוקנו, נכתבו מחדש, ופורסמו בשפתו של שייקספיר, לא סרוונטס. 

המסירה הבאה

אני חושב שקצת יותר מאותו הדבר - עם תוספות תיאורטיות ברשומות DNS - אבל בדביאן. אנחנו לא יכולים לשכוח את ההפצה הזו, נכון?


הוסף כמקור מועדף בגוגל