Просмотр Исходного

h1. Что даёт

Позволяет настроить анонсирование IP адресов подсетями.

Появление крупных префиксов в реестре не будет приводить к зависаниям маршрутизаторов.

Для включения нужно:


Включить опцию menu \-> "Настройки алгоритма фильтрации" \-> "Синхронизировать IP-адреса подсетями"

Очистить конфиги quagga от маршрутов и перезаполнить их:

{code}
/etc/init.d/crond stop
killall events.sh
grep -v '^ip prefix-list' /etc/quagga/bgpd.conf > /etc/quagga/bgpd.conf.no_ip
cat /etc/quagga/bgpd.conf.no_ip > /etc/quagga/bgpd.conf
egrep -v '^(ip prefix-list|ip route)' /etc/quagga/zebra.conf > /etc/quagga/zebra.conf.no_ip
cat /etc/quagga/zebra.conf.no_ip > /etc/quagga/zebra.conf
/etc/init.d/zebra restart
/etc/init.d/bgpd restart
/etc/init.d/crond start
/usr/local/Reductor/bin/events.sh
{code}
h2. Хук events.sh

{code}
#!/bin/bash

commit() {
echo "wr m" | vtysh
}

# отправить на оборудование команду на блокирование ip адреса
ip_block_full_add() {
local ip="$1"
read SEQ < $TMPDIR/blockseq
SEQ=${SEQ:-0}
let SEQ+=5
echo $SEQ > $TMPDIR/blockseq
echo $SEQ
{
echo "conf t"
echo "ip prefix-list BLACKHOLE seq $SEQ permit $ip"
echo "ip route $ip Null0"
echo "end"
echo "clear ip bgp * soft"
} | vtysh
}

# отправить на оборудование команду на снятие блокировки ip адреса
ip_block_full_del() {
local ip="$1"
{
echo "conf t"
echo "no ip prefix-list BLACKHOLE permit $ip"
echo "no ip route $ip Null0"
echo "end"
echo "clear ip bgp * soft"
} | vtysh
}

# получить список заблокированных ip адресов
ip_block_full_get() {
echo -ne "show ip route static" | vtysh > $HOOKDIR/ip_route.txt
egrep -o "$ipmask_regex" $HOOKDIR/ip_route.txt | tee $HOOKDIR/ip.txt
}
{code}