Score:1

NAT Packet ออกจากเกตเวย์ที่ไม่ถูกต้อง

ธง us
Psi

สมมติว่าฉันมีสองอินเทอร์เฟซ eth0 และ เอทธิล0.4000 เป็น vlan ทั้งสองมีเกตเวย์เริ่มต้น ทุกอย่างทำงานตามที่คาดไว้เมื่อกระบวนการรับฟังอินเทอร์เฟซโดยตรง

แต่ไม่ใช่สำหรับ โฮสต์พอร์ต การผูกมัดของ Kubernetes

vlan.gw-mac > eth0-mac, ethertype 802.1Q (0x8100), ความยาว 78: vlan 4000, p 0, ethertype IPv4 (0x0800), clientIP.38712 > vlanIP.80: ค่าสถานะ [S]
eth0-mac > eth0.gw-mac, ethertype IPv4 (0x0800), ความยาว 74: vlanIP.80 > clientIP.38712: ค่าสถานะ [S.]

SYN มาจาก vlan.gatewayได้รับการส่งต่อไปยังคอนเทนเนอร์ แต่คำตอบ SYN-ACK ออกจากสแต็ก eth0.gw และไม่ถูกต้อง vlan.gw แต่ tcpdump แสดงว่า sourceIP คือ vlanIP.

ตารางเส้นทางดูดี:

# เส้นทาง ip ไปที่ <clientIP> จาก <vlanIP> dev eth0.4000
<clientIP> จาก <vlanIP> ผ่าน <vlan.gw> dev eth0.4000 ตาราง 1 uid 0

การแมป hostPort ถูกสร้างขึ้นผ่าน พอร์ตแมป CNI-Plugin ซึ่งใช้ DNAT และ SNAT (ลิงก์รายละเอียด) ดังนั้นการค้นหาเกตเวย์จึงเกิดขึ้นตั้งแต่เนิ่นๆ เมื่อฉันเพิ่มเส้นทางจาก container-ip ไปยังตารางการค้นหา 1 ด้วยตนเอง มันใช้งานได้โดยใช้อินเทอร์เฟซ vlan แต่ทำลาย eth0

ดังนั้นคำถามคือ - สิ่งที่ต้องทำเพื่อให้การกำหนดเส้นทางเกิดขึ้น หลังจาก NAT แทนที่ container-ip ด้วย interface-ip?

Score:2
ธง de

คุณพูดถูกที่ SNAT โดยนัยจาก DNAT เกิดขึ้นช้าเกินไป ณ จุดนั้น การตัดสินใจกำหนดเส้นทางได้ดำเนินการไปแล้ว ดังนั้น IP ต้นทางที่ถูกต้องจึงถูกใช้บนอินเทอร์เฟซที่ไม่ถูกต้อง

เพื่อหลีกเลี่ยงปัญหานี้ คุณจะต้องเจาะลึกเกี่ยวกับการกำหนดเส้นทางตามนโยบาย เทคนิคที่อธิบายไว้ใน https://superuser.com/questions/638044/source-based-policy-routing-nat-dnat-snat-aka-multi-wans-on-centos-5 สามารถใช้ได้.

ในการทำเช่นนี้คุณต้องมีห่วงโซ่ PREROUTING ของคุณในตาราง mangle:

-A PREROUTING -i vlanIface -m state --state NEW,RELATED,ESTABLISHED -d <vlanIP> -j CONNMARK --set-mark 0x10/0x10
-A PREROUTING -m connmark --mark 0x10/0x10 -j CONNMARK --restore-mark --cfmask 0x10

ด้วยวิธีนี้ แพ็กเก็ตทั้งหมดที่เป็นของการเชื่อมต่อที่เริ่มต้นผ่าน vlanIface จะมีการตั้งค่า 0x10 ใน fwmark สามารถใช้กับ PBR ได้ สมมติว่าเครือข่ายพ็อดของคุณคือ 10.0.0.0/8 และตารางสำหรับเกตเวย์สำรองของคุณคือ 1:

กฎ ip เพิ่ม fwmark 0x10/0x10 จาก 10.0.0.0/8 ตารางที่ 1

คุณอาจสามารถออกจาก จาก 10.0.0.0/8แต่เป็นเครือข่ายความปลอดภัยที่มีประโยชน์จากการตั้งค่า fwmarks ที่ไม่ถูกต้อง (เช่น เนื่องจากสิ่งอื่นใช้เครื่องหมายเฉพาะ)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา