คุณเข้าใจผิดเกี่ยวกับปัญหา ไม่ใช่ทุกแพ็คเก็ตเป็นการตอบสนองและไม่ใช่ทุกแพ็คเก็ตที่สามารถจับคู่กับแพ็คเก็ตอื่น ๆ ได้เช่น "อินเทอร์เฟซเครือข่ายเดียวกันกับที่เข้ามา" สิ่งที่คุณต้องการทำคือเลือกเกตเวย์สำหรับแพ็กเก็ตตามที่อยู่ IP ต้นทาง
สิ่งนี้เรียกว่าการกำหนดเส้นทางตามแหล่งที่มาหรือการกำหนดเส้นทางนโยบาย คุณสามารถทำได้ด้วยกฎง่าย ๆiptables
แต่วิธีที่ดีที่สุดคือการตั้งค่าตารางเส้นทางสองตารางหนึ่งตารางสำหรับที่อยู่สาธารณะแต่ละแห่ง:
ขั้นแรกสร้างสองตาราง (แทนที่ <NAME1> และ <NAME2> ด้วยชื่อที่สมเหตุสมผลสำหรับผู้ให้บริการสองรายของคุณเช่นเดียวกับ IP1, DEV1 และอื่น ๆ ):
echo 200 <NAME1> >> /etc/iproute2/rt_tables
echo 201 <NAME2> >> /etc/iproute2/rt_tables
เพิ่มเกตเวย์ในแต่ละตารางเส้นทาง (ถ้าจำเป็น):
ip route add <NET1> dev <DEV1> src <SRC1> table <NAME1>
ip route add <NET2> dev <DEV2> src <SRC2> table <NAME2>
จากนั้นเป็นเส้นทางเริ่มต้น:
ip route add default via <IP1> table <NAME1>
ip route add default via <IP2> table <NAME2>
จากนั้นกฎในการเลือกตารางเส้นทางตามที่อยู่ต้นทาง:
ip rule add from <IP1> table <NAME1>
ip rule add from <IP2> table <NAME2>
ดูการกำหนดเส้นทางสำหรับอัปลิงค์ / ผู้ให้บริการหลายรายสำหรับรายละเอียดเพิ่มเติม