Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Форум
    RouterOS
    Аренда DHCP для DNS.

    Аренда DHCP для DNS.

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Аренда DHCP для DNS., RouterOS
     
    raymonvdm
    Guest
    #1
    0
    10.12.2007 13:05:00
    Привет! Я нашёл скрипт "Настройка статического DNS-записи для каждого DHCP-лизе" на Wiki, НО у меня несколько разных DHCP-серверов с разными диапазонами IP-адресов. А скрипт добавляет только одно доменное имя ко всем разным лизам. Как мне сделать разницу между разными сетями dhcp.lan.local, dhcp.hotspot.local, dhcp.laptop1.local, dhcp.laptop2.local? :set topdomain "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]; \
              :put ( $hostname . " : " . $hostip ) ; \
              /ip dns static ;
              :foreach di in [find] do = { :if ([get $di name] = $hostname) do {/ip dns static remove $di }}
              /ip dns static add name=$hostname address=$hostip
            }  \
    };
     
     
     
    SeaburyNorton
    Guest
    #2
    0
    19.08.2012 19:07:00
    Я тоже хотел бы узнать ответ на этот вопрос… У меня запущено два DHCP-сервера на 2 разных интерфейсах с 2 разными сетевыми тегами… кто-нибудь?
     
     
     
    boen_robot
    Guest
    #3
    0
    19.08.2012 19:40:00
    Нельзя было просто указать это вручную? Например: /ip dhcp-server network add address=192.168.0.100/32 dns-server=dns-for-this-IP
     
     
     
    SeaburyNorton
    Guest
    #4
    0
    19.08.2012 19:55:00
    Что делает этот скрипт, так это создает статические записи в DNS для всех DHCP-аренд, чтобы их можно было легко разрешать по имени. Например, если dhcp1 выдаёт аренды на интерфейсе eth1 с тегом сети "network.lan", то скрипт создаёт записи DNS так, что каждая аренда разрешается по имени хоста: например, mach1.network.lan = 192.168.2.100. Скрипт работает отлично... проблема в том, что если ваша реализация работает с более чем одним DHCP-сервером. Например, если dhcp2 работает от eth2 с тегом сети "second.lan", скрипт постоянно добавляет тег "network.lan" к выдаваемым адресам. Думаю, нужен скрипт, который сможет действительно различать их, если это вообще возможно.
     
     
     
    boen_robot
    Guest
    #5
    0
    19.08.2012 20:41:00
    Ах… так, значит, нужно настраивать DNS-запись в роутере для каждого лиза. Теперь понятно. Ну, сервер, от которого получен лиз, можно увидеть в свойстве "server" лиза. Так что… если я правильно понимаю скрипт, вместо того, чтобы определять `$topdomain` в начале, его нужно определять условно внутри `:if ([:len [get $i host-name]] > 0) do={ \ part`. Что-то вроде: /ip dhcp-server lease ;
    :foreach i in=[find] \
    do={  \
       /ip dhcp-server lease ;
       :if ([:len [get $i host-name]] > 0) do={ \
           :if ("server1" == [get $i server]) do={ \
               :set hostname ([get $i host-name] . ".dhcp.lan.local"); \
           } else { \
               :if ("server2" == [get $i server]) do={ \
                   :set hostname ([get $i host-name] . ".dhcp.hotspot.local"); \
               }
           } \
           :set hostip [get $i address]; \
           :put ( $hostname . " : " . $hostip ) ; \
           /ip dns static ;
           :foreach di in [find] do = { :if ([get $di name] = $hostname) do {/ip dns static remove $di }}
           /ip dns static add name=$hostname address=$hostip
        }  \
    };
     
     
     
    SeaburyNorton
    Guest
    #6
    0
    19.08.2012 20:52:00
    Ну да… вот до чего дошло…
     
     
     
    SeaburyNorton
    Guest
    #7
    0
    20.08.2012 16:57:00
    Я это проверю и сообщу! Полагаю, тебе нужно изменить параметры “server1” и “server2” на те, что указаны на твоем устройстве, а также “.dhcp.lan.local” и “.dhcp.hotspot.local”… (Заранее спасибо!)
     
     
     
    SeaburyNorton
    Guest
    #8
    0
    20.08.2012 17:12:00
    Просто чтобы сыграть роль адвоката дьявола, второй скрипт на странице опса выше (я вставлю его ниже) позволяет использовать TTL для различения статических и динамически добавленных DNS-записей. В своих скитаниях я нахожу, что этот скрипт чаще используется, чем первый, потому что TTL защищает вручную добавленные записи от перезаписи через DHCP. Не могли бы вы подумать о добавлении вашего скрипта ниже? # Домен, который будет добавлен к имени хоста ваших DHCP-клиентов
    :local topdomain;
    :set topdomain "lan";

    # Используйте ttl, чтобы различать динамически добавленные DNS-записи
    :local ttl;
    :set ttl "00:59:59";

    # Установите переменные для использования
    :local hostname;
    :local hostip;
    :local free;

    # Удалите все динамические записи
    /ip dns static;
    :foreach a in=[find] do={
     :if ([get $a ttl] = $ttl) do={
       :put ("Удаляю: " . [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 ;
    # Проверьте, существует ли запись
       :foreach di in [find] do={
         :if ([get $di name] = $hostname) do={
           :set free "false";
           :put ("Не добавляю уже существующую запись: " . $hostname);
         }
       }
       :if ($free = true) do={
         :put ("Добавляю: " . $hostname . " : " . $hostip ) ;
         /ip dns static add name=$hostname address=$hostip ttl=$ttl;
       }
     }
    }
     
     
     
    SeaburyNorton
    Guest
    #9
    0
    22.08.2012 02:18:00
    Ничего хорошего не вышло… скрипт даже не запускается… просто ничего не делает.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры