ISP`s IT Аутсорсинг
Быстрый переход: Главная блога Главная сайта Форум
Если Вы чего то недопоняли или не нашли - задайте
вопрос на нашем форуме и мы попробуем Вам помочь.
Subnets.ru Регистрация IP и Автономных систем mega-net.ru

Архивные статьи в категории ‘Сетевое оборудование’

Добро пожаловать в блог! Надеемся, что Вы еще вернетесь.

Введение

Есть такая удобная штука как CDP ( Cisco Discovery Protocol ) — проприетарный протокол второго уровня модели OSI, разработанный компанией Сisco Systems, позволяющий обнаруживать подключенное (напрямую или через устройства первого уровня) сетевое оборудование Сisco, его название, версию IOS и IP-адреса.

Устройство посылает мультикаст анонс на MAC адрес 0100.0ccc.cccc. В конфигурации по-умолчанию анонсы рассылаются каждые 60 секунд на порты Ethernet, Frame Relay и ATM. Каждое устройство, понимающее протокол, сохраняет полученную информацию в таблице и позволяет посмотреть её по команде show cdp neighbours. Если устройство трижды не прислало анонс (при значениях по-умолчанию — 3 минуты), оно удаляется из таблицы. Возникло желание на оборудовании Cisco видеть, какие сервера FreeBSD и через какие сетевые карты подключены.

Практическая реализация

В ответ на желаемое google.ru выдал ссылку на net/ladvd в дереве портов FreeBSD. Этот порт занимается тем, что рассылает анонсы по протоколам CDP и LLDP. Нам как раз подходит первый из них.

Устанавливаем, как обычно:

cd /usr/ports/net/ladvd
make install clean

Добавляем строки в /etc/rc.conf для автозапуска демона при старте системы:

ladvd_enable=»YES»
ladvd_flags=»-c»

флаг -c означает, что сервер будет рассылать анонсы по протоколу CDP.

запускаем демона вручную

/usr/local/etc/rc.d/ladvd start

смотрим на Cisco результат:

Switch> show cdp neighbors

Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone

Device ID                 Local Intrfce    Holdtme   Capability    Platform      Port ID
server01.mydomain.ru      Gig 0/19         165            R        FreeBSD       bge0
Switch-14                 Gig 0/9          125          R S I      WS-C3560G     Gig 0/8

Смотрим внимательнее:

Switch>sh cdp neighbors detail

Device ID: server01.mydomain.ru
Entry address(es):
IP address: 192.168.32.23
Platform: FreeBSD,  Capabilities: Router
Interface: GigabitEthernet0/19,  Port ID (outgoing port): bge0
Holdtime : 156 sec

Version :
FreeBSD 7.0-RELEASE FreeBSD 7.0-RELEASE #2: Wed Sep 24 19:33:17 MSD 2008     root@server01.mydomain.ru :/usr/src/sys/i386/compile/SERVER01 i386

advertisement version: 2
Duplex: full
Management address(es):

В случае возникновения проблем запускаем демона ladvd в «недемоническом» 🙂 режиме, запустите его с ключами:

ladvd -f -c -vvv

Вывод будет, примерно, таким:

found ethernet interface bge0
adding interface bge0
found ethernet interface bge1
skipping interface bge1 (down)
skipping interface pflog0
skipping interface pfsync0
skipping interface lo0
fetching addresses for all interfaces
ladvd 0.6.1 running
fetching all interfaces
found ethernet interface bge0
adding interface bge0
found ethernet interface bge1
skipping interface bge1 (down)
skipping interface pflog0
skipping interface pfsync0
skipping interface lo0
fetching addresses for all interfaces
starting loop with interface bge0
fetching bge0 media details
autoneg supported on bge0
autoneg enabled on bge0
full-duplex enabled on interface bge0
building cdp packet for bge0
sending cdp packet (262 bytes) on bge0
sleeping for 30 seconds

или будет выведено сообщение об ошибке, которую вам и необходимо исправить для того, чтобы он заработал 🙂

P.S. И два слова о безопасности:

необходимо отключать протокол cdp на интерфейсах, выходящих за защищённый периметр, так как передаваемая информация (например, версия IOS) может использоваться для подготовки атаки через уязвимость конкретной версии IOS.

Глобально, на всем девайсе, выключение CDP производится командой:

Switch(config)# no cdp run

или для конкретного интерфейса:

Switch(config-if)# no cdp enable

P.P.S. О настройке CDP на оборудовании Cisco Systems будет рассказано дополнительно в отдельной статье.

P.P.P.S. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !
Автор: Панфилов Алексей (lehis (at) subnets.ru)
Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 4, среднее: 4,75 из 5)
Загрузка...
Отправить на почту Отправить на почту

В продолжении статьи «Конфигурация OSPF на оборудовании Cisco Systems» посмотрим как в данной схеме можно выполнить редистрибуцию статических маршрутов, ну скажем на маршрутизаторе Б, в протокол OSPF.

Например на маршрутизаторе Б появился статический маршрут, ну скажем 192.168.0.0/24:

Switch> enable
Switch# configure terminal
Switch(config)# ip route 192.168.0.0 255.255.255.0 10.0.1.10

и мы хотим «вбросить» этот маршрут в OSPF.

С этой задачей нам поможет справится редистрибуция маршрутов из одного протокола в другой.

Приступим

1. Создадим access-list, по нему мы будем match`ить нужный нам маршрут(ы):

