diff --git a/docs/readme.eng.md b/docs/readme.eng.md index 191ef1e..83c247a 100644 --- a/docs/readme.eng.md +++ b/docs/readme.eng.md @@ -323,11 +323,11 @@ It can be fed with unidirectional or bidirectional packets. A SYN or SYN,ACK packet creates an entry in the conntrack table. +That's why iptables redirection must start with the first packet although can be cut later using connbytes filter. + First seen UDP packet creates UDP stream. It defines the stream direction. Then all packets with the same src_ip,src_port,dst_ip,dst_port are considered to belong to the same UDP stream. UDP stream exists till timeout. -That's why iptables redirection must start with the first packet although can be cut later using connbytes filter. - A connection is deleted from the table as soon as it's no more required to satisfy nfqws needs or when a timeout happens. There're 3 timeouts for each connection state. They can be changed in `--ctrack-timeouts` parameter. diff --git a/docs/readme.txt b/docs/readme.txt index f654047..6ef4389 100644 --- a/docs/readme.txt +++ b/docs/readme.txt @@ -371,11 +371,11 @@ nfqws оснащен ограниченной реализацией слеже conntrack способен следить за фазой соединения : SYN,ESTABLISHED,FIN , количеством пакетов в каждую сторону, sequence numbers. conntrack способен "кормиться" пакетами в обе или только в одну сторону. Соединение попадает в таблицу при обнаружении пакетов с выставленными флагами SYN или SYN,ACK. +Поэтому если необходим conntrack, в правилах перенаправления iptables соединение должно идти на nfqws с самого первого +пакета, хотя затем может обрываться по фильтру connbytes. Для UDP инициатором попадания в таблицу является первый UDP пакет. Он же и определяет направление потока. Считается, что первый UDP пакет исходит от клиента к серверу. Далее все пакеты с совпадающими src_ip,src_port,dst_ip,dst_port считаются принадлежащими этому потоку до истечения времени неактивности. -Поэтому если необходим conntrack, в правилах перенаправления iptables соединение должно идти на nfqws с самого первого -пакета, хотя затем может обрываться по фильтру connbytes. conntrack - простенький, он не писался с учетом всевозможных атак на соединение, он не проверяет пакеты на валидность sequence numbers или чексумму. Его задача - лишь обслуживание нужд nfqws, он обычно кормится только исходящим трафиком, потому нечувствителен к подменам со стороны внешней сети.