воскресенье, 10 апреля 2016 г.

Бродильный шкаф

Всем привет! Как выяснилось за все прошедшее время - блоггер из меня так себе. Поэтому пишу я редко и в основном всякие глупости) И сегодня я решил рассказать о том, как пробую делать пиво. А пиво я люблю. Докатился до этой идеи благодаря моему коллеге-связисту Ивану, который последний год активно занимается пивоварением. Идея получить пиво созданное своими руками мне приходила в голову не первый раз, но первый раз она доведена до определенного результата. Не вдаваясь в матчасть необходимо сказать, что одним из основных процессов в приготовлении пенного напитка является его брожение, а брожению этому необходима определенная температура. Все это приводит к тому - что для приготовления пива нам нужно иметь место со стабильной температурой, которую можно контролировать. Разные дрожжи могут работать при разных температурах, первые, что попались мне, требовали (в идеале) температуры в 18-21 градус. После беглого гугления я остановился на схеме - термоизолированный шкаф + бутылки со льдом. На балконе я нашел вот такой шкафчик: IMG 4117
Для того чтобы его изолировать я выбрал простой и дешевый материал - пенопласт. После нескольких дней получился такой результат, который показался мне достаточным для первой пробной партии: A699E694 621C 4E1D 9173 74E3A3A54BFE
В итоге в этом шкафу было сброжено две небольшие партии по 8 литров: IMG 4219 Но, конечно, ни о какой стабильности температуры в данном решении речи быть не могло + ежедневное закидывание бутылок со льдом порядком надоедало. И я решил пойти дальше. Мне нужен был какой-то модуль, способный охлаждать небольшой объем шкафа градусов на 10 от температуры окружающей среды, быть дешевым, тихим. После изучения рынка был выбран модуль Пельтье. Для простоты (как мне тогда казалось) я выбрал не DIY вариант, а готовый - автохолодильник. Мне не хотелось пилить шкаф (он не мой, квартира съемная), поэтому для начала я попробовал разместить модуль в середине, сделав перегородку из пенопласта: IMG 4584
Эффективность оказалось отрицательной)) Стало очевидно, что требуется более грамотное расположение модуля, а это "крышка" шкафа. Тут нужно отметить, что человек я криворукий и опыта с инструментом у меня никакого нет (как нет и инструмента), но выбора не было, и у меня появился новый друг - лобзик Вихрь! После борьбы с электроинструментом я вырезал не слишком ровное отверстие, в которое достаточно плотно вставал мой холодильник: Снимок экрана 2016 04 10 в 23 22 27
На тот момент мне казалось, что осталось прикрутить автоматику - и все готово. Первоначально я хотел использовать управляемые ардуино реле, но опять, в силу не самых прямых рук, я попробовал найти более приятное решение. Так в моем шкафу появился терморегулятор Digitop. В паре со шкафом они давали мне стабильность примерно в 1,5 градуса, при эффективности ~12 градусов ниже окружающей температурs. 110EEB57 F09D 40BB 9E2B 96F3126AC4BD
Тут всплыл один неприятный момент - шум. В текущем варианте турбинные кулеры холодильника были эффективны, но спать мешали (а шкаф стоит в моей комнате). И я решил поменять их на компьютерные. Сначала хотел поменять только верхний на большего размера, тупо прикрутив его на радиатор. IMG 4646
Но он не справился. Эффективность охлаждения сильно упала, после многочисленных экспериментов была собрана схема с двумя кулерами, которая давала эффективность градусов в 10 - этого было достаточно. Шум при этом, конечно, все-равно больше чем мне хотелось бы, но пока я решил погонять шкаф в таком режиме.
IMG 4793
Далее был заменен нижний кулер (так случилось, что он оказался с подсветкой :) ) + еще немного уменьшен размер камеры. IMG 4768
Вот и все) Уже 7 дней прошло с момента как я поставил пиво, с нетерпением жду результата. Думаю, что через пару дней уже разолью все по бутылкам на карбонизацию. Вообще уже появилось пару идей по доработке решения, возможно напишу об этом в другой раз. Или нет =) Спасибо всем, кто дочитал)