Switch(config)# ip access-list standard 10
Switch(config-std-nacl)# permit 192.168.0.0 0.255.255.255
Switch(config-std-nacl)# exit

2. Создадим маршрутную карту, в которой укажем access-list созданный в п.1:

Switch(config)# route-map redistr-static permit 100
Switch(config-route-map)# match ip address 10
Switch(config-route-map)# exit

3. Укажем OSPF, что мы хотим сделать редистрибуцию:

Switch(config)# router ospf 10
Switch(config-router)# redistribute static route-map redistr-static

4. Сохраним конфиг:

Switch(config-router)# exit
Switch(config)# exit
Switch# wri

Вот и все. Теперь все статические маршруты, попадающие под access-list 10 будут редистрибутированы в OSPF.

Не могу не подметить, что в команде redistribute, можно:
а) задать и метрику, с которой будет выполняться данная редистрибуция:

Switch(config-router)# redistribute static route-map redistr-static metric 15

б) задать tag, с которым будет распространяться маршрут (по нему, на других маршрутизаторах, можно определять откуда маршрут пришел):
Switch(config-router)# redistribute static route-map redistr-static metric 15 tag 1

Посмотрим, route-map и access-list на маршрутизаторе Б:
Switch# show route-map redistr-static

route-map redistr-static, permit, sequence 100
Match clauses:
ip address (access-lists): 10
Set clauses:
Policy routing matches: 0 packets, 0 bytes

Switch# show access-lists 10

Standard IP access list 10
    10 permit 192.168.0.0, wildcard bits 0.255.255.255 (2 matches)

На маршрутизаторе А вы должны видеть этот маршрут:
Switch# show ip route ospf | inc 192.168.0.0/24

O E2    192.168.0.0/24 [110/15] via 10.0.255.2, 1m, Vlan10

На маршрутизаторе В также:
Switch# show ip route ospf | inc 192.168.0.0/24

O E2    192.168.0.0/24 [110/15] via 10.0.255.9, 1m, Vlan100

З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !

З.Ы.Ы. Очепятки возможны. Если вы заметили неточность или у вас есть вопросы по данной схеме, то вы можете написать об этом на нашем форуме с соответствующем разделе.

Автор: Николаев Дмитрий (virus (at) subnets.ru)
Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 6, среднее: 5,00 из 5)
Загрузка...
Отправить на почту Отправить на почту

Вы ознакомились с теорией протокола OSPF и готовы к его настройке. Ну чтож, поехали.

Посмотрим на следующую схему сети. Что имеется:

  • 3шт. catalyst 3560G с включенной функцией маршрутизации
  • маршрутизатор А связывает нашу сеть с сетью Интернет
  • к маршрутизаторам Б и В подключены клиенты, находящиеся в 200-ом влане и IP-подсетях 10.0.1.0/24 и 10.0.2.0/24
  • у маршрутизаторов Б и В указан статический маршрут до default gateway (маршрутизатор А, 10.0.255.1)
Схема сети до включения OSPF

Схема сети до включения OSPF

В данной схеме OSPF вроде бы совсем не к чему. Можно его конечно запустить, но плюсов он особо не принесет. А теперь сделаем следущее: соединим маршрутизаторы Б и В между собой. В такой схеме, можно как минимум обеспечить резервирование линков от маршрутизатора Б до А и от В до А, а также быстро заводить новые подсети и распространить маршруты до них в нашей сети — динамическая маршрутизация (в данном случае OSPF) нам в этом поможет.

