Форум OlegON > Компьютеры и Программное обеспечение > Сеть > Сетевое оборудование > MikroTik

Mikrotik. Как раздавать маршруты пользователям. : MikroTik

27.04.2024 4:01


08.08.2020 15:31
OlegON
 
Понадобилось раздать пользователям маршрут для подсетки.
для 192.168.10.0/24 гейтом должен быть 192.168.88.254
Понятно, что можно сходить и раздать. Однако, это неспортивно (или слишком спортивно, если хостов много). Правильный вариант - раздать через DHCP.
Выяснилось, что в силу рукожопия мелкомягких, необходимо указывать не только 121 опцию DHCP, но и 249. На просторах интернета нашел перловый скриптик
Код:
#!/usr/bin/perl -w

use strict;

    print "\033[2J";    #clear the screen
    print "\033[0;0H";  #jump to 0,0

sub option_121 {
    my $gw = shift;
    my $string = '';
    my ($subnet, $mask, $b0, $b1, $b2, $b3);
    foreach my $cidr (@_) {
        ($subnet,  $mask) = split('/', $cidr);
        ($b0, $b1, $b2, $b3) = split(/\./, $subnet);
        $string .= sprintf('%02x', $mask);
        $string .= sprintf('%02x', $b0) if($mask > 0);
        $string .= sprintf('%02x', $b1) if($mask > 8);
        $string .= sprintf('%02x', $b2) if($mask > 16);
        $string .= sprintf('%02x', $b3) if($mask > 24);
        $string .= sprintf('%02x%02x%02x%02x', split(/\./, $gw));
    }
    return $string;
}

if(@ARGV < 2)
{
    print "\n";
    print "Usage: $0 [gateway] [host|network]/[bitmask]\n\n";
    print "Example: $0 192.168.0.1 192.168.10.0/24\n\n";
}
elsif($ARGV[0] =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/)
{
    print "DHCP option 121 (249) hex string: ".option_121(@ARGV)."\n";
}
else
{
    print "Invalid gateway IP address: '$ARGV[0]'\n";
}
Задаем параметры
Код:
./calcroute.pl 192.168.88.254 192.168.10.0/24
и в ответ получаем строку
Код:
DHCP option 121 (249) hex string: 18c0a80ac0a858fe
С этим добром идем в настройки DHCP Server и создаем две записи



после чего, на следующей закладке, объединяем их в set



И в итоге, уже на главной закладке DHCP прикрепляем set в настройках... Все, при следующем взаимодействии клиенты получат новый маршрут.
Часовой пояс GMT +3, время: 04:01.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.