>>248
脳内シミュレーションしただけだから間違ってたらゴメンな

処理は
PREROUTING → ルーティング → POSTROUTING
の順で行われるわけだ。

0. PC3
通信開始「PC3のプライベートIPアドレス > プロバイダAのグローバルIPアドレス」

1. PREROUTING
「PC3のプライベートIPアドレス > PC1のプライベートIPアドレス」

2. ルーティング
srcはPC3のプライベートアドレスだから、
table 10のポリシールーティングによってデフォルトルートppp1へルーティングされる。
「PC3のプライベートIPアドレス > PC1のプライベートIPアドレス」→ppp1

3. POSTROUTING
> iptables -t nat -A POSTROUTING -p $2 -s 192.168.100.0/24 -d $1 --dport $3 -j SNAT --to-source {プロバイダAのグローバルIPアドレス}
「プロバイダAのグローバルIPアドレス > PC1のプライベートIPアドレス」→ppp1
> iptables -t nat -A POSTROUTING --source 192.168.100.0/24 --out-interface ppp1 -j MASQUERADE
「プロバイダBのグローバルIPアドレス > PC1のプライベートIPアドレス」→ppp1

となって現象が発生していると考えられる。
原因は192.168.100.0/24へのルーティングが適切に行われていないためなので、
解決策はtable 10にも192.168.100.0/24へのルートを追加する。
ip route add table 10 192.168.100.0/24 dev eth0


あとそれFORWARDフィルタのルール見直したほうが良いと思う。
WANから宛先がプライベートIPアドレスなパケットが入ってくるとPCまで届くんじゃないかな。