Рейтинг:0

Предпочтительный способ скопировать конфигурацию маршрута на другой хост?

флаг in

Я заменяю сервер CentOS на Ubuntu 20. Мне нужно продублировать конфигурацию маршрутизации старых серверов. Результаты IP-маршрут показать и маршрут не могут быть непосредственно использованы в качестве входных данных.

Я немного не хочу вручную переводить вывод в команды маршрута, потому что всегда появляются ошибки. Есть ли лучший способ?

Nmath avatar
флаг ng
Какие команды? Какие ошибки? Отредактируйте свой вопрос и включите детали.
pLumo avatar
флаг in
Да, вы могли бы привести пример, что не работает с переводом.
флаг in
Я просто избегаю ручного копирования или вырезания данных, чтобы избежать ошибок пользователя. Я не знаю особенностей `route` и `ip route`. А сетевые материалы очень уязвимы для опечаток.
guiverc avatar
флаг cn
Вы понимаете, что в Ubuntu есть разные продукты, основные продукты на основе *deb* имеют формат *year.month*, например. Ubuntu 20.04 LTS Server, но есть также продукты *snap*, которые используют формат *year*, например. Ubuntu Core 20 (сервер). 20 отличается от продукта 20.04 (он основан на более мощной системе 20.04, но имеет меньшие размеры, что делает его более подходящим для использования на устройствах, устройствах и в облаке...). Будьте точны в деталях.
Рейтинг:-1
флаг in

Я собираюсь попробовать скрипт powershell. маршрут показывает текущие таблицы маршрутизации в виде таблицы со следующими столбцами: Пункт назначения, шлюз, маска Genmask, флаги, метрика, ссылка, использование, Iface

Поэтому я сохранил этот вывод в файл и скопировал его на новый хост. Я преобразовал необработанный вывод в файл csv, удалив первую строку и заменив пробелы запятой. Я также заменил имена устройств на те, которые соответствуют новой системе. Итак, моя таблица тестовых маршрутов может выглядеть так:

Пункт назначения, шлюз, маска Genmask, флаги, метрика, ссылка, использование, Iface
по умолчанию, шлюз, 0.0.0.0, UG, 0,0,0, enp5s0
по умолчанию, toblerone.mydomain.org, 0.0.0.0, UG, 100, 0, 0, eno1
192.168.0.0,0.0.0.0,255.255.255.0,У,100,0,0,ено1
192.168.1.0,0.0.0.0,255.255.255.0,У,0,0,0,энп5с0
192.168.1.0,шлюз,255.255.255.0,UG,0,0,0,enp5s0

маршрут Команда может привести к непредвиденным ошибкам, если маршрут уже существует. Я также не хочу, чтобы сгенерированные команды запускались напрямую. Итак, мой сценарий PowerShell выглядит так:

#!/usr/bin/env pwsh

Set-StrictMode - Последняя версия

$ErrorActionPreference = "Стоп"
$PSDefaultParameterValues['Set-*:ErrorAction'] = "Стоп"

$routeDataCSV = Import-CSV "./route_data.csv"
# Маршрут следует удалять только один раз за прогон.
$routeDeleted = @{}

foreach ($ routeIn в $ routeDataCSV) {
    if (!$routeDeleted[$routeIn.Destination] -или (!($routeDeleted[$routeIn.Destination] -like "true"))) {
        Запись-вывод "route del -net $($routeIn.Destination)"
        $routeDeleted[$routeIn.Destination] = "истина"
    }
    Write-Output "route add -net $($routeIn.Destination) gw $($routeIn.Gateway) netmask $($routeIn.Genmask) metric $($routeIn.Metric) dev $($routeIn.Iface)"
}

Затем сгенерированные команды:

маршрут del -net по умолчанию
route add -net default gw gateway netmask 0.0.0.0 metric 0 dev enp5s0
route add -net default gw toblerone.mydomain.org сетевая маска 0.0.0.0 метрика 100 dev eno1
маршрут del-net 192.168.0.0
route add -net 192.168.0.0 gw 0.0.0.0 маска сети 255.255.255.0 метрика 100 dev eno1
маршрут del-net 192.168.1.0
route add -net 192.168.1.0 gw 0.0.0.0 маска сети 255.255.255.0 метрика 0 dev enp5s0
route add -net 192.168.1.0 gw gateway маска сети 255.255.255.0 метрика 0 dev enp5s0
флаг in
Это "работает", но, как я и опасался, многое предстоит узнать о команде route. Все приведенные выше команды завершатся ошибкой, если присутствует параметр «-net», даже если целью являются все сети. С этим исправлением несколько маршрутов, которые мне действительно были нужны, работали, но остальные команды не выполнялись. Все вышеперечисленные команды с «gw 0.0.0.0» бессмысленны и завершатся ошибкой, поскольку эти сети являются локальными и не нуждаются в маршрутах. Проблем может быть больше, но маршруты, которые я хочу, работают, так что я закончил.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.