суббота, 3 августа 2013 г.

Обновление junos на Juniper MX80

 Привет,  читатель.

 Столкнулся тут с проблемкой при обновление MX80, возможно этот пост кого-то спасет от моей глупой ошибки. Предыстория в том, что у меня есть MX80, используемый в качестве bras для небольшой смешанной сети (b2c, b2b). Проблема в том, что все необходимые мне вещи заработали в subscriber manager mx80 относительно недавно, поэтому прошивка установлена последняя на момент запуска сервиса. Обернулось это крайне нестабильной работой железки, от периодически отваливающегося snmp до kernel crash. После общения с tac решено было обновить софт и сделать некоторые изменения конфигурации. Вообще процедура обновления junos до сегодняшнего дня никогда не вызывала у меня проблем, все проходило штатно с минимальным даунтаймом, но сегодня все пошло не так..

 Первым делом я залил дистрибутив на коробку, и дождавшись наименьшей нагрузки, запустил процесс обновления.  Так как процесс валидации и установки занимает некоторое время, я спокойно занялся другими делами, листая почту и изредка поглядывая в Zoc на консоль. Через некоторое время железка отвалилась и я стал ждать окончания установки, и возобновление пинга, но ожидание ни к чему не привело.. Сдвинув брови, я открыл локальную консоль (Спасибо тебе MOXA) и увидел приглашение логина в бэкапный образ junos с чистым конфигом… Ок. Времени на панику не было, нужно было быстро восстановить сервис для абонентов. После двух ребутов удалось загрузить рабочую конфигурацию старой программы и я стал разбираться в причинах произошедшего. Изучение лог-файлов выявило, что система не смогла установиться из-за небольшого кол-ва свободного места в каталоге /var. Почему junos не проверяет данное условие перед началом установки, мне не понятно( Но решение проблемы очень простое - 

request system storage cleanup


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

В общем теперь работаю на Junos [11.4X27.51]. Надеюсь это поможет избавиться от проблем со стабильностью. Во всем остальном брас-функционал на MX80 ведет себя очень хорошо и оставляет крайне положительное впечатление.

суббота, 27 июля 2013 г.

Обновление прошивки на Juniper ERX1440


Пришло время мне обновить своего динозаврика Juniper ERX1440. Прошивка там стояла весьма древняя и определенные глюки присутствовали. Если кто не знает, ERX-серия работает не под привычным всем JUNOS, а под совершенно другой операционной системе JUNOSe. Получилась такая ерунда из-за того, что изначально E-серия является разработкой не компании Juniper, а компании Unisphere Networks, которую та приобрела в 2002 году. В целом данная ОС намного больше похожа на продукт Cisco, а не на продукт Juniper. Теперь к делу. Последняя версию JUNOSe, которую удалось достать - 11.3.0. Ее и будем ставить, за неимением ничего современнее. Год выпуска софта - 2010ый (против 2008 у стоящей на моем 8.3). Распаковываем архив и смотрим, что там у нас внутри:
iMac-Eugene:11-3-0 jaz$ ls | more
atmIoaFpgas.cmp
atmhyb.exe
atmhybBoot.cmp
atmhybBoot.hex
atmhybDiag.cmp
atmhybFpgas.cmp
atmhybStartup.bin
atmhybStartup.exe
atmhybStartup.hex
atmhybTechSupport.cmd
... и тд

Что с этим всем делать - не совсем понятно. Куча файлов для всех моделей E-серии вперемешку. Смотрим доки..:
Obtain the required information for the installation.
For routers that are currently operating, divert network traffic to another router.
Access the Privileged Exec CLI command mode.
Configure IP on an interface.
Copy the release files on the network host.
Configure access to the network host.
Enable the FTP server on the router.
Identify the files to transfer.
Transfer the files to the user space on the router.
Install the software release file to the system space on the router.
Save the current configuration.
Reboot the system.

Хм.. ну начнем. Если без лишних подробностей, то в первую очередь, нам необходимо понять какие из файлов необходимо залить на роутер. Сделать это можно открыв файл с расширением .rel. Их там несколько для разных платформ:
E120 and E320 - e320_x-y-z.rel
ERX1440 - erx40_x-y-z.rel
ERX310 - erx310_x-y-z.rel
All other E Series routers - erx_x-y-z.rel

В моем случае - erx40_11-3-0.rel

В нем нас интересует две секции - "Imagelist;" и "SplitImages;". Все файлы, которые там перечислены + сам .rel и нужно скопировать на роутер. Как это сделать? походу единственный вариант использовать фтп. Подружить роутер с tftp у меня никак не получалось. Возможно просто 8ая версия еще этого и не умеет или я криворукий. Ну да ладно. Включаем фтп:

ERX(config)#ftp-server enable
Теперь мы можем соединиться удобным клиентом и залить отобранные файлы прошивки. Хочу заметить, что заливать файлы можно только в каталог incoming.
На данном этапе (или раньше) необходимо перекинуть всех клиентов на другой брас по-возможности. Я всех вывел на Juniper MX80, поэтому действовал абсолютно спокойно :)
Когда файлы залиты, бэкапим конфигурацию
ERX#copy startup-configuration conf2013-08-27.cnf
Please wait...
ERX#

Теперь нужно сделать образ:
ERX#copy /incoming/erx40_11-3-0.rel erx40_11-3-0.rel
Please wait...
************************************************** (DONE)

Этот процесс займет некоторое время, по итогу мы получим на диске образ для загрузки роутера.
ERX#dir
Please wait...
disk0:erx40_8-2-3p0-3.rel 195090332 192929322 06/23/2008 16:23:46 !
disk0:erx40_11-3-0.rel 243243273 241082263 07/27/2013 02:29:28

И остается только указать новый образ для загрузки и перезагрузить машинку.
ERX(config)#boot system erx40_11-3-0.rel
Please wait............................
WARNING: It is recommended that you copy the current running-configuration to a
file prior to running with a different release of software.

ERX(config)#
ERX#reload
WARNING: This command will cause the system to reboot.
Proceed with reload? [confirm]

Для меня была не совсем прозрачна процедура выбора файлов из общей массы, а целиком все на роутер не влезало, поэтому решил задокументировать этот процесс, может кому-нибудь пригодиться :)

вторник, 23 апреля 2013 г.

Шейпинг на l2 порту Cisco 6500


Потребовалось пошейпить трафик в обе стороны на switchport шеститонника. Проблема в том, что на switchport нельзя повесить service-policy output, поэтому приходиться хитрить.
1. Создаем полиси policy-map SHAPE
class class-default
police cir 300000000 bc 32000000 be 32000000 conform-action transmit exceed-action drop violate-action drop
2. Вешаем полиси на input interface GigabitEthernet1/47
service-policy input SHAPE
3. Создаем l3-интерфейс с вланчиком, который летит в наш порт и вешаем политику на input: ! interface Vlan653
no ip address
service-policy input SHAPE
end
4. Теперь проверяем чтоб qos были включены + на транке откуда прилетает наш вланчик добавляем: mls qos vlan-based 5. Проверяем, что всё работает: #show policy-map interface vlan 653

Vlan653

Service-policy input: SHAPE

class-map: class-default (match-any)
Match: any
police :
300000000 bps 32000000 limit 32000000 extended limit
Earl in slot 5 :
3771936528943 bytes
5 minute offered rate 283247080 bps
aggregate-forwarded 3747038908879 bytes action: transmit
exceeded 24897620064 bytes action: drop
aggregate-forward 286703272 bps exceed 0 bps
#show policy-map interface gi 1/47

GigabitEthernet1/47

Service-policy input: SHAPE

class-map: class-default (match-any)
Match: any
police :
300000000 bps 32000000 limit 32000000 extended limit
Earl in slot 5 :
2208135383077 bytes
5 minute offered rate 165921568 bps
aggregate-forwarded 2207103127587 bytes action: transmit
exceeded 1032255490 bytes action: drop
aggregate-forward 164271736 bps exceed 0 bps
Трафик шейпится, все довольны. Сходу данное решение не нашел, может пригодиться кому-нибудь. :)

четверг, 11 августа 2011 г.

VNC в opensuse 11.4

Много времени потратил на решение данного бага - когда соединяешься по vnc экран периодически становится черным - работать невозможно.
Лечение:
- Отключаем эффекты рабочего стола
- Меняем тему оформления (после того как нажмете применить, можно вернуть старую тему)
- Меняем тему курсоров (аналогично)
- Отключаем автоматическое включение хранителя экрана.
- Рестартим иксы
- Профит.

После можно и эффекты вернуть, vnc продолжает работать нормально.

Вообще 11.4 ооочень глючная. не рекомендую ставить. было бы лишнее время - откатился бы на 11.3.

среда, 22 декабря 2010 г.

Учет трафика с помощью netflow/sflow

  Когда речь заходит о статистике использования сети, в первую очередь в голову приходит netflow/sflow. Что это такое лучше прочитать в вики, а я расскажу, как быстро и без усилий все это дело настроить. Допустим, у нас есть несколько офисов, с которых мы будем забирать потоки sflow. Для начала настроим коллектор nfdump:

$wget http://sourceforge.net/projects/nfdump/files/stable/nfdump-1.6.2/nfdump-1.6.2.tar.gz/download
$tar -xvzf nfdump-1.6.2.tar.gz
$cd nfdump-1.6.2
$./configure --enable-nfprofile
$make
#make install


Еще можно установить nfsen, он умеет рисовать графики и предоставляет веб-интерфейс для запросов nfdump, но мне он не очень понравился, поэтому рекомендовать не буду. Впринципе коллектор уже готов к работе, можно запустить, и перейти к настройке роутеров. Сделать это можно двумя способами: заставив слушать один порт и сортировать потоки по ip маршрутизатора, либо запустив по копии программы на каждый роутер с отдельным портами.
Первый вариант:

#sfcapd -w -D -p 9991 -n office1,192.168.0.1,/usr/sflow/office1 -n office2,192.168.1.1,/usr/sflow/office2 -n office3,192.168.2.1,/usr/sflow/office3 -S 1

Коротко об опциях (подробно в мане):
-p 9991 - порт
-D - устанавливает режим демона
-S 1 - задает иерархию каталогов:
0 default no hierarchy levels
1 %Y/%m/%d year/month/day
2 %Y/%m/%d/%H year/month/day/hour
3 %Y/%W/%u year/week_of_year/day_of_week
4 %Y/%W/%u/%H year/week_of_year/day_of_week/hour
5 %Y/%j year/day-of-year
6 %Y/%j/%H year/day-of-year/hour
7 %Y-%m-%d year-month-day
8 %Y-%m-%d/%H year-month-day/hour
-n office1,192.168.0.1,/usr/sflow/office1 - название роутера,ip,каталог куда будет складываться статистика

И второй вариант:

#sfcapd -w -D -p 9991 -S 1 -l /usr/sflow/office1
#sfcapd -w -D -p 9992 -S 1 -l /usr/sflow/office2
#sfcapd -w -D -p 9993 -S 1 -l /usr/sflow/office3


Коллектор запущен, теперь перейдем к настройкам агентов, в моем случае это радиомаршрутизаторы Infinet:

>ipstat enable full detail 3000
>sflowagent addinstance "ipstat"
>sflowagent -rawheader=on -collector=192.168.0.2:9991
>sflowagent start


На cisco это будет выглядеть примерно так:

Office1#conf t
Office1(config)#int Fa 0/0
Office1(config-if)#ip route-cache flow input
Office1(config-if)#int Fa 0/1
Office1(config-if)#ip route-cache flow input
Office1(config)#ip flow-export source FastEthernet0/0
Office1(config)#ip flow-export source FastEthernet0/1
Office1(config)#ip flow-export version 5
Office1(config)#ip flow-export destination 192.168.0.2 9991


