ฉันมีโฮสต์ RHEL 7 (IP 192.168.0.10/24) และ RHEL 8 (IP 192.168.0.11/24) ซึ่งทั้งสองอย่างนี้ได้รับแพ็กเก็ตที่ซ้ำกันจากเราเตอร์ซึ่งมีไว้สำหรับโฮสต์อื่น (IP 192.168.1.10/24) . ฉันจะใช้ iptables บนโฮสต์ RHEL 7 และ nftables บนโฮสต์ RHEL 8 เพื่อแก้ไข IP ปลายทางเพื่อให้แต่ละโฮสต์รับแพ็กเก็ตราวกับว่าเป็นปลายทางจริงๆ ได้อย่างไร
ตัวอย่างแพ็กเก็ตบนโฮสต์ rhel7:
[root@rhel7 ~]# tcpdump -nni eth0 พอร์ต 20800
tcpdump: เอาต์พุต verbose ถูกระงับ ใช้ -v หรือ -vv สำหรับการถอดรหัสโปรโตคอลแบบเต็ม
กำลังฟัง eth0, ประเภทลิงก์ EN10MB (Ethernet), ขนาดการดักจับ 262144 ไบต์
11:43:53.339859 IP 1.2.3.4.22551 > 192.168.1.10.20800: ค่าสถานะ [S], seq 2316850366, ชนะ 29200, ตัวเลือก [mss 1460,sackOK,TS val 3894703027 ecr 0,nop,wscale 7], ความยาว 0
ฉันคิดว่าต้องทำบางอย่างในตารางการกำหนดเส้นทาง แต่ฉันไม่ประสบความสำเร็จกับสิ่งนี้:
iptables -t nat -I PREROUTING -d 192.168.1.10 -j DNAT --to 192.168.0.10
ข้อเสนอแนะใด ๆ ฉันถือว่าเมื่อพบคำสั่ง iptables แล้วจะพบคำสั่ง nftables โดยใช้ iptables-translate