Zapret: обсуждение

Доброго. А можно подробней на примере
r1---sn-2gb7sn7r.googlevideo.com
host > это r самая первая или gogle?
endhost> это com или video?
sld > это r самая первая?
endsld > это r перед google?
midsld> это середина r1—sn-2gb7sn7r?
sniext>>>> сдесь начало?

В дебаг запустите на сплит на указанных частях. Оно хекс дампает

Ненене

host – это всё с начала
endhost – это конец всего
sld – это googlevideo
endsld – это “o”,
midsld – середина googlevideo
sniext – это sniext, на срине его не видно, там должно быть читаемое sni – server name

Ридмик обновлён, см. tcp сегментация



Прикольно нарезало. Кто отгадает домен. Но ете чет не понравилось.

Не совсем. Это следующий за ним байт. Точка выходит
Все концы считаются так. Поэтому -1 значит отрезать последний кусок как 1 байт с конца

Спасибо а то я думал хост это гуглвидео
А слд типо аброкадабра перед точкой. Теперь разобрался.

“sld” это “second level domain”

@bolvan , подскажите, пожалуйста! Как мне сделать такой конфиг, чтобы весь tcp траффик на ВСЕХ портах завернуть в стратегию? Когда порты заранее неизвестны и могут быть какие угодно.

Я немного расширю контекст вопроса @minecrafter
Как может проявляться то, когда nfqws/tpws захлебывается от избыточного трафика и что мы можем в таком случае сделать исходя из того, что ресурсов cpu в обрез, но хватает. Скажем, дедлоки на опенврт как могут выглядеть.

Можно написать 1-65535, но все-таки лучше выделить более узкий диапазон.
Абы какие они вряд ли могут быть. Хотя бы нижние исключить до 1023 включительно

При дедлоках расхода ресурсов не будет. Но перестанет ходить трафик, перенаправленный на очередь.
Процесс тупо отморозится, жрать ничего не будет.

В случае ограничения по connbytes перегрузка по cpu вряд ли случится. Там очень незначительная нагрузка. А если редиректнуть все с keepalive, то будет жрать под завязку на массивных выгрузках. Тормознется upload

А тут есть владельцы кинетиков с 69 версии запрета, вы тестили фикс upd который сделали болвану? Мне кажется что он не работает я проверил его и дискорд с одной и той же стратегией на 68 и 69 версии запрета и вот на 69 к голосовому каналу не подключает, на 68 если использовать только дискорд кастом скрипт исправив /opt/zapret/init.d/sysv/zapret внеся туда под секции do_start() do_stop() и restart-fw|restart_fw правила

for IFACE_N in $IFACE_WAN; do
    iptables -t nat -A POSTROUTING -o $IFACE_N -j MASQUERADE
 done

и

for IFACE_N in $IFACE_WAN; do
    iptables -t nat -D POSTROUTING -o $IFACE_N -j MASQUERADE 
done

То войс в дискорде работает на 68 версии, казалось бы в 69 все тоже самое должен делать фикс для кинетика но вот голосовой чат дискорда все равно не заводится. У кого-то есть с этим проблемы или в 69 дискорд и upd фикс кинетика норм у вас работают?

iptables -S -t nat
что выдает с этим фиксом моим ?

@bolvan можно ли совмещать --dpi-desync-ttl=3 с --dpi-desync-fooling=datanoack?

Можно, но обычно datanoack и так хватает.
Но могут отдельные исключения быть, если сервер примет пакет с datanoack. Про yahoo что-то писали.
Можно так fooling md5sig,datanoack