И в качестве коллектора у нас уже будет nfcapd, а не sfcapd (ибо netflow, а не sflow)
Настраиваем аналогично все устройства и готово - статистика собирается в файлы:

$cd /usr/sflow/office1/2010/12/20
$ls nfcapd.201012200000 nfcapd.201012200125 nfcapd.201012200250 nfcapd.201012200415 и тд...


Для удобного просмотра статистики используется nfdump (примеры работы с ним можно найти на официальном сайте), например можно написать такой скрипт, который будет выводить статистику за сутки по конкретному офису и ip:

#!/bin/bash
# (C) 2010 Eugene Nikiforov
office=$1
day=$2
month=$3
year=$4
ip=$5
usage()
{
cat << EOF
Если дата не будет задана, то выводится за текущее число.
При просмотре детализации статистики по ip-адресу, указывать дату ОБЯЗАТЕЛЬНО!
Использование: $0 [офис] [число] [месяц] [год] [IP]
Примеры:
Просмотр данных по всем адресам за 21.12.2010
$0 office1 21 12 2010
Просмотр по адресу 192.168.55.101
$0 office2 21 12 2010 192.168.1.10
EOF
}
if [ "$day" = "" ]; then
day=`date +%d`
fi

if [ "$month" = "" ]; then
month=`date +%m`
fi

if [ "$year" = "" ]; then
year=`date +%Y`
fi

case $office in
office1)
network="192.168.0.0/24"
;;
office2)
network="192.168.1.0/24"
;;
office3)
network="192.168.2.0/24"
;;
*)
usage
exit 0
esac

if [ "$ip" = "" ]; then
echo "Входящий трафик:"
nfdump -R /usr/sflow/$office/$year/$month/$day/ -n 0 -A dstip -s record/bytes -o fmt:"%da %byt" "dst net $network"
echo ""
echo ""
echo "Исходящий трафик:"
nfdump -R /usr/sflow/$office/$year/$month/$day/ -n 0 -A srcip -s record/bytes -o fmt:"%sa %byt" "src net $network"
else
echo "Входящий трафик:"
nfdump -R /usr/sflow/$office/$year/$month/$day/ -n 30 -A srcip -s record/bytes -o fmt:"%sa %byt" "dst ip $ip"
echo ""
echo ""
echo "Исходящий трафик:"
nfdump -R /usr/sflow/$office/$year/$month/$day/ -n 30 -A dstip -s record/bytes -o fmt:"%da %byt" "src ip $ip"
fi


$ bill office1
Входящий трафик:
Aggregated flows 3
Top 30 flows ordered by bytes:
Dst IP Addr Bytes
192.168.0.6 23405
192.168.0.255 406
192.168.0.1 24

Summary: total flows: 122, total bytes: 23835, total packets: 242, avg bps: 321, avg pps: 0, avg bpp: 98
Time window: 2010-12-23 00:00:03 - 2010-12-23 00:09:56
Total flows processed: 322, Blocks skipped: 0, Bytes read: 19376
Sys: 0.004s flows/second: 78060.6 Wall: 0.001s flows/second: 200124.3


Исходящий трафик:
Aggregated flows 2
Top 30 flows ordered by bytes:
Src IP Addr Bytes
192.168.0.6 24231
192.168.0.1 168

Summary: total flows: 204, total bytes: 24399, total packets: 422, avg bps: 329, avg pps: 0, avg bpp: 57
Time window: 2010-12-23 00:00:08 - 2010-12-23 00:09:59
Total flows processed: 322, Blocks skipped: 0, Bytes read: 19376
Sys: 0.004s flows/second: 79703.0 Wall: 0.000s flows/second: 899441.3


Как-то так в этот раз..)

пятница, 26 ноября 2010 г.

DHCP. Простая настройка на маршрутизаторах Cisco.

“DHCP (англ. Dynamic Host Configuration Protocol — протокол динамической конфигурации узла) — это сетевой протокол, позволяющий компьютерам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети TCP/IP.” (c) wiki

