Задача: обеспечить возможность автоматического переключения на резервный канал для целей доступа в интернет (в т.ч. и не http) и к ресурсам филиалов. В филиалах, аналогично, должна быть реализована возможность прозрачного переключения.
Планируется использовать:
Планируется использовать:
- для динамической маршрутизации в сети: OSPF (Cisco в качестве центральных элементов + Quagga на FreeBSD)
- для связи с филиалами - основной и резервный набор шифрованных каналов передачи на базе openvpn
- отказоустойчивость на уровне прокси протоколом CARP
- отказоустойчивость на уровне шлюза по умолчанию протоколом VVRP (альтернатива - попробовать использование метрик на интерфейсы в routed, либо в OSPF -?)
- центральный элемент в СПб - Cisco 3825
Ссылки:
- установка quagga на фре: http://muff.kiev.ua/content/quagga-prevrashchenie-servera-v-polnofunktsionalnyi-marshrutizator
- несколько каналов для openvpn: http://openmaniak.com/openvpn_routing.ph
- использование vvrp на cisco: http://xgu.ru/wiki/VRRP_%D0%B2_Cisco
- кусок статьи на лиссяре (там же скрипт с перецеплением в ipfw): http://forum.lissyara.su/viewtopic.php?f=4&t=4192&sid=27d29b13b83aab40d73eb8b538c841bf&start=25#p34031
- кратко о настройке ospf в cisco: http://www.oszone.net/13904/OSPF_Cisco
- шпора по OSPF: http://www.qinet.ru/2010/09/301/
Ход настройки
Организуем два постоянных канала из филиалов до СПб
- Копируем все конфиги и сертификаты с FTP02 на 9GATE, режем права
- (?) На всякий случай ремим в конфигах ccd строки с добавлением маршрута к 10.1.х.х. - пока решение менять маршруты с сетей до узлов в парах на ftp01 и 9gate (т.е. вместо 10.1.0.0 сделать 10.1.0.112/113, а вместо 10.15.0.0 - 10.15.0.1)
- На удаленных машинах копируем /usr/local/etc/rc.d/openvpn в /usr/local/etc/rc.d/openvpn_reserv (для запуска отдельного демона с отдельным pid)
- Прописываем в /etc/rc.conf
openvpn_reserv_enabled="YES"
- копируем конфиг /usr/local/etc/openvpn/openvpn.conf в /usr/local/etc/openvpn/openvpn_reserv.conf
- в openvpn_conf строку "remote 84.204.30.83" на конструкцию (для смены входящего/исходящего портов и организации отдельного лога):
remote 89.175.253.74 1195
port 1195
log-append /var/log/openvpn_reserv.log
- меняем интерфейсы tun на tap (? - а то не ходит маршрутизация без этого) для включения tap device пишем в /boot/loader.conf строку if_tap_load="YES"
Настраиваем маршрутизацию OSPF в СПб между Cisco3825, 9gate и FTP02, а также филиальными серверами
1. Настройка Quagga (FTP02, 9gate, филиальные сервера)
Настройка аналогично статье (1)
- устанавливаем quagga (все галки кроме NO_BGP_ANNOUNCE сняты)
- добавляем записи в rc.conf
quagga_enable="YES"
quagga_daemons="zebra ospfd"
watchquagga_enable="YES"
watchquagga_flags="-dz -R '/usr/local/sbin/zebra -d; /usr/local/sbin/ospfd -d;' zebra ospfd"
- создаем каталоги и файлы, задаем права
touch /usr/local/etc/quagga/zebra.conf
touch /usr/local/etc/quagga/ospfd.conf
chmod 600 /usr/local/etc/quagga/*
chown -R quagga:quagga /usr/local/etc/quagga
mkdir /var/log/quagga
chown quagga:quagga /var/log/quagga
- прописываем пользователей в ospfd.conf и zebra.conf (7Н, 28)
password pass1
enable password pass2
- запускаем демон quagga /usr/local/etc/rc.d/quagga restart
- конфигурим демон zebra
telnet localhost zebra
enable
configure terminal
hostname zebra-router
zebra-router(config)# service password-encryption
zebra-router(config)# log stdout
zebra-router(config)# log file /var/log/quagga/zebra.log
zebra-router(config)# exitzebra-router# write memory
- конфигурим демон ospfd
telnet localhost ospfd
enable
configure terminal
hostname ospfd-router1
service password-encryption
log stdout
log file /var/log/quagga/ospfd.log
router ospf
ospf router-id 10.1.0.112
redistribute connected # анонс подключенных сетей
redistribute static # анонс статических маршрутов
network 10.1.0.0/16 area 0.0.0.0 # родная сеть
network 10.2.0.0/24 area 0.0.0.0 # vpn1 (для филиалов)
network 10.3.0.0/24 area 0.0.0.0 # сеть vpn2
default-information originate always # - только на 10.1.0.113 и 112
exit
interface vlan1
description Internal_interface
ip ospf cost 100
ip ospf hello-interval 8
ip ospf dead-interval 24
ip ospf retransmit-interval 4
exit
exit
write memory
примечание:
анонс шлюза по умолчанию на 10.1.0.112 и 10.1.0.113: default-information originate always
cost для ftp02 (8 Мбит/сек) будет 100 000 000 / 8 000 000 = 12
cost для 9gate (1 Мбит/сек) будет 100 000 000 / 1 000 000 = 100
cost для ftp02 (8 Мбит/сек) будет 100 000 000 / 8 000 000 = 12
cost для 9gate (1 Мбит/сек) будет 100 000 000 / 1 000 000 = 100
- ПРОВЕРЯЕМ OSPF:
- show ip ospf neighbor - соседи
- show ip ospf database - база
2. Настраиваем роутер Cisco на работу ospf
- Запускаем возможность маршрутизации: вход -> enable -> conf t -> ip routing
- запускаем OSPF на интерфейсе 0/0
- int gi0/0
- router ospf 1111
- network 10.1.0.0 0.0.255.255 area 0
Вопросы к проработке:
аутентификация OSPF - стр 43 мана http://www.nongnu.org/quagga/docs/quagga.pdf
метрика на шлюзах по умолчанию
метрика на шлюзах по умолчанию
Спасибо за статью. Очень полезная штука - настраивал под Ubuntu (http://sysadm.pp.ua/linux/carp-ubuntu.html) кластер из трех серверов - до сих пор на проде работает. Не подскажите, если ли возможность(технология) для geodistributed redundent IP, может сталкивались ? Заранее спасибо.
ОтветитьУдалить