הנחיות לעדכון רשומת DNS עם Cloudflare Dynamic DNS
נניח שפרסמת אתר מרשת הבית שלך, ויצרת רשומת DNS שמצביעה על כתובת ה-IP הציבורית של הראוטר שלך. איך ניתן לשמור על עדכון של רשומת ה-DNS כאשר ה-IP הציבורית שלך משתנה? אולי כדאי לשקול להגדיר Dynamic DNS דרך Cloudflare.
ספקי שירות האינטרנט (ISP) בדרך כלל מקצינים כתובות IP דינמיות למנוייהם, שיכולות להשתנות בכל עת. כתוצאה מכך, רשומת ה-DNS שלך נשמרת על כתובת IP שאינה שייכת לך עוד, והאתר שלך יכול להיות לא נגיש.
המשך הקריאה משום שמדובר במדריך שיסייע לך לשמור על רשומת ה-DNS שלך מעודכנת באמצעות Interact with Cloudflare’s API (ממשק תכנות) ו-PowerShell. בואו נתחיל!
**דרישות מוקדמות
**
אם אתה מתכוון לבצע את המדריך בפועל, הנה הדרישות שתצטרך.
- A computer with PowerShell 7.1 where you’ll run the Cloudflare dynamic DNS update script. This tutorial will use a Windows 10 computer.
**קשור: **
**איך לבצע שדרוג ל-PowerShell 7
- A script editor of your choice. This tutorial will use Visual Studio Code v1.59.1 (recommended).
**קשור: **
**מה כדאי לדעת על Visual Studio Code: מדריך
- A domain that you already own. The example domain in this tutorial is lazyexchangeadmin.cyou.
**הערה: **
**דומיינים עם סיומות כמו .ml, .ga, .tk, .cf ו-.gq אינם יעילים לאוטומציה של Cloudflare Dynamic DNS ולא יעבדו עם המדריך הזה.**
- A Cloudflare account. A free account is enough to use in this tutorial.
- עליך כבר להוסיף את הדומיין שלך ל-Cloudflare.
- עליך כבר להוסיף רשומת DNS תחת הדומיין שלך ב-Cloudflare. הרשומת DNS A במדריך זה תהיה demo.lazyexchangeadmin.cyou עם כתובת IP ראשונית של 0.0.0.0.

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

` ישנם רבים מתוך קליינטי DNS דינמיים שזמינים להתקנה, בעיקר עבור מערכות Linux, כמו שרת Ubuntu או Raspberry PI. קיימות גם שירותי DNS דינמיים חיצוניים שיכולים להיות בתשלום או חינמיים. אך במדריך זה, תפקידך יהיה להגיב סקריפט עדכון DNS שרץ ב-PowerShell 7.1.`
השגת אסימון ה- API של Cloudflare
כאשר אתה מעדכן את רשומת ה-DNS הדינמית של Cloudflare באופן תוכנתי, הסקריפט שלך חייב לאמת את עצמו ל-API של Cloudflare. רק אז תאפשר ל-Cloudflare לאפשר לך לבצע שינויים ברשומות ה-DNS שלך בחשבונך.`
Cloudflare מאפשרת לך ליצור אסימונים של API עם הרשאות מספיקות למטרתו. בתמורה, תוכל להשתמש בשם המשתמש של חשבון ה-Cloudflare שלך ובאסימון ה-API שנוצר כתוצאה מכך כדי לאמת את עצמך עם API של Cloudflare.`
כדי ליצור אסימון API של Cloudflare, עקוב אחרי השלבים האלה.`
1. פתח את הדפדפן שלך, נווט ל- https://dash.cloudflare.com/login/, והתחבר לחשבון ה-Cloudflare שלך.`
2. לאחר התחברות ללוח הבקרה של Cloudflare, לחץ על כפתור הפרופיל בפינה הימנית-עליונה ולחץ על הפרופיל שלי.

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

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

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

6. בדוק את הסיכום וודא שיש ל-API הרשאת DNS:עריכה לאזור ה-DNS שנבחר מראש. לחץ לבסוף על צור אסימון כדי ליצור את אסימון ה-API.

