Возникла задача фильтровать пакеты IP на сетевом интерфейсе следующим образом:
запрещать каждый второй (третий, четвертый... десятый) пакет. Задача не в ограничении трафика, а именно в запрете указанных пакетов. Возможно ли сделать подобное стандартными средствами? например iptable. Операционная система Mandriva Linux 2008.1
>Возникла задача фильтровать пакеты IP на сетевом интерфейсе следующим образом:
>запрещать каждый второй (третий, четвертый... десятый) пакет. Задача не в ограничении трафика,
>а именно в запрете указанных пакетов. Возможно ли сделать подобное стандартными
>средствами? например iptable. Операционная система Mandriva Linux 2008.1интересная задача, если это не секретно расскажите для чего это потребовалось?
Вы хотите осуществлять данное действие над всем трафиком либо каким-то определенным ?как я понимаю Вы хотите создать эмуляцимю перегруженного канала?
>интересная задача, если это не секретно расскажите для чего это потребовалось?
>Вы хотите осуществлять данное действие над всем трафиком либо каким-то определенным ?
>
>
>как я понимаю Вы хотите создать эмуляцимю перегруженного канала?Совершенно верно. На freeBSD это сделать не проблема с помощью ipfw. Но дело в том, что машина линуксовая и выполняет задачу которая в силу своих особенностей не может быть выполнена под freeBSD, раздает видеоконтент с DVB-платы.
man iptablesstatistic
This module matches packets based on some statistic condition. It supports two distinct modes settable with the --mode option.
>Возникла задача фильтровать пакеты IP на сетевом интерфейсе следующим образом:
>запрещать каждый второй (третий, четвертый... десятый) пакет. Задача не в ограничении трафика,
>а именно в запрете указанных пакетов. Возможно ли сделать подобное стандартными
>средствами? например iptable. Операционная система Mandriva Linux 2008.1Если надо эмитацию перегруженого канала, потерь, задержек - то это нормально реализовано в DUMMYNET (FreeBSD).
>Если надо эмитацию перегруженого канала, потерь, задержек - то это нормально реализовано
>в DUMMYNET (FreeBSD).Да, я знаю, но ставить еще одну машину для реализации этой функции - дорого.
>Возникла задача фильтровать пакеты IP на сетевом интерфейсе следующим образом:
>запрещать каждый второй (третий, четвертый... десятый) пакет. Задача не в ограничении трафика,
>а именно в запрете указанных пакетов. Возможно ли сделать подобное стандартными
>средствами? например iptable. Операционная система Mandriva Linux 2008.1google + "linux tc network emulation"
нучатесь сначала искать -- потом будите ставить глобальные задачи
>google + "linux tc network emulation"
>
>нучатесь сначала искать -- потом будите ставить глобальные задачиУв. pavel_simple
Ваш совет мне очень помог, нашел очень интересную статью подходящую под мой вопрос.
Эмуляция влияния глобальных сетей http://m0sia.ru/comment/reply/67
>запрещать каждый второй (третий, четвертый... десятый) пакет.Я сегодня добрый. B-))
Дропаем каждый четвёрый пинг на localhost:
-N pping
-A pping -m recent --set --name pping --rsource
-A pping -m recent --update --hitcount 4 --name pping --rsource -j ppingD
-N ppingD
-A ppingD -m recent --remove --name pping --rsource
-A ppingD -j DROP
-A INPUT -s 127.0.0.1 -p icmp -m icmp --icmp-type 8 -j ppingИ работает :)) -
$ ping -c13 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.069 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.065 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.068 ms
64 bytes from 127.0.0.1: icmp_seq=5 ttl=64 time=0.078 ms
64 bytes from 127.0.0.1: icmp_seq=6 ttl=64 time=0.064 ms
64 bytes from 127.0.0.1: icmp_seq=7 ttl=64 time=0.064 ms
64 bytes from 127.0.0.1: icmp_seq=9 ttl=64 time=0.064 ms
64 bytes from 127.0.0.1: icmp_seq=10 ttl=64 time=0.060 ms
64 bytes from 127.0.0.1: icmp_seq=11 ttl=64 time=0.047 ms
64 bytes from 127.0.0.1: icmp_seq=13 ttl=64 time=0.064 ms--- 127.0.0.1 ping statistics ---
13 packets transmitted, 10 received, 23% packet loss, time 11998ms
rtt min/avg/max/mdev = 0.047/0.064/0.078/0.009 ms
$ _