Puncte:0

Mod preferat de a copia configurația rutei pe o gazdă diferită?

drapel in

Înlocuiesc un server CentOS cu unul Ubuntu 20. Trebuie să dublez configurația de rutare a serverelor mai vechi. Ieșirile de afișare rută ip și traseu nu sunt utilizabile direct ca intrări.

Sunt puțin reticent în a traduce manual rezultatul în comenzi de rută, deoarece erorile se strecoară mereu. Există o modalitate mai bună?

Nmath avatar
drapel ng
Ce comenzi? Ce erori? Editați-vă întrebarea și includeți detalii.
pLumo avatar
drapel in
Da, puteți da un exemplu ce nu funcționează cu traducerea.
drapel in
Evit doar copierea manuală sau lipirea datelor pentru a evita eroarea utilizatorului. Nu cunosc idiosincrazia lui `route` și nici `ip route`. Și lucrurile din rețea sunt foarte vulnerabile la greșeli de scriere.
guiverc avatar
drapel cn
Vă dați seama că Ubuntu are produse diferite, principalele produse bazate pe *deb* sunt în format *year.month*, de ex. Ubuntu 20.04 LTS Server, dar există și produse *snap* care utilizează formatul *an*, de ex. Ubuntu Core 20 (server). 20 este un produs diferit de 20.04 (se bazează pe sistemul mai puternic 20.04, dar este mai mic, ceea ce îl face mai potrivit pentru dispozitive, aparate și utilizare în cloud...). Fii precis cu detaliile.
Puncte:-1
drapel in

Am de gând să încerc un script powershell. traseu arată tabelele de rutare curente ca un tabel cu aceste coloane: Destinație,Gateway,Genmask,Flags,Metric,Ref,Use,Iface

Așa că am salvat acea ieșire într-un fișier și am copiat-o pe noua gazdă. Am convertit ieșirea brută într-un fișier csv eliminând prima linie și înlocuind spațiile cu o virgulă. De asemenea, am înlocuit numele dispozitivelor cu altele care se potriveau pe noul sistem. Deci, tabelul meu de rute de testare ar putea arăta astfel:

Destinație,Gateway,Genmask,Flags,Metric,Ref,Use,Iface
implicit,gateway,0.0.0.0,UG,0,0,0,enp5s0
implicit,toblerone.mydomain.org,0.0.0.0,UG,100,0,0,eno1
192.168.0.0,0.0.0.0,255.255.255.0,U,100,0,0,eno1
192.168.1.0,0.0.0.0,255.255.255.0,U,0,0,0,enp5s0
192.168.1.0,gateway,255.255.255.0,UG,0,0,0,enp5s0

The traseu comanda poate produce erori neașteptate atunci când ruta există deja. De asemenea, nu vreau ca comenzile generate să ruleze direct. Deci, scriptul meu PowerShell arată astfel:

#!/usr/bin/env pwsh

Set-StrictMode - cea mai recentă versiune

$ErrorActionPreference = „Oprire”
$PSDefaultParameterValues['Set-*:ErrorAction'] = „Oprire”

$routeDataCSV = Import-CSV "./route_data.csv"
# O rută trebuie ștearsă o singură dată pe rulare.
$routeDeleted = @{}

foreach ($routeIn în $routeDataCSV) {
    dacă (!$routeDeleted[$routeIn.Destination] -sau (!($routeDeleted[$routeIn.Destination] -ca „adevărat”))) {
        Scrie-Ieșire „route del -net $($routeIn.Destination)”
        $routeDeleted[$routeIn.Destination] = „adevărat”
    }
    Scrie-Ieșire „route add -net $($routeIn.Destination) gw $($routeIn.Gateway) netmask $($routeIn.Genmask) metric $($routeIn.Metric) dev $($routeIn.Iface)”
}

Comenzile generate sunt atunci:

route del -net implicit
route add -net default gw gateway netmask 0.0.0.0 metric 0 dev enp5s0
route add -net default gw toblerone.mydomain.org netmask 0.0.0.0 metric 100 dev eno1
route del -net 192.168.0.0
route add -net 192.168.0.0 gw 0.0.0.0 netmask 255.255.255.0 metric 100 dev eno1
route del -net 192.168.1.0
route add -net 192.168.1.0 gw 0.0.0.0 netmask 255.255.255.0 metric 0 dev enp5s0
route add -net 192.168.1.0 gw gateway netmask 255.255.255.0 metric 0 dev enp5s0
drapel in
Acest lucru „funcționează”, dar, așa cum mă temeam, sunt multe de învățat despre comanda `route`. Toate comenzile de mai sus eșuează atunci când opțiunea „-net” este prezentă, chiar dacă țintele sunt toate rețelele. Cu acea corecție, cele câteva rute de care aveam nevoie de fapt au funcționat, dar restul comenzilor au eșuat. Toate comenzile de mai sus care au „gw 0.0.0.0” sunt inutile și vor eșua cu erori, deoarece acele rețele sunt locale și nu au nevoie de rute. S-ar putea să fie mai multe probleme, dar rutele pe care le vreau să funcționeze, așa că am terminat.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.