Из названия понятно, что dhcp делает за нас грязную работу по конфигурированию адресов на компьютерах и других подключенных к сети устройствах. Зачем это может понадобится? Например, если вам нужно выдавать ip на сотни устройств и тп, причин можно назвать множество. DHCP использует клиент серверную архитектуру и udp-порты 67, 68 для сервера и клиента соответственно. Давайте рассмотрим как происходит получение адреса. Первым делом клиент посылает широковещательный запрос dhcp discover, получив его, сервер берет адрес из пула, проверяет его на занятость (arp или icmp запросом)  и отправляет предложение c ip-адресом и другими необходимыми параметрами (dhcp offer) клиенту. Надо заметить, что если в сети функционируют несколько серверов, то они оба ответят на запрос и выбор сервера будет зависеть от того, чье предложение придет первым. Далее клиент отправляет широковещательный ответ (dhcp request), с указанием выбранного сервера, на что он в свою очередь отправляет подтверждение (dhcp ask) и сетевое устройство настраивает свой интерфейс в соответствии с полученными параметрами. Все предельно просто. Для наглядности давайте рассмотрим заголовок dhcp:

dhcpheader

1. Opcode 8 бит, содержит либо BOOTREQUEST (запрос от клиента к серверу), либо BOOTREPLY (его ответ)
2. Hardware type 8 бит, тип аппаратного адреса (например ethernet, frame relay, infiniband и тд)
3. Hardware address length 8 бит, длина аппаратного адреса в байтах
4. Hop count 8 бит, счетчик хопов
5. Transaction ID 32 бита, идентификатор передачи, рандомно генерируется клиентом
6. Number of seconds, 16 бит, время в секундах с начала процедуры получения адреса
7. Flags 16 бит, поле для флагов dhcp
8. Client IP 32 бита, адрес клиента, если он его уже имеет
9. Your IP 32 бита, предлагаемый адрес
10. Server IP 32 бита, адрес сервера
11. Gateway IP 32 бита, адрес релея, если используется
12. Client Hardware Address 16 байт, мак клиента
13. Server host name 64 байта, хостнейм
14. Boot filename 128 байт
15. Options, переменной длины

Пример заголовка Discover с моего компьютера:

User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)
Bootstrap Protocol
    Message type: Boot Request (1)
    Hardware type: Ethernet
    Hardware address length: 6
    Hops: 0
    Transaction ID: 0xa3dd29d1
    Seconds elapsed: 0
    Bootp flags: 0x0000 (Unicast)
    Client IP address: 0.0.0.0 (0.0.0.0)
    Your (client) IP address: 0.0.0.0 (0.0.0.0)
    Next server IP address: 0.0.0.0 (0.0.0.0)
    Relay agent IP address: 0.0.0.0 (0.0.0.0)
    Client MAC address: QuantaCo_44:xx:xx (00:26:9e:44:xx:xx)
    Client hardware address padding: 00000000000000000000
    Server host name not given
    Boot file name not given
    Magic cookie: DHCP
    Option: (t=53,l=1) DHCP Message Type = DHCP Discover
    Option: (t=61,l=7) Client identifier
    Option: (t=12,l=14) Host Name = "EugeneNotebook"
    Option: (t=60,l=8) Vendor class identifier = "MSFT 5.0"
    Option: (t=55,l=12) Parameter Request List
    End Option
    Padding

С теорией все ясно, теперь перейдем к практике. Допустим у нас есть крупная сеть, состоящая из нескольких отделов, в которой необходимо настроить dhcp, из железа у нас будет четыре маршрутизатора, четыре свича и сотни рабочих станций. ip адрес директора необходимо привязать к мак адресу. Схема:



Заходим на главный маршрутизатор и настраиваем на нем адреса и dhcp:


