Привет всем, я столкнулся с ситуацией, когда мне нужно было добавить маршрутное правило для доменного имени, привязанного к динамическому IP-адресу. Я написал очень короткий и простой скрипт и решил поделиться им. Надеюсь, это сэкономит вам время/усилия, если вам нужно что-то подобное. # Маршрутные правила для динамических IP-адресов
# Этот скрипт разрешает имя хоста и проверяет, есть ли уже его IP-адрес в маршрутных правилах
# Если нет, он создает маршрутное правило, которое ищет только в указанной таблице.
# Сетевик
# Измените имена здесь:
:local ip1 [:resolve host1.someonesdomain.com]
:local table1 "regulartraffic"
:local ip2 [:resolve host2.someonesdomain.com]
:local table2 "specialtraffic"
#--------------------------
:if ([:len [/ip route rule find where dst-address=$ip1 . "/32"]] = 0) do={
[/ip route rule add dst-address=$ip1 action=lookup-only-in-table table=$table1]
:log info "Новый IP добавлен в таблицу $table1"
}
:if ([:len [/ip route rule find where dst-address=$ip2 . "/32"]] = 0) do={
[/ip route rule add dst-address=$ip2 action=lookup-only-in-table table=$table2]
:log info "Новый IP добавлен в таблицу $table2"
}
# Этот скрипт разрешает имя хоста и проверяет, есть ли уже его IP-адрес в маршрутных правилах
# Если нет, он создает маршрутное правило, которое ищет только в указанной таблице.
# Сетевик
# Измените имена здесь:
:local ip1 [:resolve host1.someonesdomain.com]
:local table1 "regulartraffic"
:local ip2 [:resolve host2.someonesdomain.com]
:local table2 "specialtraffic"
#--------------------------
:if ([:len [/ip route rule find where dst-address=$ip1 . "/32"]] = 0) do={
[/ip route rule add dst-address=$ip1 action=lookup-only-in-table table=$table1]
:log info "Новый IP добавлен в таблицу $table1"
}
:if ([:len [/ip route rule find where dst-address=$ip2 . "/32"]] = 0) do={
[/ip route rule add dst-address=$ip2 action=lookup-only-in-table table=$table2]
:log info "Новый IP добавлен в таблицу $table2"
}
