В Селетеле у нас сеть вся с включенным Jumbo frame из-за чего MTU нормальный (хотя пришлось в одном месте подложить патчиком в OpenStack). Адреса в ВМ настраиваются статикой даже без DHCP потому что образы которые доступны в панели управления собраны с cloud-init, который так же умеет читать metadata и настраивать все что надо. Это позволяет чуть-чуть экономить на ресурсах и количестве таблиц маршрутизации (ака netns). И, да, в конфиге nova есть опция cpu_mode=host-passthrough чтобы клиенты могли собирать свой код используя специфичные фичи проца. Ограничение только в том что все равно там не все, список «проброшенных» фич ограничивается qemu.
лишня r. Упоминание этого таймаута подсказывает, что вы используете openvswitch агент в режиме вызова shell-команд ovs-vsctl. Рекомендую попробовать native режим (ovsdb_interface = native) при котором neutron становится менеджером для OVS. Работает значительно быстрее, особенно это заметно при синхронизации OF правил после перезапуска агента. В режиме native есть одна немаловажная настройка таймаута: of_request_timeout на которую стоит обратить внимание.
Также есть несколько вопросов к вам:
BGP плагин для neutron пришлось как-то дорабатывать?
L2 сегмент физической сети у вас уходит дальше одной стойки? Приходится ли тянуть VLAN от сетевых нод до bare-metal роутера?
В первой части статьи вы говорите о том что отказались от NAT совсем (как кажется по тексту), но дальше в разделе про FWaaS вы упоминаете про виртуальные роутеры? Не совсем понял, как виртуальные роутеры работают с FWaaS но без NAT. Поясните, пожалйста этот момент.
Используются ли у вас гибриднае сети когда нужно подключить в виртуальную (overlay) сеть bare-metal устройство/сервер? Если да, то как реализуется такая схема? Или вы используете VLAN сети для такого через provider:network_type=vlan?
Вероятно, не совсем правильно понял ваш вопрос, но посмотрите на term discard-TTL_1-unknown в фильтре discard-all. Все firewall filter в Juniper переносят нагрузку на PFE.
Да Вы правы, не поможет, не то написал. Имел ввиду IP hijacking (притягивание трафика). Соглашусь с Вами, uRPF в сети провайдера с асинхронным трафиком — миф.
Согласен, но атаки такого масштаба редко ведутся на целую подсеть, как правило льется все на один хост, но забивает канал всей площадки. Борьба с атакой на несколько серверов сразу, думаю, будет начинаться со снятия зарубежного пиринга, дабы отсечь источник.
Да, к сожалению есть только рекомендации по составлению community.
Спасибо, не знал про привязку community к static маршрутам. По привычке использовал cisco-way. На самом деле я еще обычно выставляю no-install для static маршрута, чтобы пакеты до этого хоста внутри моей AS не дропались на маршрутизаторе. Это очень полезная функция Juniper, которой к сожалению нет в Cisco.
Да, Вы отчасти правы, но в статье говорится про атаки с которыми не удается справится иными средствами и из-за которых может страдать вся сеть. Если недоступна вся сеть, то лучше «пожертвовать» одним сервером и разгрузить канал, а потом искать цель атаки (если это сервер с клиентами, например) и заниматься анализом атаки. Кроме того существует возможность более продвинутого blackhole, например, если контент Вашего сервера для России, то в момент атаки можно установить Blackhole только на зарубежный пиринг. Это позволит снизить уровень атаки (по статистике 80% трафика DDOS льется из-за границы) и оставить сервер доступным для Российского сегмента. Многие Российские провайдеры предоставляют расширенные community, которые позволяют такое делать. Существует также метод «сливного туннеля», который позволяет не ограничивая доступ к серверу фильтровать трафик, о нем Вы можете почитать в rfc3882.
Время установки префикса в такой (рекурсивный) Blackhole как правило 1-3 минуты, пока все провайдеры примут community. Blackhole у первого провайдера срабатывает через ~5-10 секунд, то есть трафик в Вашу AS уже перестанет попадать.
В настоящий момент такой цели нет, да и сгенерировать больше 1.5Mpps довольно сложно, надо ставить FreeBSD и крутить netmap. Обычный linux утилизирует все 8 ядер на 100%. Вероятно, после очередного крупного DDOS, я опубликую следующие испытания.
Проблема в том, что ограничение доверенных хостов BGP легко обходится подменой ip если у провайдера не включен uPRF (как раз у нас такая ситуация), а все остальные фильтры ssh, snmp и так не лезут в tcp flag.
Про правило с ICMP не знал, проверил на практике без фильтра, действительно количество pps не влияет на нагрузку RE:
не подскажите где в оф. доке можно об этом почитать? Единственное что удалось найти это Enabling ICMP Flood Protection, но у меня на стенде эта защита была выключена.
Да обработка мусора — это основная проблема, дело не в RST, в момент атаки на порт BGP процесс rpd занят обработкой мусора и грузит CPU, а после падения сессий и попытки их восстановить еще добавляется нагрузка на обработку fullview и роутер самостоятельно очнуться не может. Но фильтры переносят всю нагрузку на PFE и rpd работает только с нормальным трафиком. В момент проведения первого теста, я был удивлен насколько мало надо трафика чтобы положить роутер, порог ~400Kpps, что совсем не много.
Также есть несколько вопросов к вам:
Спасибо, не знал про привязку community к static маршрутам. По привычке использовал cisco-way. На самом деле я еще обычно выставляю no-install для static маршрута, чтобы пакеты до этого хоста внутри моей AS не дропались на маршрутизаторе. Это очень полезная функция Juniper, которой к сожалению нет в Cisco.
префикс листы:
В моем случае интерфейс xe-0/0/1 смотрит во внутрь AS, то есть на нем все собственные сети.
1) написать префикс лист для мультикаст адресов OSPF:
2) сам фильтер:
Про правило с ICMP не знал, проверил на практике без фильтра, действительно количество pps не влияет на нагрузку RE:
не подскажите где в оф. доке можно об этом почитать? Единственное что удалось найти это Enabling ICMP Flood Protection, но у меня на стенде эта защита была выключена.
как видно все осело на PFE. Первая волна SYN, вторая как раз ACK.