Итак полученная схема, на которой, как мне кажется, вы сможете понять/посмотреть принципы работы OSPF, которую мы и будем настраивать:

Схема с OSPF

Схема с OSPF

Мы рассмотрим работу OSPF в broadcast среде и на point-to-point соединении.

Приступим

Маршрутизатор А

Switch> enable
Switch# configure terminal
Switch(config)# vlan 10
Switch(config-vlan)# name main
Switch(config-vlan)# exit
Switch(config)# int vlan 10
Switch(config-if)# ip address 10.0.255.1 255.255.255.248

Явно укажем тип среды, в котором будет работать этот интерфейс в OSPF:

Switch(config-if)# ip ospf network broadcast
Switch(config-if)# exit

Продолжаем:

Switch(config)# ip routing
Switch(config)# ip subnet-zero
Switch(config)# ip classless

Переходим к настройке OSPF, номер процесса у нас будет 10:

Switch(config)# router ospf 10
Switch(config-router)# log-adjacency-changes

Зададим RID 255.255.255.255, для того чтобы данный маршрутизатор при выборах DR и BDR всегда выбирался как DR (у кого больший router-id тот и победит в выборах за место DR в сети если у всех маршрутизаторов одинаковый приоритет), а так же потом будет легко его определять ( в выводах show команд) по этому номеру RID как «верхний» маршрутизатор:

Switch(config-router)# router-id 255.255.255.255

Включим протокол OSPF на интерфейсе vlan 10 в Area 0:

Switch(config-router)# network 10.0.255.0 0.0.0.7 area 0

Команда network означает, что маршрутизатор включит протокол OSPF на тех IP интерфейсах, которые попадают под указанную маску подсети.

Укажем что мы хотим распространять default маршрут в сеть OSPF, т.е. данный маршрутизатор будет распространять маршрут по умолчанию:

Switch(config-router)# default-information originate

Сохраним конфигурацию:

Switch(config-router)# exit
Switch(config)# exit
Switch# wri

Маршрутизатор Б

Создадим влан 10, в котором «живут» маршрутизаторы А и В:
Switch> enable
Switch# configure terminal
Switch(config)# vlan 10
Switch(config-vlan)# name main

Создадим влан 200, в котором «живут» клиенты:

Switch(config-vlan)# vlan 200
Switch(config-vlan)# name clients
Switch(config-vlan)# exit

Зададим IP-адреса созданным вланам

Switch(config)# int vlan 10
Switch(config-if)# ip address 10.0.255.2 255.255.255.248
Switch(config-if)# ip ospf network broadcast
Switch(config-if)# int vlan 200
Switch(config-if)# ip address 10.0.1.1 255.255.255.0
Switch(config-if)# exit

Создадим влан 100, в по которому будут обмениваться маршрутизаторы Б и В

Switch(config)# vlan 100
Switch(config-vlan)# name backup
Switch(config-vlan)# exit
Switch(config)# int vlan 100
Switch(config-if)# ip address 10.0.255.9 255.255.255.252

Явно укажем тип среды, в котором будет работать этот интерфейс в OSPF, но не такой как на маршрутизаторе А, т.к. между маршрутизаторами Б и В явно выраженное p2p соединение и нет смысла проводить выборы DR и BDR на p2p линке, там всегда будет только два маршрутизатора: Б и В.

Избавим протокол OSPF от этой необходимости:

Switch(config-if)# ip ospf network point-to-point
Switch(config-if)# exit

Продолжаем:

Switch(config)# ip routing
Switch(config)# ip subnet-zero
Switch(config)# ip classless

Переходим к настройке OSPF. Номер процесса (10) может отличаться, т.к. OSPF не вставляет номер процесса в отправляемые пакеты, но мы оставим 10, мне так удобнее ;):

Switch(config)# router ospf 10
Switch(config-router)# log-adjacency-changes
Switch(config-router)# router-id 1.1.1.1
Switch(config-router)# network 10.0.255.0 0.0.0.7 area 0

Опишем интерфейс vlan 100, но тут я сделаю немного по другому, для примера:

Switch(config-router)# network 10.0.255.9 0.0.0.0 area 0

Обратите внимание на маску, которая равна 0.0.0.0. Таким образом мы указали OSPF, что только интерфейс с данным адресом участвует в OSPF.

Сделаем запись о сети 10.0.1.0/24:

Switch(config-router)# network 10.0.1.0 0.0.0.255 area 0

Сохраним конфигурацию:

Switch(config-router)# exit
Switch(config)# exit
Switch# wri

