Ilya Evseev Posted December 2, 2011 Posted December 2, 2011 Имеется AS 1234 и сеть 1.2.3.0/24. Допустим, на один из IP-адресов (1.2.3.100) снаружи идёт мощный DDoS. Хочется, чтобы этот трафик резался на бордере магистрального оператора (AS 5678) и не забивал наш входящий канал. Для этих целей у магистрала есть community 666: We have all the common communities configured in our network (Local preference, prepends, blackhole) and you can use them. 5678:666 Don't announce to customers and peers, let upstreams blackhole it (only /32 accepted) На циске клиентская часть настраивалась бы так: route-map BGP-BLACKHOLE permit 5 match tag 666 set community 5678:666 additive ! router bgp YYY redistribute static route-map BGP-BLACKHOLE neighbor <UPLINK> send-community ! ip route 192.168.66.6 255.255.255.255 Null0 tag 666 Взято отсюда: http://habrahabr.ru/blogs/infosecurity/91574/ Проблема в том, что Quagga не поддерживает теги. Пытаюсь сделать так: router bgp 1234 bgp router-id 1.2.3.4 bgp log-neighbor-changes network 1.2.3.0/24 neighbor 5.6.7.8 remote-as 5678 neighbor 5.6.7.8 description Uplink1-BGP1 neighbor 5.6.7.8 interface eth0 neighbor 5.6.7.8 next-hop-self neighbor 5.6.7.8 distribute-list deny-any in neighbor 5.6.7.8 route-map uplink1-out out ! access-list deny-any deny any ! ip prefix-list blackhole1-list seq 1 permit 1.2.3.100/32 ip prefix-list blackhole1-list seq 9999 deny any ! route-map uplink1-out permit 10 match ip address prefix-list blackhole1-list set community 5678:666 ! route-map uplink1-out permit 100 Образец для подражания: http://forum.mikrotik.com/viewtopic.php?f=2&t=23390 Однако 1.2.3.100 продолжает пинговаться извне. Вопрос: что нужно исправить в настройках? Или всё верно и надо выяснять у магистрала, почему не blackhole не срабатывает? Вставить ник Quote
wtyd Posted December 2, 2011 Posted December 2, 2011 На самом роутере с кваггой есть этот самый маршрут /32, который анонсируется в апстрим ? sh ip bgp nei 5.6.7.8 adv | i 1.2.3.100 -- есть там анонс 1.2.3.100/32 ? Т.е. надо чтобы анонс этого префикса точно уходил в апстрим с указанными атрибутами (community). принимает ли ваш аптрим /32 ? На сколько я знаю, везде стоят фильтры и заанонсить префикс более специфичный чем /24 нельзя - не пропустят фильтры. Вставить ник Quote
s.lobanov Posted December 2, 2011 Posted December 2, 2011 принимает ли ваш аптрим /32 ? На сколько я знаю, везде стоят фильтры и заанонсить префикс более специфичный чем /24 нельзя - не пропустят фильтры. как бы only /32 accepted Вставить ник Quote
MMM Posted December 2, 2011 Posted December 2, 2011 Имеется AS 1234 и сеть 1.2.3.0/24. Допустим, на один из IP-адресов (1.2.3.100) снаружи идёт мощный DDoS. Хочется, чтобы этот трафик резался на бордере магистрального оператора (AS 5678) и не забивал наш входящий канал. Для этих целей у магистрала есть community 666: We have all the common communities configured in our network (Local preference, prepends, blackhole) and you can use them. 5678:666 Don't announce to customers and peers, let upstreams blackhole it (only /32 accepted) На циске клиентская часть настраивалась бы так: route-map BGP-BLACKHOLE permit 5 match tag 666 set community 5678:666 additive ! router bgp YYY redistribute static route-map BGP-BLACKHOLE neighbor <UPLINK> send-community ! ip route 192.168.66.6 255.255.255.255 Null0 tag 666 Взято отсюда: http://habrahabr.ru/blogs/infosecurity/91574/ Проблема в том, что Quagga не поддерживает теги. Пытаюсь сделать так: router bgp 1234 bgp router-id 1.2.3.4 bgp log-neighbor-changes network 1.2.3.0/24 neighbor 5.6.7.8 remote-as 5678 neighbor 5.6.7.8 description Uplink1-BGP1 neighbor 5.6.7.8 interface eth0 neighbor 5.6.7.8 next-hop-self neighbor 5.6.7.8 distribute-list deny-any in neighbor 5.6.7.8 route-map uplink1-out out ! access-list deny-any deny any ! ip prefix-list blackhole1-list seq 1 permit 1.2.3.100/32 ip prefix-list blackhole1-list seq 9999 deny any ! route-map uplink1-out permit 10 match ip address prefix-list blackhole1-list set community 5678:666 ! route-map uplink1-out permit 100 Образец для подражания: http://forum.mikrotik.com/viewtopic.php?f=2&t=23390 Однако 1.2.3.100 продолжает пинговаться извне. Вопрос: что нужно исправить в настройках? Или всё верно и надо выяснять у магистрала, почему не blackhole не срабатывает? в zebra сделайте маршрут ip ro 1.2.3.100 null0 Вставить ник Quote
wtyd Posted December 2, 2011 Posted December 2, 2011 принимает ли ваш аптрим /32 ? На сколько я знаю, везде стоят фильтры и заанонсить префикс более специфичный чем /24 нельзя - не пропустят фильтры. как бы only /32 accepted Вы не показали, если в ваших анонсах в сторону апстрима этот /32 префикс. Вставить ник Quote
Ilya Evseev Posted December 2, 2011 Author Posted December 2, 2011 Вы не показали, если в ваших анонсах в сторону апстрима этот /32 префикс. Т.е. router bgp 1234 network 1.2.3.0/24 недостаточно? Надо явно прописать сюда же "network 1.2.3.100/32"? UPD. Сделал так: conf t router bgp 1234 network 1.2.3.100/32 route-map blackhole exit route-map blackhole permit 10 set community 5678:666 <Ctrl+Z> ..но не помогло. Вставить ник Quote
vlad11 Posted December 2, 2011 Posted December 2, 2011 Вы не показали, если в ваших анонсах в сторону апстрима этот /32 префикс. +1 Вставить ник Quote
Ilya Evseev Posted December 4, 2011 Author Posted December 4, 2011 в zebra сделайте маршрут ip ro 1.2.3.100 null0 Насколько я понимаю, кроме него в bgp надо добавить "redistribute static", но тогда аплинку достанется список всех моих внутренних маршрутов. В примере для Циски на нужные маршруты вешается тег 666, но Quagga теги не поддерживает. Вы не показали, если в ваших анонсах в сторону апстрима этот /32 префикс. border-BGP# cl ip bgp * soft border-BGP# show ip bgp neighbors 5.6.7.8 advertised-routes BGP table version is 0, local router ID is 1.2.3.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, R Removed Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 1.2.3.0/24 5.6.7.8 0 32768 i *> 1.2.3.100/32 5.6.7.8 0 32768 i Total number of prefixes 2 border-BGP# Вставить ник Quote
ktoto Posted December 4, 2011 Posted December 4, 2011 (edited) Проблема в том, что Quagga не поддерживает теги. А если попробовать через простой acl: match ip address access_list Если верить мануалу то: match ip address prefix-list word относится к RIP route-map http://quagga.net/docs/docs-info.php#IDX145 Edited December 4, 2011 by ktoto Вставить ник Quote
Ilya Evseev Posted December 4, 2011 Author Posted December 4, 2011 А если попробовать через простой acl: match ip address access_list Где? Условием в "route-map blackhole"? Зачем, если этот route-map уже прикрепляется к "network 1.2.3.100/32"? Вставить ник Quote
wtyd Posted December 4, 2011 Posted December 4, 2011 А если попробовать через простой acl: match ip address access_list Где? Условием в "route-map blackhole"? Зачем, если этот route-map уже прикрепляется к "network 1.2.3.100/32"? 1. редистрибьютить статик в бгп, помечая маршруты комьюнити, по комьюнити фильтровать анонсы в пиров ? 2. редистрибьютить статик в бгп через acl ? (В случае если у вас совсем простая схема) Вставить ник Quote
nuclearcat Posted December 6, 2011 Posted December 6, 2011 Делюсь router bgp XXXXX bgp router-id Y.Y.Y>Z network MY.MY.MY.MY/19 redistribute static route-map BLACKHOLE neighbor Y.Y.Y.Y remote-as EEEEE neighbor Y.Y.Y.Y description PROBE neighbor Y.Y.Y.Y ebgp-multihop 8 neighbor Y.Y.Y.Y update-source Y.Y.Y.Z neighbor Y.Y.Y.Y soft-reconfiguration inbound neighbor Y.Y.Y.Y filter-list 1 in ! ip as-path access-list 1 deny .* ! route-map BLACKHOLE permit 10 description Level3 blackhole match ip address prefix-list BLACKHOLE set ip next-hop 127.0.0.1 set local-preference 10 set community XXXX:9999 additive ! line vty ! Скрипт для блокировки IP #!/bin/sh SEQ=`cat /tmp/blockseq` let SEQ+=1 echo -ne $SEQ >/tmp/blockseq echo $SEQ echo -ne "conf t\nip prefix-list BLACKHOLE seq $SEQ permit $1/32\nip route $1/32 Null0\nend\nclear ip bgp * soft\n"|vtysh echo -ne "wr m\n"|vtysh Вставить ник Quote
Ilya Evseev Posted December 7, 2011 Author Posted December 7, 2011 redistribute static route-map BLACKHOLE После "redistribute static" (даже без route-map) BGPd в "show ip bgp neighbor 5.6.7.8 adv" показывает только сети из "router bgp 1.2.3.4 / network ...". Того, что введено в Зебре и в Линуксе через "ip route ...", в этом списке нет. Зебра линуксовые маршруты видит. echo -ne "conf t\nip prefix-list BLACKHOLE seq $SEQ permit $1/32\nip route $1/32 Null0\nend\nclear ip bgp * soft\n"|vtysh Подразумевается, что zebra и bgpd сами разберутся, какая команда кому предназначена? Вставить ник Quote
wtyd Posted December 7, 2011 Posted December 7, 2011 redistribute static route-map BLACKHOLE После "redistribute static" (даже без route-map) BGPd в "show ip bgp neighbor 5.6.7.8 adv" показывает только сети из "router bgp 1.2.3.4 / network ...". Того, что введено в Зебре и в Линуксе через "ip route ...", в этом списке нет. Зебра линуксовые маршруты видит. echo -ne "conf t\nip prefix-list BLACKHOLE seq $SEQ permit $1/32\nip route $1/32 Null0\nend\nclear ip bgp * soft\n"|vtysh Подразумевается, что zebra и bgpd сами разберутся, какая команда кому предназначена? Версия quagga у вас последняя ? Подразумевается, что vtysh - это такая консолька, где все составляющие софтинкииз квагги рулятся одновременно из одного места. Там всё само куда надо пропишется. при сборке квагги vtysh надо включать, раньше так было, сейчас не знаю, руками не собираю давно. Процес сборки автоматизирован, давно не сморел чё внутри. Вставить ник Quote
Ilya Evseev Posted December 7, 2011 Author Posted December 7, 2011 Версия quagga у вас последняя ? 0.99.17-2+squeeze3 /usr/bin/vtysh имеется. Вставить ник Quote
vlad11 Posted December 7, 2011 Posted December 7, 2011 (edited) no auto-summary у вас и на 5.6.7.8 стоит? Edited December 7, 2011 by vlad11 Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.