Вы просматриваете старую версию данной страницы. Смотрите текущую версию.
Сравнить с текущим |
просмотр истории страницы
Что даёт
Позволяет настроить анонсирование IP адресов подсетями.
Появление крупных префиксов в реестре не будет приводить к зависаниям маршрутизаторов.
Для включения нужно:
Заменить хук приведённым ниже примером, с поддержкой подсетей.
Включить опцию menu -> "Настройки алгоритма фильтрации" -> "Синхронизировать IP-адреса подсетями"
Очистить конфиги quagga от маршрутов и перезаполнить их:
/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
Хук events.sh
#!/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 }