Требуется ограничить трафик определённого типа, например, входящие пакеты ICMP. Грубое ограничение трафика (любого направления — входящего, исходящего или транзитного) можно выполнить с помощью правил IPtables. Подробно о возможностях IPtables в этой части см. man pages по версии 1.4.7 или выше.
Пример 1. Ограничение по битовой скорости. Первое правило маркирует указанные пакеты как поток myicmplimit и измеряет среднюю скорость этого потока. Второе сравнивает скорость потока с установленным пределом 1 Мбит/сек; в случае превышения этого предела пакет уничтожается.
filter : INPUT : : 1 : : : protocol = "icmp" : : : target = "RATEEST" : : : rateest-name = "myicmplimit" : : : extra-target = "--rateest-interval 100ms --rateest-ewmalog 0.25s" : : 2 : : : protocol = "icmp" : : : explicit-matches : : : : 1 : : : : : match-type = "rateest" : : : : : params = "--rateest-gt --rateest myicmplimit --rateest-bps 1mbit" : : : target = "DROP"
Пример 2. Ограничение по числу пакетов. Первое правило пропускает пакеты ICMP Echo Request, если их число не превышает 10 в секунду. Второе правило уничтожает пакеты, не пропущенные первым.
filter : INPUT : : 1 : : : protocol = "icmp" : : : icmp-type = "echo-request" : : : explicit-matches : : : : 1 : : : : : match-type = "limit" : : : : : params = "--limit 10/s" : : : target = "ACCEPT" : : 2 : : : protocol = "icmp" : : : icmp-type = "echo-request" : : : target = "DROP"
Дополнительные замечания:
Дисциплины полисинга входящего трафика, такие как ingress, в текущих версиях NSG Linux 2.x не поддерживаются, но могут быть реализованы в случае необходимости.