Маршрутизатор В

Создадим влан 10, в котором «живут» маршрутизаторы А и Б и влан под клиентов:
Switch> enable
Switch# configure terminal
Switch(config)# vlan 10
Switch(config-vlan)# name main
Switch(config-vlan)# vlan 200
Switch(config-vlan)# name clients
Switch(config-vlan)# exit

Зададим IP-адреса на вланы:

Switch(config)# int vlan 10
Switch(config-if)# ip address 10.0.255.3 255.255.255.248
Switch(config-if)# ip ospf network broadcast
Switch(config-if)# int vlan 200
Switch(config-if)# ip address 10.0.2.1 255.255.255.0
Switch(config-if)# exit

Создадим влан 100, в по которому будут обмениваться маршрутизаторы В и Б

Switch(config)# vlan 100
Switch(config-vlan)# name backup
Switch(config-vlan)# exit
Switch(config)# int vlan 100
Switch(config-if)# ip address 10.0.255.10 255.255.255.252
Switch(config-if)# ip ospf network point-to-point
Switch(config-if)# exit

Продолжаем:

Switch(config)# ip routing
Switch(config)# ip subnet-zero
Switch(config)# ip classless
Switch(config)# router ospf 10
Switch(config-router)# log-adjacency-changes
Switch(config-router)# router-id 2.2.2.2
Switch(config-router)# network 10.0.255.0 0.0.0.7 area 0
Switch(config-router)# network 10.0.255.10 0.0.0.0 area 0
Switch(config-router)# network 10.0.2.0 0.0.0.255 area 0
Switch(config-router)# exit
Switch(config)# exit
Switch# wri

Вот в принципе и все, что было необходимо сделать, чтобы протокол OSPF заработал в этой схеме.
Если вы ввсе сделали правильно, то по команде:

Switch# sh ip ospf neighbor

На маршрутизаторе А, вы увидите:

Neighbor ID     Pri   State       Dead Time   Address        Interface
2.2.2.2       0   FULL/BDR        00:00:30    10.0.255.3     Vlan10
1.1.1.1       0   FULL/DROTHER    00:00:39    10.0.255.2     Vlan10

На маршрутизаторе Б:

Neighbor ID     Pri   State         Dead Time   Address         Interface
255.255.255.255   0   FULL/DR       00:00:32    10.0.255.1      Vlan10
2.2.2.2           0   FULL/-        00:00:33    10.0.255.10     Vlan100

На маршрутизаторе В:

Neighbor ID     Pri   State         Dead Time   Address         Interface
255.255.255.255   0   FULL/DR       00:00:32    10.0.255.1      Vlan10
1.1.1.1           0   FULL/-        00:00:33    10.0.255.9      Vlan100

Посмотрите приходящие маршруты по протоколу OSPF:

Switch# show ip route ospf

На маршрутизаторах Б и В среди маршрутов приходящих по OSPF вы должны видеть и default:

O*E2 0.0.0.0/0 [110/1] via 10.0.255.1, 00:01:02, Vlan10

На маршрутизаторе Б, маршрут до сети 10.0.2.0/24 будет проходить по vlan 100, т.к. это кратчайший маршрут:

O       10.0.2.0/24 [110/2] via 10.0.255.10, 00:00:53, Vlan100

Соответственно на маршрутизаторе В:

O       10.0.1.0/24 [110/2] via 10.0.255.9, 00:00:53, Vlan100

Вот ещё несколько полезных команд.
show ip ospf interface
show ip ospf
show ip ospf database

Если по show ip ospf neighbor ничего нет, то:

  • проверьте правильно ли вы все сконфигурировали
  • «ходит» ли multicast по этим каналам
  • не выставлен ли storm-control или ACL на multicast
  • воспользуйтесь следующими командами debug:
    • debug ip ospf
    • debug ip ospf adj
    • debug ip ospf hello
    • debug ip ospf events
    • debug ip ospf packet

Заключение

Протокол OSPF не так прост как может показаться. Я рассмотрел только начало и совсем немного из того, что умеет данный протокол. В данной схеме, благодаря протоколу OSFP, при падении линков между маршрутизаторами Б и А или В и А связность сети не потеряется и пользователи из IP сетей 10.0.1.0/24 и 10.0.2.0/24 всегда будут иметь возможность обмениваться трафиком между собой, а также с сетью Интернет потому, что мы вбросили default маршрут в сеть OSPF.

Ссылки:

З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !

З.Ы.Ы. Очепятки возможны. Если вы заметили неточность или у вас есть вопросы по данной схеме, то вы можете написать об этом на нашем форуме с соответствующем разделе.

Автор: Николаев Дмитрий (virus (at) subnets.ru)
Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 8, среднее: 4,75 из 5)
Загрузка...
Отправить на почту Отправить на почту

В продолжении статьи Backup конфига Cisco на FTP, не забудем про Juniper.

Допустим что:

192.168.1.3 — IP-адрес Juniper
192.168.1.254 — IP-адрес backup сервера

Приступим:

Для начала на наш FreeBSD backup сервер нужно установить порт, но не тот, что и в случае с циской:

cd /usr/ports/net/p5-Net-Telnet
make install clean

После того как порт установился напишем небольшой perl скрипт:

#!/usr/bin/perl

use Net::Telnet ();

@c=("192.168.1.3");  #Массив с IP-адресами того что будем бекапить
@cn=("juniper.conf");  #Как будет называться конфиг после бекапа
@login=("backup");      #Логин на оборудование
@pass=("passwd");       #Пароль

$ftp="192.168.1.254";
$ftpuser="juniper-backup";      #Логин к FTP
$ftpass="ftpPasswd";           #Пароль к FTP

$maindir="/backup/juniper";     #Папка доступная по FTP

#Определяем папки в $maindir в формате ГОД/МЕСЯЦ/ДЕНЬ/ЧАС куда будет перемещен конфиг после закачки его на FTP
$dir="$maindir/inet";
$backup_dir=`date +"%Y/%m/%d/%H"`;
chomp($backup_dir);
$backup_dir="$dir/$backup_dir";

#Проверяем наличие директории куда будет складываться backup и
#Создаем директорию если её не существует
opendir(D,$backup_dir) or `/bin/mkdir -p $backup_dir`;
closedir D;

#Цикл по массиву с IP-адресами железок
for ($i=0;$i<=$#c;$i++){
        my $h=sprintf("%s",$c[$i]);
        my $conf=sprintf("%s",$cn[$i]);
        my $user=sprintf("%s",$login[$i]);
        my $pas=sprintf("%s",$pass[$i]);

        #Устанавливаем соединение с железкой и ловим строку приглашения
        #ВНИМАНИЕ !!! Ваша строка приглашения может отличаться !!!
        #Все зависит от имени железки, то которое вы ей задали, и логина с которым вы туда стучитесь
        $ses = new Net::Telnet (Timeout => 10,
                        Prompt => '/backup\\@juniper. $/');

        if ($ses->open($h)) {
                #Если соединение установлено
                $ses->login($user, $pas);
                @lines = $ses->cmd("configure");
                my $bcmd=sprintf("save ftp://%s:%s\@%s/%s",$ftpuser,$ftpass,$ftp,$conf);
                #Отправляем команды на backup
                @lines1 = $ses->cmd($bcmd);

        }else{
                warn "Can't: " . $ses->errmsg;
        }
         $ses->close;
        `/bin/sleep 3`;
        #Перемещаем закаченный на FTP конфиг в backup директорию
        #как итог она будет: /backup/cisco/inet/ГОД/МЕСЯЦ/ДЕНЬ/ЧАС
        system(sprintf("/bin/mv %s/%s %s",$maindir,$conf,$backup_dir));
}

Сохраняем наш скрипт, например как backup-juniper.pl

Делаем его запускаемым:

chmod a+x backup-juniper.pl

Вот и все. Осталось проверить его работу запустив руками, а затем, если все нормально, добавить его в crontab:

0 2 * * * root /backup/juniper/backup-juniper.pl

Что означает, что каждый день в 2:00 будет запускаться наш скрипт который сохранит конфиги Juniper в директории /backup/juniper/inet/ГОД/МЕСЯЦ/ДЕНЬ/ЧАС

Удачного вам бекапа !

Ссылки:

З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !

Авторы: Николаев Дмитрий (virus (at) subnets.ru) и Панфилов Алексей (lehis (at) subnets.ru)
Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 2, среднее: 3,00 из 5)
Загрузка...
Отправить на почту Отправить на почту

У Вас развелось много «железа» ?

Вы хотите, чтобы конфиги складывались на backup сервер автоматом ?

Это дело хорошее. Расскажу вам как это сделать один раз, в автоматическом режиме и забыть волнения по поводу «а если что упадет?».

Упадет — возьмете новую железку, зальете сохраненный конфиг и вперед !

Допустим что:

192.168.1.1 — IP-адрес cisco catalyst 2950 или cisco catalyst 2960
192.168.1.2 — IP-адрес cisco catalyst 3560G или любая другая циска 🙂
192.168.1.254 — IP-адрес backup сервера

Приступим:

Первый способ.

Для начала на наш FreeBSD backup сервер нужно установить порт:

cd /usr/ports/net-mgmt/p5-Telnet-Cisco
make install clean

После того как порт установился напишем небольшой perl скрипт:

#!/usr/bin/perl

use Net::Telnet::Cisco;

@c=("192.168.1.1","192.168.1.2");  #Массив с IP-адресами того что будем бекапить
@cn=("c2950.conf","c3560.conf");  #Как будет называться конфиг после бекапа
@login=("login","login");                 #Логин на оборудование
@pass=("c2950-passwd","c3560-passwd");       #Пароль
@passen=("en_passwd","en_passwd");             #Пароль на enable режим

$ftp="192.168.1.254";
$ftpuser="cisco-backup";      #Логин к FTP
$ftpass="ftpPasswd";           #Пароль к FTP

$maindir="/backup/cisco";     #Папка доступная по FTP

#Определяем папки в $maindir в формате ГОД/МЕСЯЦ/ДЕНЬ/ЧАС куда будет перемещен конфиг после закачки его на FTP
$dir="$maindir/inet";
$backup_dir=`date +"%Y/%m/%d/%H"`;
chomp($backup_dir);
$backup_dir="$dir/$backup_dir";

#Проверяем наличие директории куда будет складываться backup и
#Создаем директорию если её не существует
opendir(D,$backup_dir) or `/bin/mkdir -p $backup_dir`;
closedir D;

#Цикл по массиву с IP-адресами железок
for ($i=0;$i<=$#c;$i++){
        my $h=sprintf("%s",$c[$i]);
        my $conf=sprintf("%s",$cn[$i]);
        my $user=sprintf("%s",$login[$i]);
        my $pas=sprintf("%s",$pass[$i]);
        my $pasen=sprintf("%s",$passen[$i]);

        #Устанавливаем соединение с железкой
        my $session = Net::Telnet::Cisco->new(Host => $h);
        $session->login($user, $pas);
        # Enable mode
        if ($session->enable($pasen)) {
                #Если соединение установлено, то переходим в enable
                $session->errmode("return");
                my $bcmd=sprintf("copy startup-config ftp://%s:%s@%s",$ftpuser,$ftpass,$ftp);
                #Отправляем команды на backup
                my @output = $session->cmd('$bcmd');
                my @output1 = $session->cmd($ftp);
                my @output2 = $session->cmd("$conf");
        }else{
                warn "Can't enable: " . $session->errmsg;
        }
        $session->close;
        `/bin/sleep 3`;
        #Перемещаем закаченный на FTP конфиг в backup директорию
        #как итог она будет: /backup/cisco/inet/ГОД/МЕСЯЦ/ДЕНЬ/ЧАС
        system(sprintf("/bin/mv %s/%s %s",$maindir,$conf,$backup_dir));
}

Сохраняем наш скрипт, например как backup-cisco.pl

Делаем его запускаемым:

chmod a+x backup-cisco.pl

Вот и все. Осталось проверить его работу запустив руками, а затем, если все нормально, добавить его в crontab:

40 2 * * * root /backup/cisco/backup-cisco.pl

Что означает, что каждый день в 2:40 будет запускаться наш скрипт который сохранит конфиги цисок в директории /backup/cisco/inet/ГОД/МЕСЯЦ/ДЕНЬ/ЧАС

Второй способ.

Этот способ основан на кронтабе в самой циске.


Switch> enable
Switch# configure terminal
Switch# kron policy-list backup
Switch(config-kron-policy)# cli copy startup-config ftp://192.168.1.254
Switch(config-kron-policy)# exit
Switch(config)# ip ftp username cisco-backup
Switch(config)# ip ftp password ftpPasswd
Switch(config)# file prompt quiet
Switch(config)# kron occurrence backup at 2:40 recurring
Switch(config)# exit
Switch# wri

Посмотреть текущие kron задания можно командой:

show kron schedule

Удачного вам бекапа !

Ссылки:

З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !

Авторы: Николаев Дмитрий (virus (at) subnets.ru) и Панфилов Алексей (lehis (at) subnets.ru)
Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 3, среднее: 5,00 из 5)
Загрузка...
Отправить на почту Отправить на почту