-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-N _NDM_DNAT
-N _NDM_DNS_REDIRECT
-N _NDM_EZ_BYPASS
-N _NDM_EZ_DNAT
-N _NDM_HOTSPOT_DNSREDIR
-N _NDM_IPSEC_POSTROUTING_NAT
-N _NDM_MASQ
-N _NDM_MASQ_BYPASS
-N _NDM_SL_PRIVATE
-N _NDM_SNAT
-N _NDM_SNAT_MAPT
-N _NDM_STATIC_DNAT
-N _NDM_STATIC_LOOP
-N _NDM_STATIC_SNAT
-N _NDM_UPNP_REDIRECT_SYS
-A PREROUTING -j _NDM_DNAT
-A PREROUTING -j _NDM_DNS_REDIRECT
-A PREROUTING -j _NDM_EZ_BYPASS
-A PREROUTING -m ndmmark --ndmmark 0x0/0x8 -j _NDM_UPNP_REDIRECT_SYS
-A OUTPUT -j _NDM_DNAT
-A POSTROUTING -o ppp0 -j MASQUERADE
-A POSTROUTING -j _NDM_IPSEC_POSTROUTING_NAT
-A POSTROUTING -j _NDM_SNAT
-A POSTROUTING -j _NDM_SNAT_MAPT
-A POSTROUTING -j _NDM_MASQ
-A _NDM_DNAT -j _NDM_STATIC_DNAT
-A _NDM_DNS_REDIRECT -j _NDM_HOTSPOT_DNSREDIR
-A _NDM_EZ_BYPASS -d 192.168.1.1/32 -j ACCEPT
-A _NDM_MASQ -j _NDM_MASQ_BYPASS
-A _NDM_MASQ -s 192.168.1.0/24 ! -o br0 -m ndmmark --ndmmark 0x4/0x0 -j MASQUERA                                                                                                         DE
-A _NDM_MASQ_BYPASS -s 224.0.0.0/4 -j ACCEPT
-A _NDM_MASQ_BYPASS -d 224.0.0.0/4 -j ACCEPT
-A _NDM_SL_PRIVATE -i ra3 -j _NDM_EZ_DNAT
-A _NDM_SL_PRIVATE -i ra6 -j _NDM_EZ_DNAT
-A _NDM_SL_PRIVATE -i ra5 -j _NDM_EZ_DNAT
-A _NDM_SL_PRIVATE -i ra2 -j _NDM_EZ_DNAT
-A _NDM_SL_PRIVATE -i ra4 -j _NDM_EZ_DNAT
-A _NDM_SL_PRIVATE -i rai4 -j _NDM_EZ_DNAT
-A _NDM_SL_PRIVATE -i rai5 -j _NDM_EZ_DNAT
-A _NDM_SL_PRIVATE -i rai3 -j _NDM_EZ_DNAT
-A _NDM_SL_PRIVATE -i rai2 -j _NDM_EZ_DNAT
-A _NDM_SL_PRIVATE -i rai6 -j _NDM_EZ_DNAT
-A _NDM_SL_PRIVATE -i br0 -j _NDM_EZ_DNAT
-A _NDM_SNAT -j _NDM_STATIC_LOOP
-A _NDM_SNAT -o eth3 -j _NDM_STATIC_SNAT
-A _NDM_SNAT -o ppp0 -j _NDM_STATIC_SNAT
-A _NDM_STATIC_LOOP -s 192.168.1.0/24 -d 192.168.1.0/24 -o br0 -j SNAT --to-sour                                                                                                         ce 192.168.1.1
-A _NDM_STATIC_LOOP -s 192.168.1.0/24 -o br0 -m ndmmark --ndmmark 0x4/0x0 -j SNA                                                                                                         T --to-source 192.168.1.1
Summary

:sweat_smile:

В zapret/common/ipt.sh дописать строчку:
ipt_add_del $1 _NDM_MASQ -t nat -o $i -p udp -m mark --mark $DESYNC_MARK/$DESYNC_MARK -j MASQUERADE
Это точно рабочий вариант, уже давно так крутится на всех кинетиках. На основе этого сделал

_fw_nfqws_post4()
{
	# $1 - 1 - add, 0 - del
	# $2 - iptable filter for ipv4
	# $3 - queue number
	# $4 - wan interface names space separated
	[ "$DISABLE_IPV4" = "1" -o -z "$2" ] || {
		local i

		ipt_print_op $1 "$2" "nfqws postrouting (qnum $3)"

		rule="-m mark ! --mark $DESYNC_MARK/$DESYNC_MARK $2 $IPSET_EXCLUDE dst -j NFQUEUE --queue-num $3 --queue-bypass"
		if [ -n "$4" ] ; then
			for i in $4; do
				ipt_add_del $1 POSTROUTING -t mangle -o $i $rule
                ipt_add_del $1 _NDM_MASQ -t nat -o $i -p udp -m mark --mark $DESYNC_MARK/$DESYNC_MARK -j MASQUERADE
			done
		else
			ipt_add_del $1 POSTROUTING -t mangle $rule
		fi
	}
}

P.S. кинетик дропает не родные правила в iptables поэтому нужно еще и в /opt/etc/ndm/netfilter.d правила дописать по zapret restart-fw

Понятно, но это не годится, тк вламывается в код, в который вламываться не нужно.

А такое добавить неплохо

-p udp -m mark --mark $DESYNC_MARK/$DESYNC_MARK

^^^
У него появляется запись с MASQUERADE

мой вариант такой

zapret_custom_firewall()
{
	# $1 - 1 - add, 0 - stop

	local wan wanif rule

	[ "$DISABLE_IPV4" = "1" ] || {
		# use IFACE_WAN if defined. if not - search for interfaces with default route.
		wanif=${IFACE_WAN:-$(sed -nre 's/^([^\t]+)\t00000000\t[0-9A-F]{8}\t[0-9A-F]{4}\t[0-9]+\t[0-9]+\t[0-9]+\t00000000.*$/\1/p' /proc/net/route | sort -u | xargs)}
		for wan in $wanif; do
			rule="-o $wan -p udp -m mark --mark $DESYNC_MARK/$DESYNC_MARK"
			ipt_print_op $1 "$rule" "keenetic udp fix"
			ipt_add_del $1 POSTROUTING -t nat $rule -j MASQUERADE
		done
	}
}

Видимо, кто фикс делал не учел этот момент и он укатился в прод,но теперь все ок. Спасибо за правку теперь действительно работает как надо и еще такой вопрос есть стратегия --dpi-desync=multisplit --dpi-desync-split-pos=1,midsld - --dpi-desync-split-seqovl=1 seqovl ломает сайт hdrezka.ag при его заходе не распознает https соединение и перекидывает просто на http каким образом это можно пофиксить, остальные сайты нормально работают mtu 1500