7. לאחר יצירת אסימון ה-API, העתק את ערך האסימון וודא שאתה שומר עליו בצורה מאובטחת. טפל באסימון ה-API בדיוק כמו שאתה טופל בסיסמה.

8. חזור לכרטיסייה אסימוני API ווודא את קיומו של אסימון ה-API שיצרת.

הגדרת סקריפט עדכון ה-DNS הדינמי של Cloudflare
כעת יש לך חשבון Cloudflare ואסימון API של Cloudflare עם הרשאה לעריכת אזור DNS. מה הלאה? עליך להשתמש באסימון ה-API ולשלב אותו עם סקריפט שיעדכן באופן פרוגרמטי את רשומת ה-DNS הדינמית של Cloudflare.
המדריך הזה מספק לך סקריפט PowerShell פועל במיוחד לעדכון של רשומת DNS ב-Cloudflare.
שמירת הסקריפט
עקוב אחר השלבים למטה כדי לשמור על הסקריפט PowerShell לעדכון דינמי של Cloudflare במחשב הלקוח שלך.
1. החלט לאיזו תיקייה לאחסן את הסקריפט וצור את התיקייה הזו אם היא עדיין לא קיימת. לדוגמה, מיקום הסקריפט בדוגמה זו הוא ב-C:\CloudflareDDNS.
2. פתח את עורך הקוד שלך, כמו VSCode, וצור קובץ סקריפט PowerShell חדש בשם Update-CloudflareDDNS.ps1
. שמור את הסקריפט בתוך התיקייה C:\CloudflareDDNS.
3. העתק את הסקריפט למטה, הדבק אותו בעורך הקוד שלך, ושמור את הקובץ. התייחס להערות הטקסט המצורף להבנת הסקריפט.
שומר את התסריט
עכשיו ששמרת את תסריט עדכון ה-Dynamic DNS של Cloudflare, מה הבא? לפני שתמשיך להרץ את התסריט, חשוב לבדוק את תפקודו. כדי להריץ את התסריט, יש צורך בארבעה פרטים להצלחה, ואלה הם:
אימייל
– כתובת האימייל של חשבון ה-Cloudflare שלך.טוקן
– הטוקן API שיצרת מראש בחשבון ה-Cloudflare שלך.דומיין
– שם הדומיין DNS שמכיל את רשומת ה-DNS שברצונך לעדכן. (לדוגמה, lazyexchangeadmin.cyou).רשומה
– רשומת ה-DNS שברצונך לעדכן. (לדוגמה, demo.lazyexchangeadmin.cyou).
להריץ את התסריט, עקוב אחרי השלבים הבאים.
1. ראשית, פתח סשן של PowerShell. או, אם אתה משתמש ב-VSCode, השתמש בסוף הכתובת של PowerShell של VSCode במקום.
2. לאחר מכן, בצע בדיקת DNS על מנת לאמת את כתובת ה-IP הנוכחית של רשומת ה-DNS. כדי לעשות זאת, הרץ את הפקודה Resolve-DnsName
, כפי שאתה רואה למטה. ודא שאתה ספק את שם הדומיין המוחלט (FQDN) עם הפרמטר -Name
.
הפקודה אמורה להחזיר את רשומת ה-DNS שביקשת, כולל כתובת ה-IP שלה.

3. כעת, הפעל את הסקריפט Update-CloudflareDDNS.ps1
כדי לעדכן את רשומת ה-DNS ב-Cloudflare על ידי הרצת הפקודה למטה. ודא שאתה משנה את המשתנים Email
, Token
, Domain
, ו-Record
. הפקודה למטה מניחה שהסקריפט שלך נמצא ב-C:\CloudflareDDNS\Update-CloudflareDDNS.ps1.
הסקריפט מבצע אז פעולות אלו, כפי שאתה רואה בתמונה למטה.
- אימות של טוקן ה-API.
- מציאת הדומיין המכיל את רשומת ה-DNS לעדכון.
- מציאת רשומת ה-DNS לעדכון.
- השוואה בין כתובת ה-IP של רשומת ה-DNS לבין כתובת ה-IP החיצונית או הציבורית הנוכחית.
- עדכון של כתובת ה-IP של רשומת ה-DNS ב-Cloudflare.
- הצגת תוצאת עדכון דינמית של DNS.

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

