The mangle table:
Chain OUTPUT (policy ACCEPT 9427K packets, 26G bytes)
pkts bytes target prot opt in out source destination
19M 48G CONNMARK all -- * * 0.0.0.0/0 0.0.0.0/0 CONNMARK restore mask 0xff00000
7717 435K MARK all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x0/0xff00000 statistic mode random probability 0.50000000000 MARK xset 0x8100000/0xff00000
7609 428K MARK all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0x0/0xff00000 MARK xset 0x8000000/0xff00000
19M 48G MARK all -- * * 0.0.0.0/0 0.0.0.0/0 MARK xset 0xa0000000/0xf0000000
19M 48G CONNMARK all -- * * 0.0.0.0/0 0.0.0.0/0 CONNMARK save mask 0xff00000
the nat table:
Chain POSTROUTING (policy ACCEPT 1552 packets, 85467 bytes)
pkts bytes target prot opt in out source destination
2 104 MASQUERADE all -- * docker0 0.0.0.0/0 0.0.0.0/0 ADDRTYPE match src-type LOCAL
4 208 MASQUERADE all -- * !docker0 172.17.0.0/16 0.0.0.0/0
461K 26M MASQUERADE all -- * * 0.0.0.0/0 0.0.0.0/0 ADDRTYPE match src-type LOCAL
ip rule:
0: from all lookup local
100: from 192.168.0.0/24 lookup 9999
198: from ip1 lookup 10001
199: from ip2 lookup 10000
200: from all fwmark 0x8000000/0xff00000 lookup 10000
200: from all fwmark 0x8100000/0xff00000 lookup 10001
32766: from all lookup main
32767: from all lookup default
ip r
default dev ppp1 scope link
default dev ppp0 scope link
default via 192.168.0.1 dev eth0
x.x.x.0/25 dev ppp0 proto kernel scope link src ip1
x.x.x.0/25 dev ppp1 proto kernel scope link src ip2
169.254.0.0/16 dev eth0 scope link metric 1002
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.107
ip r show table 10000:
default via x.x.x.1 dev ppp0
ip route get ip3:
ip3 dev ppp1 src x.x.x.x uid 0
cache
cat /etc/sysctl.conf:
net.ipv4.conf.default.rp_filter = 2
net.ipv4.conf.all.rp_filter = 2
net.ipv4.ip_forward = 1
it always route from default route table,instead of ppp0,ppp1,ppp0,ppp1.
Any idea?