Сообщение Senturion » 09 сен 2018 16:52
вопрос по фильтрации маршрутов
есть бгп.
стоит задача принимать от соседа всё, кроме маршрута по умолчанию и наскольких сетей. отдавать хочу с тем же самым фильтром
на ЦИСКЕ я делаю следующим образом
ip prefix-list PL-default seq 10 permit 0.0.0.0/0
!
ip prefix-list PL-bogon seq 10 permit 10.0.0.0/8 le 32
ip prefix-list PL-bogon seq 20 permit 192.168.0.0/16 le 32
ip prefix-list PL-bogon seq 30 permit 172.16.0.0/12 le 32
ip prefix-list PL-bogon seq 40 permit 127.0.0.0/8 le 32
!
ip prefix-list PL-all seq 5 permit 0.0.0.0/0 le 32
!
route-map iBGP-import deny 10
match ip address prefix-list PL-default
!
route-map iBGP-import deny 20
match ip address prefix-list PL-bogon
!
route-map iBGP-import permit 30
match ip address prefix-list PL-all
!
....
neighbor x.x.x.x route-map iBGP-import in
neighbor x.x.x.x route-map iBGP-export out
и радуюсь жизни...
хочу радоваться на esr-1200, но не могу ибо АЦЦКАЯ БОЛЬ!
Первая аццкая боль случилась, когда осознал тот факт, что prefix маршрута по-умолчанию разработчиком обособлен и вместо канонического 0.0.0.0/0 я вижу "default-route"... ну зачем???
a вот
ip route 0.0.0.0/0 x.x.x.x нормально воспринимается
Вторая аццкая боль наступила когда я понял, что не могу в префикс листе указать все сети (каноническое и православное 0.0.0.0/0 le 32)
чтобы запретить диаболический "default-route" и затем разрешить всё остальное.
Третья аццболь наступила когда я понял, что нельзя инвертировать логику route-map
типа
route-map iBGP-import DENY 10 или
route-map iBGP-import PERMIT 10
Четвёртая аццкая боль наступила, когда я так-же не смог создать объекты object-group network и включить туда диаболический "default-route" или любые другие диапазоны префиксов
например ip prefix 192.168.0.0/16 ge 25 le 32
это можно сделать только в ip prefix-list , но эти префикс листы нельзя включить в route-map, только object-group network объекты.
также ip prefix-list не принимает default route и 0.0.0.0/0 le 32
БОООЛЬ!!!
object-group network bogon_prefixes
ip prefix 10.0.0.0/8
ip prefix 192.168.0.0/16
ip prefix 172.16.0.0/12
ip prefix 127.0.0.0/8
это пожалуйста, а вот 0.0.0.0/0 никак
Пятая боль это
(config-object-group-network)# ip address-range 0.0.0.0-255.255.255.255
<network_ip_address_from_sockaddr> produced address is invalid
<network_ip_parse_address> failed to convert address
<network_ip_address_range_parse> cannot parse start address '0.0.0.0'
<network_ip_address_from_sockaddr> produced address is invalid
<network_ip_parse_address> failed to convert address
<network_ip_address_range_parse> cannot parse start address '0.0.0.0'
после упорных молитв делаю так:
object-group network bogon_prefixes
ip prefix 10.0.0.0/8
ip prefix 192.168.0.0/16
ip prefix 172.16.0.0/12
ip prefix 127.0.0.0/8
route-map iBGP-import
rule 10
match ip address object-group bogon_prefixes
action deny
exit
rule 20
action permit
exit
exit
route-map iBGP-export
rule 10
match ip address object-group bogon_prefixes
action deny
exit
rule 20
action permit
exit
exit
для соседа делаю
route-map iBGP-import in
route-map iBGP-export out
смотрю что получилось...
sh ip bgp XXXX neighbors 10.1.1.2 routes
Network Next Hop Metric LocPrf Path
* u 0.0.0.0/0 10.1.1.2 100 i
* u 10.1.1.0/30 10.1.1.2 100 i
*> u 10.1.1.8/30 10.1.1.2 100 i
* u 172.16.0.0/24 10.1.1.2 100 i
не работает...
как мне решить поставленную задачу?