LINUX.ORG.RU

ping барахлит?


0

0

Цель - ограничить пропускную способность по протоколу icmp, 1 пакет в секунду.

#!/bin/sh
IPTABLES=/sbin/iptables
$IPTABLES -F
$IPTABLES -X
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT

$IPTABLES -A INPUT -p icmp -m limit --limit 1/second --limit-burst 1 -j ACCEPT
$IPTABLES -A INPUT -p icmp -j DROP

% ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.

--- localhost ping statistics ---
13 packets transmitted, 0 received, 100% packet loss, time 11999ms

%

В соседней консоли:

# tcpdump -i any|grep reply
tcpdump: WARNING: Promiscuous mode not supported on the "any" device
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 68 bytes
01:22:28.221542 IP localhost > localhost: ICMP echo reply, id 48744, seq 1, length 64
01:22:29.220850 IP localhost > localhost: ICMP echo reply, id 48744, seq 2, length 64
01:22:30.220880 IP localhost > localhost: ICMP echo reply, id 48744, seq 3, length 64
01:22:31.220867 IP localhost > localhost: ICMP echo reply, id 48744, seq 4, length 64
01:22:32.220883 IP localhost > localhost: ICMP echo reply, id 48744, seq 5, length 64
01:22:33.220901 IP localhost > localhost: ICMP echo reply, id 48744, seq 6, length 64
01:22:34.220912 IP localhost > localhost: ICMP echo reply, id 48744, seq 7, length 64
01:22:35.220930 IP localhost > localhost: ICMP echo reply, id 48744, seq 8, length 64
01:22:36.220975 IP localhost > localhost: ICMP echo reply, id 48744, seq 9, length 64
01:22:37.220961 IP localhost > localhost: ICMP echo reply, id 48744, seq 10, length 64
2418 packets captured
2448 packets received by filter
0 packets dropped by kernel

#

Т.е. tcpdump явно кажет то, что пинг проходит, а сам ping почему-то ничего не показывает.


Разобрался, пингуя localhost у меня входящих получается 2 пакета в секунду на localhost, а не один :)
Поэтому и не отображал.

01:48:29.947062 IP localhost > localhost: ICMP echo request, id 58649, seq 1, length 64
01:48:29.947162 IP localhost > localhost: ICMP echo reply, id 58649, seq 1, length 64

$IPTABLES -A INPUT -p icmp -m limit --limit 2/second --limit-burst 2 -j ACCEPT

Пожалуй будет не страшно вместо одного пропустить пару пакетов :)

Lok
() автор топика
Ответ на: комментарий от Lok

>$IPTABLES -A INPUT -p icmp -m limit --limit 2/second --limit-burst 2 -j ACCEPT

жесть как она есть, а что делать с пакетами типа destination host unreachable ? может таки --icmp-type 8 ?

borisych ★★★★★
()
Ответ на: комментарий от borisych

А что с пакетами типа destination host unreachable ?

Дойдут эти пакеты, никуда не денутся. С лимитом 2 пакета в секунду, мне больше и не нужно.

Lok
() автор топика

Зачем все это? Понаворотят черте чего потом гадай почему связи нет - из-за того, что где-то на маршруте линк упал или из-за того, что кто-то на файрволе правилами поигрался

cobold ★★★★★
()
Ответ на: комментарий от cobold

хотя, если это локалхост, то пусть играется

cobold ★★★★★
()

А может обьяснит кто, почему при выключенном iptables

% traceroute google.com
traceroute to google.com (64.233.167.99), 30 hops max, 40 byte packets
1 * * *
2 (85.95.165.65) 656.915 ms 657.838 ms 659.222 ms
3 (85.95.165.2) 661.168 ms 661.723 ms 663.276 ms
4 * * *
5 * * *
6 * 195.66.224.125 (195.66.224.125) 608.397 ms 609.117 ms
7 209.85.252.40 (209.85.252.40) 642.717 ms 640.761 ms 640.350 ms
8 72.14.236.216 (72.14.236.216) 678.578 ms 543.094 ms 541.696 ms
9 66.249.94.235 (66.249.94.235) 556.594 ms 556.637 ms 557.292 ms
10 209.85.248.221 (209.85.248.221) 571.265 ms 483.430 ms 483.297 ms
11 72.14.232.53 (72.14.232.53) 485.312 ms 66.249.94.133 (66.249.94.133) 486.377 ms 72.14.232.53 (72.14.232.53) 485.876 ms
12 72.14.232.74 (72.14.232.74) 463.738 ms 64.233.175.26 (64.233.175.26) 408.710 ms 64.233.175.42 (64.233.175.42) 410.778 ms
13 py-in-f99.google.com (64.233.167.99) 388.288 ms 387.574 ms 389.347 ms
%

А при включенном, с правилами
#!/bin/sh
IPTABLES=/sbin/iptables
$IPTABLES -F
$IPTABLES -X
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT

% traceroute google.com
traceroute to google.com (72.14.207.99), 30 hops max, 40 byte packets
1 eh-in-f99.google.com (72.14.207.99) 361.470 ms 365.781 ms 365.818 ms
%

Почему только одна строка?

Lok
() автор топика

Болт мне до icmp траффика и до трассировки, тут прикрыли, там закрыли.
Пингуется без потерь - знач все ок :)
На пинг как раз 2 пакета в секунду.

Lok
() автор топика

Пока вы здесь молчали я во всем разобрался.
rules-save вручную удалил, и заного сохранил правила, т.к. пересохранялся с кучей мусора.

А так дело в этом было:
$IPTABLES -t mangle -A OUTPUT -j TTL --ttl-set 64
$IPTABLES -t mangle -A PREROUTING -m ttl --ttl-gt 128 -j TTL --ttl-set 128
$IPTABLES -t mangle -A PREROUTING -m ttl --ttl-lt 128 -j TTL --ttl-set 128

Там же при трассировке ttl как раз нужен.

p.s. Нет никакого обхода, что трассировать без учета ttl?
Неохото мне выкидывать $IPTABLES -t mangle -A OUTPUT -j TTL --ttl-set 64

Lok
() автор топика
Ответ на: комментарий от Lok

читай как работает traceroute. без TTL вряд ли получится оттрейсить

BreadFan ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.