Aqui está outra abordagem. Em vez de marcar as conexões com base na contagem de pacotes e esperar que elas não sejam reinicializadas, duplicadas ou alteradas de alguma outra forma, basta dividir os pacotes pelo IP de origem ou de destino. Para qualquer conjunto suficientemente grande de conexões, você deve ter um spread de 50 a 50.
Estou postando o seguinte como substituto imediato, mas você provavelmente pode acabar com a lógica CONNMARK completamente com um pouco mais de ajustes.
iptables -t mangle -A PREROUTING -m state --state NEW \
-d 0.0.0.0/0.0.0.1 -j CONNMARK1
iptables -t mangle -A PREROUTING -m state --state NEW \
-d 0.0.0.1/0.0.0.1 -j CONNMARK2
Você também pode alterar o destino para a origem se houver mais variação nos IPs de origem ou até combiná-los em um colchete. (ímpar / ímpar ou par / par são CONNMARK1, ímpar / par ou par / ímpar são CONNMARK2).