Router> ena
Router#conf t
Router(config)#int fa 0/0
Router(config-if)#ip address 192.168.0.1 255.255.255.0
Router(config-if)#no shutdown
#теперь добавим исключения для dhcp
Router(config)#ip dhcp excluded-address 192.168.1.1
Router(config)#ip dhcp excluded-address 192.168.2.1
Router(config)#ip dhcp excluded-address 192.168.3.1
#создадим пул для отдела продаж
Router(config)#ip dhcp pool Managers
Router(dhcp-config)#network 192.168.1.0 255.255.255.0
Router(dhcp-config)#default-router 192.168.1.1
Router(dhcp-config)#dns-server 8.8.8.8
#аналогично для технического отдела
Router(dhcp-config)#ip dhcp pool admins
Router(dhcp-config)#network 192.168.2.0 255.255.255.0
Router(dhcp-config)#default-router 192.168.2.1
Router(dhcp-config)#dns-server 8.8.8.8
#и для дирекции
Router(dhcp-config)#ip dhcp pool dir
Router(dhcp-config)#network 192.168.3.0 255.255.255.0
Router(dhcp-config)#default-router 192.168.3.1
Router(dhcp-config)#dns-server 8.8.8.8
#Теперь добавим привязку для компьютера директора
Router(config-router)#ip dhcp pool direktor
Router(dhcp-config)#host 192.168.3.10 255.255.255.0
#01 перед мак-адресом означает, что компьютер работает по win32, в случае unix нужно писать 00
Router(dhcp-config)#client-identifier 010001.6486.67E1
Router(dhcp-config)#client-name direktor
#настроим rip
Router(config-if)#router rip
Router(config-router)#network 192.168.0.0
Router(config-router)#network 192.168.1.0
Router(config-router)#network 192.168.2.0
Router(config-router)#network 192.168.3.0
Router#copy run start
Destination filename [startup-config]?
Building configuration...
[OK]

Теперь настроим роутеры 1,2 и 3


Router>ena
Router#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#int fa 0/1
Router(config-if)#ip address 192.168.0.2 255.255.255.0
Router(config-if)#no shut
%LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up
Router(config-if)#router rip
Router(config-router)#network 192.168.1.0
Router(config-router)#network 192.168.0.0
Router(config-if)#int fa 0/0
Router(config-if)#ip address 192.168.1.1 255.255.255.0
#Заставляем пересылать широковещательные udp
Router(config-if)#ip helper-address 192.168.0.1
Router(config-if)#no shut
Router#copy run start
Destination filename [startup-config]?
Building configuration...
[OK]



Router>ena
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#int fa 0/1
Router(config-if)#ip address 192.168.0.3 255.255.255.0
Router(config-if)#no shut
%LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up
Router(config-if)#router rip
Router(config-router)#network 192.168.0.0
Router(config-router)#network 192.168.2.0
Router(config-router)#int fa 0/0
Router(config-if)#ip address 192.168.2.1 255.255.255.0
Router(config-if)#ip helper-address 192.168.0.1
Router(config-if)#no shut
Router#copy run start
Destination filename [startup-config]?
Building configuration...
[OK]



Router>ena
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#int fa 0/1
Router(config-if)#ip address 192.168.0.4 255.255.255.0
Router(config-if)#no shut
Router(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up
Router(config-if)#router rip
Router(config-router)#network 192.168.0.0
Router(config-router)#network 192.168.3.0
Router(config-router)#int fa 0/0
Router(config-if)#ip address 192.168.3.1 255.255.255.0
Router(config-if)#ip helper-address 192.168.0.1
Router(config-if)#no shut
Router(config-if)#
%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
Router#copy run start
Destination filename [startup-config]?
Building configuration...
[OK]


Давайте посмотрим, что у нас получилось:


Router#show ip dhcp binding
IP address Client-ID/ Lease expiration Type
Hardware address
192.168.1.2 0090.2143.A756 -- Automatic
192.168.1.3 0001.428C.1305 -- Automatic
192.168.1.4 0006.2A3D.323C -- Automatic
192.168.2.2 00E0.F792.990A -- Automatic
192.168.2.3 0060.5CC3.69C5 -- Automatic
192.168.2.4 0090.0C61.0AC6 -- Automatic
192.168.3.10 0001.6486.67E1 -- Automatic
192.168.3.4 000C.85A2.BA77 -- Automatic


Все работает, как и было задумано.