section

Cisco IOS a rollback konfigurace

21.12.2023 | Tag Sítě

V rámci funkce archive se na Cisco prvcích dá dosáhnout rollbacku konfigurace velmi podobně jako je to u Juniperu. Čistě a bezpečně se s tím dá nahradit procedura s naplánovaným restartem.

Teorie

Sice jsou Cisco prvky s původním IOS už pravděpodobně za námi, nicméně na mnoha místech switche a routery s tímto systémem stále slouží, a proto se také stále hodí znát podobné fousaté triky, jako je rollback konfigurace. Pro spoustu Cisco adminů je při náročné rekonfiguraci nebo změně s nejistým výsledkem jejich záchranou naplánování restartu prvku. Pokud se během konfigurace něco pokazí a admin se odřízne, naplánovaný restart vrátí switch do původní podoby, resp. do uložené startup konfigurace. Tenhle postup funguje, ale má své mouchy, kdy nejčastější je zapomenutí restart zrušit. Navíc je restart boxu invazivní řešení, a ne všude se dá beztrestně provést.

Kupodivu už dlouho existuje v IOS funkce, která umožní rollback konfigurace bez nutnosti plánování restartu. Je ukrytá v rámci příkazu archive, přes který je možné konfiguraci switche pravidelně ukládat buďto lokálně na flash, nebo vzdáleně na nějaký server. Archive je sám o sobě skvělá věc pro zajištění pravidelného backupu konfigurace a přídavek v podobě možnosti rollbacku je pak bonus navíc. Přijde mi však, že se o této možnosti moc neví, což je veliká škoda, protože archive není vůbec těžký na nasazení.

Rollback v rámci archive funguje trochu jinak, než je tomu u Juniperu. Funkce rollbacku není automatická, ale musí se v případě potřeby zavolat. Konkrétně před začátkem konfigurace se musí nastavit revert timer, po jehož uplynutí se bez zásahu admina konfigurace vrátí do předchozího stavu. Jakmile se nastaví revert timer, switch si uloží v souladu s nastavením archive svou konfiguraci, kterou pak v případě potřeby použije pro obnovu. Jakýkoliv příkaz zadaný během běžícího timeru se v momentě uplynutí timeru přepíše zpět, pokud provedené změny nepotvrdíme. V principu je to velmi podobné triku s restartem. Pokud je konfigurace v pořádku, speciálním příkazem se rollback timer zruší a nová konfigurace zůstává v running configu. Pokud se díky nové konfiguraci odřízneme, timer běží dál a po uplynutí vrátí switch plynule do uložené dřívější verze konfigurace. Případně se dá rollback zavolat z ruky, pokud je čekání na timer moc dlouhé a switch je dostupný.

Ačkoliv je nasazení a používání funkce archive a rollbacku jednoduché, je třeba počítat s několika fakty. Prvně, pořád se pracuje v running konfiguraci, takže provedené změny se musí nakonec vždy uložit, aby přežily restart či vypnutí prvku. Za druhé, každé nastavení revert timeru vynutí vytvoření backupu konfigurace a zrušení nebo uplynutí timeru tento backup nesmaže. Proto je dobré v rámci funkce archive omezit počet existujících backupů, aby soubory rotovaly a zbytečně neplnily flash (není to však úplně velký problém, maximální počet backup souborů pro archive je 14, pak i bez zvláštní konfigurace budou rotovat).

Příklad a konfigurace

Pro tento příklad není třeba žádný složitý scénář. Na switchi napřed nastavíme funkci archive a pak zkusíme různé změny konfigurace pod ochranou revert timeru. Pokud už v nějaké variantě nastavení archive máte, můžete už jen začít rollback využívat :).

Níže je má konfigurace archive, která mi přijde optimální. Nicméně archive má spoustu možností a opravdu bych doporučila tento příkaz prozkoumat podrobně pro všechna jeho nastavení. Níže vypsaná varianta ukládá backupy na flash pod názvem hostname prvku - čas. Dále drží maximálně tři backupy a vytváří backup při uložení konfigurace (během write). To jako základ stačí, ale je to úplné minimum, co archive dokáže. Mimo jiného se dá nastavit timer pro automatické vytváření backupu a pod sekcí log config je dokonce možné donutit switch logovat zadané příkazy, což je skvělé pro auditování změn. To však pro rollback nepotřebujeme.

archive

path flash:/$h-$t

maximum 3

write-memory

Teď máme archive připravený. Pomocí příkazu show archive můžeme zkontrolovat, kolik záloh aktuálně existuje a jaká je poslední. Pokud nyní uložíme konfiguraci, díky write-memory bychom získali první backup. Výpis dir pak potvrzuje, že backup skutečně existuje.

ROLL0

Nyní k nastavení revert timeru. Revert timer je vlastně přídavek k příkazu configure. Takže, pokud chceme rollback použít, stačí při vstupu do konfiguračního módu přidat ke conf t revert timer /počet minut do rollbacku/. Například níže je rollback nastaven na 5 minut:

conf t revert timer 5

Switch nám řekne, že vytvořil backup a ten po uplynutí timeru použije pro rollback.

ROLL1

Nyní už můžeme začít provádět nebezpečné konfigurace. Samozřejmě to asi nemá cenu zmiňovat, ale konfiguraci neukládáme, dokud si její podobou nejsme jistí. I když revert timer zabere a konfiguraci vrátí, jejím uložením bychom chybu zanesli do startup konfigurace.

Abychom se mohli podívat, zda revert timer skutečně běží, můžeme použít příkaz show archive config rollback timer. Ačkoliv tento výpis neříká, kolik času do revertu zbývá, řekne nám, zda je revert timer aktivní, kdy začal a na jak dlouho byl nastaven.

show archive config rollback timer


ROLL2

Pokud jsme podcenili časový limit, který jsme si dali, můžeme opětovným zavoláním conf t revert timer časový úsek prodloužit. Naopak pokud jsme udělali v konfiguraci chybu (ale ne natolik vážnou, aby nás odřízla od konzole) a potřebujeme rollback udělat dříve, můžeme jej vynutit příkazem configure revert now. Rollback se provede okamžitě za použití stejného backupu, jako by byl použit po doběhnutí timeru.

configure revert now

Během rollbacku nám ve výpisu switch sdělí, co se změnilo a co bylo vráceno v konfiguraci zpátky.

ROLL3

Zde je animace nastavení rollbacku, výpisu archive a ručního vrácení konfigurace.

ROLL4

Jakmile jsme s konfigurací spokojeni, timer zrušíme příkazem configure confirm. Přes dříve zmíněný příkaz show archive si můžeme potvrdit, že žádný timer už neběží, protože při configure confirm nám switch už nic neřekne. Nakonec zbývá konfiguraci uložit a je hotovo.

configure confirm

To je celé povídání k rollbacku. V rámci testů jsem zkoušela změnit jednoduché věci jako hostname, či adresu managementu switche a vše fungovalo rychle a bez problémů. Nicméně ve fórech se občas zmiňují chyby typu zamčená konfigurace, proto nebude od věci si funkci rollbacku napřed vyzkoušet na svém železe nanečisto, ať máte jistotu, že vám dobře poslouží.