5. לבסוף, בצע חיפוש נוסף של רשומת DNS כפי שעשית בשלב 2 כדי לוודא האם ה-IP החדש כבר התפשט באופן ציבורי.
תפשטות רשומת DNS יכולה לקחת מספר דקות, שעות, או ימים. בדוגמה זו, התפשטות ב-Cloudflare לקחה רק פחות מדקה.

קביעת קביעת משימת עדכון דינמית של DNS של Cloudflare
בנקודה זו, יש לך סקריפט פעיל המעדכן את רשומת ה-Cloudflare dynamic DNS שלך. אך הפעלת הסקריפט ידנית כל פעם אינה המטרה. עליך לוודא שעדכון ה־dynamic DNS יתבצע באופן אוטומטי ככל הצורך.
בהתאם למערכת ההפעלה שאתה משתמש בה, הדרך שבה תתזמין את הסקריפט לרוץ תבדל, כמו משימת cron בלינוקס. במדריך זה, ניצור משימה מתוזמנת בחלונות שמפעילה את סקריפט עדכון רשומת ה-Cloudflare dynamic DNS כל חמישה דקות.
הגדרת פעולת המשימה המתוזמנת
למשימה שלך יש להיות פעולה, שניתן ליצור על ידי הרצת הפקודה New-ScheduledTaskAction
. בדוגמא זו, הפעולה היא להפעיל את הסקריפט Update-CloudflareDDNS.ps1 באמצעות קובץ ה־PowerShell הביצועי pwsh.exe
.
כדי לעשות זאת, פתח חלון PowerShell כמנהל חדש. לאחר מכן, העתק והרץ את הקוד למטה ב־PowerShell. ודא שאתה משנה את המשתנים $scriptPath
, $Email,
$Token
, $Domain
, ו־$Record
.
יצירת הפעלת המשימה המתוזמנת
לאחר שהגדרת מה תעשה המשימה, עליך ליצור גורם זיזה או לוח זמנים עבור המשימה על ידי הרצת פקודת New-ScheduledTaskTrigger
. העתק את הקוד למטה והרץ אותו בפוורשל כדי ליצור גורם זיזה חדש שרץ כל חמש דקות במשך עשר שנים.
רישום המשימה המתוזמנת החדשה במערכת
סוף סוף, אתה מוכן לרשום את המשימה המתוזמנת החדשה על המחשב. בעזרת זאת, תצטרך להריץ את ה-Register-ScheduledTask
cmdlet, כמו בקוד למטה. העתק את הקוד למטה והרץ אותו ב-PowerShell כדי לרשום את המשימה המתוזמנת.
המשימה המתוזמנת התוצאה תרוץ תחת חשבון המערכת המקומיlocal SYSTEM account. תרגיש חופשי להקצות חשבון משתמש שונה להריץ את המשימה המתוזמנת לפי הצורך.
כפי שניתן לראות למטה, הפקודה יצרה את המשימה המתוזמנת, והמצב הוא מוכן. מנקודה זו והלאה, התסריט ירוץ בקצב של חמישה דקות.

סיכום
אחזר רשומות DNS מעודכנות עם שינויים בכתובות IP דינמיות אינו צריך להיות אתגר. אין צורך לשלם עבור שירות DNS דינמי! על ידי ניהול אזורי DNS שלך ב-Cloudflare, תוכל להנות מ-API שלהם שיאפשר לך לעדכן את רשומות ה-DNS שלך באופן תוכנתי.
למדת במדריך זה כיצד לעדכן רשומת DNS דינמית של Cloudflare באמצעות שילוב של קריאות ל-API, PowerShell 7 ומשימות מתוזמנות. כל זה מאפשר לך להגדיר את המנגנון שלך לעדכון של Cloudflare DNS פעם אחת ולשמור על העדכון פועל במרווח זמן לא משומר.
האם תשקול לנהל את אזורי ה-DNS שלך עם Cloudflare כדי ליהנות מיתרונות ה-API שלה? או אולי יש לך דרך יותר נוחה ונגישה שאתה מכיר?
Source:
https://adamtheautomator.com/cloudflare-dynamic-dns/