# ct mark set jhash ip saddr . ip daddr mod 2 seed 0xdeadbeef [ { "mangle": { "key": { "ct": { "key": "mark" } }, "value": { "jhash": { "expr": { "concat": [ { "payload": { "field": "saddr", "protocol": "ip" } }, { "payload": { "field": "daddr", "protocol": "ip" } } ] }, "mod": 2, "seed": 3735928559 } } } } ] # ct mark set jhash ip saddr . ip daddr mod 2 [ { "mangle": { "key": { "ct": { "key": "mark" } }, "value": { "jhash": { "expr": { "concat": [ { "payload": { "field": "saddr", "protocol": "ip" } }, { "payload": { "field": "daddr", "protocol": "ip" } } ] }, "mod": 2 } } } } ] # ct mark set jhash ip saddr . ip daddr mod 2 seed 0x0 [ { "mangle": { "key": { "ct": { "key": "mark" } }, "value": { "jhash": { "expr": { "concat": [ { "payload": { "field": "saddr", "protocol": "ip" } }, { "payload": { "field": "daddr", "protocol": "ip" } } ] }, "mod": 2, "seed": 0 } } } } ] # ct mark set jhash ip saddr . ip daddr mod 2 seed 0xdeadbeef offset 100 [ { "mangle": { "key": { "ct": { "key": "mark" } }, "value": { "jhash": { "expr": { "concat": [ { "payload": { "field": "saddr", "protocol": "ip" } }, { "payload": { "field": "daddr", "protocol": "ip" } } ] }, "mod": 2, "offset": 100, "seed": 3735928559 } } } } ] # ct mark set jhash ip saddr . ip daddr mod 2 offset 100 [ { "mangle": { "key": { "ct": { "key": "mark" } }, "value": { "jhash": { "expr": { "concat": [ { "payload": { "field": "saddr", "protocol": "ip" } }, { "payload": { "field": "daddr", "protocol": "ip" } } ] }, "mod": 2, "offset": 100 } } } } ] # dnat to jhash ip saddr mod 2 seed 0xdeadbeef map { 0 : 192.168.20.100, 1 : 192.168.30.100 } [ { "dnat": { "addr": { "map": { "key": { "jhash": { "expr": { "payload": { "field": "saddr", "protocol": "ip" } }, "mod": 2, "seed": 3735928559 } }, "data": { "set": [ [ 0, "192.168.20.100" ], [ 1, "192.168.30.100" ] ] } } } } } ] # ct mark set symhash mod 2 offset 100 [ { "mangle": { "key": { "ct": { "key": "mark" } }, "value": { "symhash": { "mod": 2, "offset": 100 } } } } ]