はい、David Schwartzの提案に従ってください。
echo -ne 0 > /proc/sys/net/ipv4/conf/all/rp_filter
echo -ne 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter
echo -ne 0 > /proc/sys/net/ipv4/conf/eth3/rp_filter
// eth0とeth1の両方が同じサブネットにあるときに生成される適切な機能、つまりeth1からのARP応答
echo -ne 0 > /proc/sys/net/ipv4/conf/all/arp_filter
echo -ne 2 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo -ne 0 > /proc/sys/net/ipv4/conf/eth0/arp_filter
echo -ne 2 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo -ne 0 > /proc/sys/net/ipv4/conf/eth1/arp_filter
echo -ne 2 > /proc/sys/net/ipv4/conf/eth1/arp_ignore
//Create a table called "new_rt_table" and create a routing rule that says any packet with a mark equal to '1' gets routed according to the "new_rt_table"(can name it whatever you want) table. The file /etc/iproute2/rt_tables is the only source of table names on the system. Internally, routing tables have integer identifiers.
echo 1 new_rt_table >> /etc/iproute2/rt_tables
ip rule add from all fwmark 1 table new_rt_table
//「new_rt_table」テーブルをセットアップして、eth1経由でパケットをルーティングします
ip route add default dev eth1 table new_rt_table
ip route show table new_rt_table
//「ip route」がeth1を介してルーティングできるようにパケットをマークします
iptables -F -t mangle
iptables -t mangle -I OUTPUT -s <ip addr of eth1> -o eth0 -j MARK --set-mark 1
//カーネル構成で複数のルーティングテーブルのサポートを有効にします。
カーネル構成
→ネットワークサポート→ネットワークオプション
[*] IP:高度なルーター
[*] IP:ポリシールーティング
CONFIG_IP_ADVANCED_ROUTER
CONFIG_IP_MULTIPLE_TABLES
//上記の手順は、eth0から出力されるはずのパケットをリダイレクトして、eth1から適切に終了します。
誰かがそれを働かせたら他の方法を親切に提案しなさい。