وضع تسجيلات DNS ثابت لكل تاجير DHCP lease في سيرفر المايكروتك

اخر تحديث في مايو 27, 2023 بواسطة حمدي بانجار

وضع تسجيلات DNS ثابت لكل تاجير DHCP lease في سيرفر المايكروتك

تشتغل هذي الميزة في جدولة ( scheduler  ) حيث يتم إضافة إدخال DNS ثابت لكل تأجير DHCP.

ملاحظة:

نظرًا لأن هذا السكربت قد يحذف إدخالات DNS ثابتة مضافة بالفعل مسبقا ، أو قواعد على اسم مضيف تم استقباله عبر DHCP ، فإن السكربت ينطوي على مخاطرة أمنية.

وضع تسجيلات DNS ثابت لكل تاجير DHCP lease في سيرفر المايكروتك

استخدم نطاق uniq ، على سبيل المثال dhcp.yourdomain.com أو dynamic.yourdomain.com أو ما شابه. إذا كان عليك مزج إدخالات DNS ثابتة وديناميكية على نفس النطاق بالضبط ، انظر أدناه.

# DNS record for DHCP lease
# Prepare variables in use
:local topdomain;
:local hostname;
:local hostip;

# Configure your domain
:set topdomain "dhcp.yourdomain.com";

/ip dhcp-server lease;
:foreach i in=[find] do={
  /ip dhcp-server lease;
  :if ([:len [get $i host-name]] > 0) do={
    :set hostname ([get $i host-name] . "." . $topdomain);
    :set hostip [get $i address];
    /ip dns static;
# Remove if DNS entry already exist
    :foreach di in [find] do={
      :if ([get $di name] = $hostname) do={
        :put ("Removing: " . $hostname . " : " . $hostip);
        remove $di;
      }
    }
# Add DNS entry
    :put ("Adding: " . $hostname . " : " . $hostip);
    /ip dns static add name=$hostname address=$hostip;
  }
}

هذا السيناريو الثاني يأخذ نهج آخر :

استخدام TTL كطريقة للتمييز بين إدخالات DNS المضافة ديناميكية وحذفها قبل اي إضافة جديدة.

سيتم رفض إضافة أسماء المضيفات الموجودة بالفعل.

وسيتم أيضًا إزالة إدخالات DNS القديمة ، عندما لا تكون أطول في عقد DHCP-lease.

هذا سوف يمنع افساد DNS-static مع الكثير من الإدخالات.

# Domain to be added to your DHCP-clients hostname
:local topdomain;
:set topdomain "lan";

# Use ttl to distinguish dynamic added DNS records
:local ttl;
:set ttl "00:59:59";

# Set variables to use
:local hostname;
:local hostip;
:local free;

# Remove all dynamic records
/ip dns static;
:foreach a in=[find] do={
  :if ([get $a ttl] = $ttl) do={
    :put ("Removing: " . [get $a name] . " : " . [get $a address]);
    remove $a;
  }
}

/ip dhcp-server lease ;
:foreach i in=[find] do={
  /ip dhcp-server lease ;
  :if ([:len [get $i host-name]] > 0) do={
    :set free "true";
    :set hostname ([get $i host-name] . "." . $topdomain);
    :set hostip [get $i address];
    /ip dns static ;
# Check if entry already exist
    :foreach di in [find] do={
      :if ([get $di name] = $hostname) do={
        :set free "false";
        :put ("Not adding already existing entry: " . $hostname);
      }
    }
    :if ($free = true) do={
      :put ("Adding: " . $hostname . " : " . $hostip ) ;
      /ip dns static add name=$hostname address=$hostip ttl=$ttl;
    }
  }
}

هنا مثال آخر :

سيؤدي هذا إلى تغيير معلومات نظام أسماء النطاقات فقط عندما تكون التغييرات ضرورية ، ويحذف إدخالات DNS القديمة عندما تنتهي صلاحية الإيجار.

يمكنك أيضًا توفير أسماء مضيفات “ثابتة” لعناوين ethernet. فمثلا :

:global shost001122334455 "hostname"

سوف يعين اسم المضيف “hostname” إلى عنوان IP مهما كان عقد الإيجار للماك 00: 11: 22: 33: 44: 55.

:local zone "dhcp";
:local ttl "00:05:00"
:local hostname
:local ip
:local dnsip
:local dhcpip
:local dnsnode
:local dhcpnode

