
Cuando Don't Fragment
se establece el indicador, IPv4 RFC permite establecer el archivo de identificación en 0x0000
.
Tengo un par que está detrás de un firewall que frena RFC y bloquea cualquier paquete IPv4 con dicho 0x0000
campo de identificación. Mi kernel de Linux 4.4.0 "moderno" genera paquetes con ID, 0x0000
por lo que no puedo crear una conexión TCP.
¿Cómo puedo no permitir la generación de esta 0x0000
ID o cómo manipular este campo con iptables mangle o de cualquier otra forma?
Respuesta1
Probablemente te estés refiriendo aRFC 6864.
En Linux 4.17.x pude ver que id = 0 solo aparece de manera confiable para el paquete SYN+ACK de un servidor que responde a una conexión recibida, pero no después.
ACTUALIZACIÓN: OP confirmó que ese también era el caso habitual en la Pregunta (con un kernel 4.4.x).
Probablerequisito mínimo: nftables v0.6 . notrack
no es necesario, a las entradas de conntrack no les importa esta identificación.
Por lo que vale, aquí hay unnftables
regla para alterar el valor de identificación al valor 0xbeef
cuando se establece [DF] y id == 0. No creo que iptables
sea capaz de hacer esto en absoluto.
nft add table raw
nft 'add chain raw output {type filter hook output priority -300;}'
nft 'add rule raw output ip frag-off & 0x4000 != 0 ip id == 0 ip id set 0xbeef'
0x4000
aquí significala DF
bandera.