Pull to refresh

Comments 17

Проверьте на флуд с ACK пакетами. establlished спасает от SYN-флуда, но могут флудить и просто TCP-кадрами, в т.ч. без флагов вообще. Это может (я не уверен) принудить RE к геренации ответных RST, что может его погубить.
Самая генерация RST пакетов погубить его не сможет, поскольку RST пакет не больше входящего, хранение состояния для его генерации не требуется, а их маршрутизацией занимается PFE.

Другое дело, что погубить может сама обработка такого количества мусора, не зависимо от RST пакетов.
Да обработка мусора — это основная проблема, дело не в RST, в момент атаки на порт BGP процесс rpd занят обработкой мусора и грузит CPU, а после падения сессий и попытки их восстановить еще добавляется нагрузка на обработку fullview и роутер самостоятельно очнуться не может. Но фильтры переносят всю нагрузку на PFE и rpd работает только с нормальным трафиком. В момент проведения первого теста, я был удивлен насколько мало надо трафика чтобы положить роутер, порог ~400Kpps, что совсем не много.
Интересно, а фильтры по ttl он умеет делать на pfe или этим будет заниматься re?
Вероятно, не совсем правильно понял ваш вопрос, но посмотрите на term discard-TTL_1-unknown в фильтре discard-all. Все firewall filter в Juniper переносят нагрузку на PFE.
Да не, все правильно. У цысоньки просто это атрибут BGP пира, а не фильтров, поэтому я и не заметил этого терма.
Значит все лишнее на PFE умрет, как я и предполагал.
очень интересный способ составлять prefix-list.
но я бы не стал обращать внимания на TCP flag.
разрешить с доверенных хостов bgp,ssh,snmp, а все остальное запретить.
кстати, icmp пакеты на роутер PFE: фильтрует 50 пакетов в секунду уходит на RE — остальное дропается и не нуждается в ACL. это правило работает и для TTL=1.

на всякий случай из одного из серверов торчит консолька.
Проблема в том, что ограничение доверенных хостов BGP легко обходится подменой ip если у провайдера не включен uPRF (как раз у нас такая ситуация), а все остальные фильтры ssh, snmp и так не лезут в tcp flag.

Про правило с ICMP не знал, проверил на практике без фильтра, действительно количество pps не влияет на нагрузку RE:
image
не подскажите где в оф. доке можно об этом почитать? Единственное что удалось найти это Enabling ICMP Flood Protection, но у меня на стенде эта защита была выключена.
официально информации такой нет. получил от JTAC, когда абоненты начали жаловаться на «потери» на транзитном маршрутизаторе.
Спасибо за интересный материал. Было бы интересно, если бы авторы нашли возможность сделать продолжение статьи с входящим DDOS-трафиком больше 1.5Mpps.
В настоящий момент такой цели нет, да и сгенерировать больше 1.5Mpps довольно сложно, надо ставить FreeBSD и крутить netmap. Обычный linux утилизирует все 8 ядер на 100%. Вероятно, после очередного крупного DDOS, я опубликую следующие испытания.
UFO just landed and posted this here
Например так:
1) написать префикс лист для мультикаст адресов OSPF:
prefix-list OSPF {
    224.0.0.5/32;
    224.0.0.6/32;
}


2) сам фильтер:
filter accept-ospf {
    apply-flags omit;
    term accept-ospf {
        from {
            source-prefix-list {
                LOCALS-v4
            }
            destination-prefix-list {
                LOCALS-v4
                ospf;
            }
            protocol ospf;
        }
        then {
            count accept-ospf;
            accept;
        }
    }
}
UFO just landed and posted this here
Да фильтр выглядит так:
user@MX-80> show configuration firewall family inet filter PROTECT-UPLINK 
apply-flags omit;
/* allow packets from BGP neighbors to BGP address */
term discard-to-bgp-ip {
    from {
        source-address {
            0.0.0.0/0;
        }
        source-prefix-list {
            BGP-neighbors-v4 except;
        }
        destination-prefix-list {
            BGP-locals-v4;
        }
    }
    then {
        count discard-to-bgp-ip;
        discard;
    }
}
/* Block private networks */
term rfc1918 {
    from {
        source-prefix-list {
            rfc1918;
        }
    }
    then {
        count discard-rfc1918;
        discard;
    }
}
/* Block packet from own networks */
term discard-from-locals-ip {
    from {
        source-prefix-list {
            INTERNAL-locals-v4;
        }
    }
    then {
        count discard-to-locals-ip;
        discard;
    }
}
/* allow other */
term allow-other {
    then accept;
}


префикс листы:
prefix-list BGP-locals-v4 {
    apply-path "protocols bgp group <*> neighbor <*.*> local-address <*.*>";
}
prefix-list BGP-neighbors-v4 {
    apply-path "protocols bgp group <*> neighbor <*.*>";
}
prefix-list rfc1918 {
    10.0.0.0/8;
    172.16.0.0/12;
    192.168.0.0/16;
}
prefix-list INTERNAL-locals-v4 {
    apply-path "interfaces xe-0/0/1 unit <*> family inet address <*>";
}


В моем случае интерфейс xe-0/0/1 смотрит во внутрь AS, то есть на нем все собственные сети.
Честно говоря мало что понял как домашний пользователь, но понимаю, что пост полезен. Кстати набрёл на статью после ребутов домашнего Zyxel Keenetik Giga I. Автор молодцом и уважуха.
Sign up to leave a comment.

Articles