/ip dns static;
:foreach i in=[find where name ~ (".*\\.".$zone) ] do={
  :set hostname [ get $i name ];
  :set hostname [ :pick $hostname 0 ( [ :len $hostname ] - ( [ :len $zone ] + 1 ) ) ];
  /ip dhcp-server lease;
  :set dhcpnode [ find where host-name=$hostname ];
  :if ( [ :len $dhcpnode ] > 0) do={
    :log debug ("Lease for ".$hostname." still exists. Not deleting.");
  } else={
# there's no lease by that name. Maybe this mac has a static name.
    :local found false
    /system script environment
    :foreach n in=[ find where name ~ "shost[0-9A-F]+" ] do={
       :if ( [ get $n value ] = $hostname ) do={
         :set found true;
       }
    }
    :if ( found ) do={
      :log debug ("Hostname ".$hostname." is static");
    } else={
      :log info ("Lease expired for ".$hostname.", deleting DNS entry.");
      /ip dns static remove $i;
    }
  }
}

/ip dhcp-server lease;
:foreach i in=[find] do={
  :set hostname ""
  :local mac
  :set dhcpip [ get $i address ];
  :set mac [ get $i mac-address ];
  :while ($mac ~ ":") do={
    :local pos [ :find $mac ":" ];
    :set mac ( [ :pick $mac 0 $pos ] . [ :pick $mac ($pos + 1) 999 ] );
  };
  :foreach n in=[ /system script environment find where name=("shost" . $mac) ] do={
    :set hostname [ /system script environment get $n value ];
  }
  :if ( [ :len $hostname ] = 0) do={
    :set hostname [ get $i host-name ];
  }
  :if ( [ :len $hostname ] > 0) do={
    :set hostname ( $hostname . "." . $zone );
    /ip dns static;
    :set dnsnode [ find where name=$hostname ];
    :if ( [ :len $dnsnode ] > 0 ) do={
# it exists. Is its IP the same?
      :set dnsip [ get $dnsnode address ];
      :if ( $dnsip = $dhcpip ) do={
        :log debug ("DNS entry for " . $hostname . " does not need updating.");
      } else={
        :log info ("Replacing DNS entry for " . $hostname);
        /ip dns static remove $dnsnode;
        /ip dns static add name=$hostname address=$dhcpip ttl=$ttl;
      }
    } else={
# it doesn't exist. Add it
      :log info ("Adding new DNS entry for " . $hostname);
      /ip dns static add name=$hostname address=$dhcpip ttl=$ttl;
    }
  }
}

أنتهى … وضع تسجيلات DNS ثابت لكل تاجير DHCP lease في سيرفر المايكروتك

وضع تسجيلات DNS ثابتة لكل تاجير DHCP lease في سيرفر المايكروتك

الى هنا نكون وصلنا الى نهاية موضوعنا اليوم وضع تسجيلات DNS ثابت لكل تاجير DHCP lease في سيرفر المايكروتك

والذي نتمنى ان ينال رضاكم واعجابكم والى اللقاء في موضوع جديد شيق ورائع

وحتى ذلك الحين لاتنسو الاهتمام بصحتكم وحفظكم الله …

اذا اعجبك الموضوع وضع تسجيلات DNS ثابت لكل تاجير DHCP lease في سيرفر المايكروتك لاتنسى ان تقوم بمشاركتة على مواقع التواصل الاجتماعي ليستفيذ منه الغير,

كما نتمنى اشتراككم في قناة الموقع على اليوتيوب بالضغط هنا وكذلك الاشتراك في مجموعة الفيس بوك بالضغط هنا والتيليقرام بالضغط هنا  وكذلك التسجيل بالموقع لتتمكنو من تحميل بعض الملفات الخاصة بالأعضاء

كما يمكنكم رفع ملفاتكم مجانا على مركز ملفات حضرموت التقنية بالضغط هنا ولاتترددو في وضع أي استفسارات للرد عليكم .

دمتم بكل ود والسلام عليكم ورحمة الله وبركاتة  … حضرموت التقنية///

حول حمدي بانجار

باحث ومهندس في مجالات شبكات ومقاهي الأنترنت - شغوف في عالم الانترنت والبرمجة للشبكات - في حضرموت التقنية شعارنا الدائم - أفعل الخير مهما أستصغرتة ! فأنك لاتدري اي عمل يدخلك الجنة ... فلا يفلح كاتم العلم ...طموحاتي ان يصبح الموقع مدرسة تعليمية للعلوم التقنية الجديدة ومساعدة الاخرين في حل مشكلاتهم ونرحب بمن يرغب الانظمام لنا يفيذ ويستفيذ ليكبر هذا الصرح التعليمي ويحقق الاستفاذة القصوى للغير ... أنظمامكم لأسرة الموقع وقناتها ومشاركتكم بالمواضيع الهادفه هو بحد ذاتة تشجيع لنا وللغير لاستمرارية هذا الصرح التعليمي

تحقق أيضا

فتح بورت في الميكروتك لتحويل طلبات منفذ معين الى جهاز داخلي ضمن شبكات الميكروتك

فتح بورت في الميكروتك لتحويل طلبات منفذ معين الى جهاز داخلي ضمن شبكات الميكروتك

اخر تحديث في مايو 27, 2023 بواسطة حمدي بانجار فتح بورت في الميكروتك لتحويل طلبات …