pavel.odintsov Posted May 14, 2015 (edited) · Report post Всем привет! Хотелось бы обсудить здесь BGP Flow Spec также известный как RFC 5575. Чтобы не уходить в сущности реализации, приведу пример что это такое и зачем сразу станет ясно. Вот пример BGP Flow Spec анонса из пакета ExaBGP: flow { route block_traffic_to_proxy { match { source 10.0.0.1/32; destination 10.0.0.2/32; destination-port =3128; protocol tcp; } then { discard; } } } Иными словами, это такой мощный распределенный фаерволл с поддержкой со стороны Juniper/Cisco и поведением ну очень похожим на BGP (пиры, анонсы, propagation). Кроме использования для iBGP в своей сети (что уже крайне полезно в ряде случае) также поддерживается (пока крайне редко) магистралами на eBGP! Что открывает огромный простор для творчества! Edited May 14, 2015 by pavel.odintsov Share this post Link to post Share on other sites
s.lobanov Posted May 14, 2015 · Report post А чё тут обсуждать-то? Всё понятно с этим механизмом. Реализация этой штуки - pbr, а с точки зрения "клиента" это просто bgp анонс. Есть конкретный предмет для обсуждения? Share this post Link to post Share on other sites
MonaxGT Posted May 15, 2015 · Report post Похоже на рекламу) Share this post Link to post Share on other sites
zi_rus Posted May 15, 2015 · Report post Есть конкретный предмет для обсуждения? он всегда есть. то хорошая штука для борьбы с ддос силами клиента на стороне провайдера. А предмет состоит в том, какие проблемы может поиметь провайдер, если клиент начнет использовать фичу не по назначению, или по назначению, но с какими-то особенностями. Где-то, в какой-то презентации читал что пролемы таки возможны, поэтому провайдеры не сильно спешат эту штуку внедрять, но уже не помню в чем была суть Share this post Link to post Share on other sites
pavel.odintsov Posted May 15, 2015 (edited) · Report post Вопросов на деле много. 1) Кто из аплинков держит такое дело? Я пока не нашел толком никого 2) Как фильтровать/генерировать/контролировать флоу? Не руками же на каждый чих забивать в роутеры, это не анонсы, которые меняются часть в тыщу лет, а постоянно меняющаяся инфа 3) Как делегировать посылку флоу клиентами (актуально для ДЦ), своего рода фаерволл ДЦ уровня 4) Как оно конкретно работает на конкретном железе и какая деградация производительности в зав-ти от числа правил 5) Что делать если бордер не умеет flow spec, а только BGP v4? Вот Quagga не умеет, а анонсировать хочется. Пока многие вещи могут быть сделаны выше означенным ExaBGP: https://github.com/Exa-Networks/exabgp, но это лишь либа, а инструменты уже надо строить самим :) Похоже на рекламу) Она самая! В самой наглой форме=) Но на Светлакова и котиков (с) бюджет не одобрили :( Edited May 15, 2015 by pavel.odintsov Share this post Link to post Share on other sites
rdntw Posted May 15, 2015 · Report post Используем flowspec совместно с виртуалкой от arbor. Arbor определяет атаку и подготавливает flowspec-фильтры, потом спускает их на бордеры. Eсли есть flow-сессия с uplink-ами, то трафик еще до попадания в нашу AS дропается. Если нет то дропается на наших бордерах. Share this post Link to post Share on other sites
pavel.odintsov Posted May 15, 2015 · Report post А бордеры Juniper? Я вот думаю, может ли бордер без его поддержки пропустить его аплинку не вдаваясь в подробности, чего он там передает наружу. Фантастика, конечно поидее он при коннекте должен анонсировать свои фичи =( Кстати, очень скоро будет аналогичная штука для анализа атак, тоже в виртулке и тоже с flow spec, но опенсорцная =) Share this post Link to post Share on other sites
rdntw Posted May 15, 2015 · Report post А бордеры Juniper? Я вот думаю, может ли бордер без его поддержки пропустить его аплинку не вдаваясь в подробности, чего он там передает наружу. Фантастика, конечно поидее он при коннекте должен анонсировать свои фичи =( Кстати, очень скоро будет аналогичная штука для анализа атак, тоже в виртулке и тоже с flow spec, но опенсорцная =) Да, MXы. Вы хотите не с бордера поднимать flow-сессию с аплинком, а откуда-то внутри сети? Вопрос только уговорить его так сделать :) Share this post Link to post Share on other sites
pavel.odintsov Posted May 15, 2015 · Report post Аплинка-то уговорить можно, но очень не хочется так делать. У аплинка Juniper сетка и роутинг в одном флаконе с флоу спеком. С моей же стороны солянка - Quagga/фул вью и флоу спек на ExaBGP. Вопрос как это влить аплинку. Понятно, что можно попросить спец сессию для flow spec, но не уверен, что они на это пойдут.... Я хочу, чтобы моя квагга не имея полной поддержки flow spec приняла анонс flow spec изнутри сети и пихнула его в аплинка, опять же не вдаваясь в содержимое пакета :) Share this post Link to post Share on other sites
rdntw Posted May 15, 2015 · Report post Я хочу, чтобы моя квагга не имея полной поддержки flow spec приняла анонс flow spec изнутри сети и пихнула его в аплинка, опять же не вдаваясь в содержимое пакета :) А как без поддержки этого NLRI он его пропустит?:) Share this post Link to post Share on other sites
pavel.odintsov Posted May 15, 2015 · Report post Я хочу, чтобы моя квагга не имея полной поддержки flow spec приняла анонс flow spec изнутри сети и пихнула его в аплинка, опять же не вдаваясь в содержимое пакета :) А как без поддержки этого NLRI он его пропустит?:) Вот в том и вопрос, что не пропустит нифиг :( Поидее, добавить тупой форвард flow spec в Quagga решительно проще, чем делать полную имплементацию flow spec для Quagga. Share this post Link to post Share on other sites
darkagent Posted May 15, 2015 · Report post на bird еще года 3-4 назад был одобренный фичреквест на flow spec, надо посмотреть, может уже сделали чего. Share this post Link to post Share on other sites
s.lobanov Posted May 15, 2015 · Report post Я хочу, чтобы моя квагга не имея полной поддержки flow spec приняла анонс flow spec изнутри сети и пихнула его в аплинка, опять же не вдаваясь в содержимое пакета :) А как без поддержки этого NLRI он его пропустит?:) pavel.odintsov Вот это уже вполне конретный и интересный вопрос. rdntw Quagga не поддерживает vrf, но при этом может быть рефлектором для vpnv4. Точно также ASR1k не умеет eVPN, но может быть рефлектором для этого пространства(весьма странный кейс, честно говоря, но видимо кому-то это надо). Принципиальных сложностей отрефлектить flowspec-анонсы нет, просто нужно немного допилить кваггу для этого Share this post Link to post Share on other sites
zi_rus Posted May 15, 2015 · Report post (весьма странный кейс, честно говоря, но видимо кому-то это надо) ничего странного, просто копировали код bgp и все. проще было скопипастить как есть, чем специально выпиливать какую-то AFI только потому что на этой платформе оно может быть ненужно Share this post Link to post Share on other sites
pavel.odintsov Posted May 15, 2015 · Report post rdntwQuagga не поддерживает vrf, но при этом может быть рефлектором для vpnv4. Точно также ASR1k не умеет eVPN, но может быть рефлектором для этого пространства(весьма странный кейс, честно говоря, но видимо кому-то это надо). Принципиальных сложностей отрефлектить flowspec-анонсы нет, просто нужно немного допилить кваггу для этого Вот именно такая фича и нужна :) Как оно называется там по умному, чтобы попросить "вот такое же хочу, но для flow spec"? Share this post Link to post Share on other sites
MonaxGT Posted May 15, 2015 · Report post Используем flowspec совместно с виртуалкой от arbor. Arbor определяет атаку и подготавливает flowspec-фильтры, потом спускает их на бордеры. Eсли есть flow-сессия с uplink-ами, то трафик еще до попадания в нашу AS дропается. Если нет то дропается на наших бордерах. А есть виртуалка в доступе для обычного люда или контракт нужен? rdntwQuagga не поддерживает vrf, но при этом может быть рефлектором для vpnv4. Точно также ASR1k не умеет eVPN, но может быть рефлектором для этого пространства(весьма странный кейс, честно говоря, но видимо кому-то это надо). Принципиальных сложностей отрефлектить flowspec-анонсы нет, просто нужно немного допилить кваггу для этого Вот именно такая фича и нужна :) Как оно называется там по умному, чтобы попросить "вот такое же хочу, но для flow spec"? Ну попросить возможность работы в качестве RR для такого NLRI Share this post Link to post Share on other sites
s.lobanov Posted May 15, 2015 · Report post (весьма странный кейс, честно говоря, но видимо кому-то это надо) ничего странного, просто копировали код bgp и все. проще было скопипастить как есть, чем специально выпиливать какую-то AFI только потому что на этой платформе оно может быть ненужно ну хз, я не уверен, что xr и ios/ios-xe имеют общую кодовую базу. или же есть железки с ios/ios-xe умеющие eVPN? Вот именно такая фича и нужна :) Как оно называется там по умному, чтобы попросить "вот такое же хочу, но для flow spec"? вот что вам нужно сделать в квагге http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/iproute_bgp/configuration/xe-3s/irg-xe-3s-book/bgp_flowspec_route-reflector_support.pdf Share this post Link to post Share on other sites
MonaxGT Posted May 15, 2015 (edited) · Report post (весьма странный кейс, честно говоря, но видимо кому-то это надо) ничего странного, просто копировали код bgp и все. проще было скопипастить как есть, чем специально выпиливать какую-то AFI только потому что на этой платформе оно может быть ненужно ну хз, я не уверен, что xr и ios/ios-xe имеют общую кодовую базу. или же есть железки с ios/ios-xe умеющие eVPN? Уже выдали ссылку выше) Edited May 15, 2015 by MonaxGT Share this post Link to post Share on other sites
pavel.odintsov Posted May 15, 2015 · Report post вот что вам нужно сделать в квагге http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/iproute_bgp/configuration/xe-3s/irg-xe-3s-book/bgp_flowspec_route-reflector_support.pdf Шикарно! Отправил в mail list Quagga! Share this post Link to post Share on other sites
s.lobanov Posted May 15, 2015 · Report post Уже выдали ссылку выше) ты про мою ссылку или ещё про какую-то? Share this post Link to post Share on other sites
MonaxGT Posted May 15, 2015 · Report post Уже выдали ссылку выше) ты про мою ссылку или ещё про какую-то? Да, я пока писал пост, ты ее выложил) удалить сообщение не смог Share this post Link to post Share on other sites
pavel.odintsov Posted May 15, 2015 · Report post Так, забил в мейллисты Bird/Quagga посты с кличем о поддержке Flow Spec: http://bird.network.cz/pipermail/bird-users/2015-May/009675.html https://lists.quagga.net/pipermail/quagga-users/2015-May/014027.html Share this post Link to post Share on other sites
ollsanek Posted May 15, 2015 · Report post .... Я хочу, чтобы моя квагга не имея полной поддержки flow spec приняла анонс flow spec изнутри сети и пихнула его в аплинка, опять же не вдаваясь в содержимое пакета :) Сделайте наоборот, пусть к аплинкеру цепляется ЕХА, объединяя "нормальные" анаонсы от квагги и flow spec изнутри сети :) Share this post Link to post Share on other sites
pavel.odintsov Posted May 15, 2015 · Report post Была такая мысль, это самое лобовое решение. Но ExaBGP - это точка отказа и узкое место в производительности (потенциально, не тестировал тщательно), а у меня мотается вполне себе жирный full view, который крайне не хочется гонять через ExaBGP, он и напрямую-то еле проворачивается :( Share this post Link to post Share on other sites
rdntw Posted May 15, 2015 (edited) · Report post А есть виртуалка в доступе для обычного люда или контракт нужен? через посредников. http://www.servicepipe.ru/ Edited May 15, 2015 by rdntw Share this post Link to post Share on other sites