Score:0

ip ส่งต่อทราฟฟิกจากภายในเครือข่ายบริดจ์

ธง in

ฉันมีการตั้งค่าเครือข่ายดังต่อไปนี้

แผนภาพเครือข่าย

ฉันใช้โฮสต์ที่มี 2 vms vm แต่ละอันกำลังรันเดเบียนด้วย cri-o รันคอนเทนเนอร์บางตัว คอนเทนเนอร์แต่ละรายการมีที่อยู่ IP บนซับเน็ต 10.200.0.0/24 แขกคนหนึ่งใช้ ips บนซับเน็ต 10.200.0.0.0/16 และคนอื่นๆ ใช้ ips บนซับเน็ต 10.200.1.0/16

โฮสต์มีส่วนต่อประสานบริดจ์ br0. โฮสต์ eth0 อินเทอร์เฟซเชื่อมโยงกับ br0 และ vms NIC ก็เป็นส่วนหนึ่งของบริดจ์นั้นเช่นกัน ดังนั้นพวกเขาจึงถูกกำหนด ips บนเครือข่ายย่อย lan ของฉัน (192.168.1.0/24)

โฮสต์มีค่า sysctl ต่อไปนี้ ดังนั้น iptables จึงไม่ควรส่งผลกระทบต่อทราฟฟิกของบริดจ์

net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

ฉันต้องการให้คอนเทนเนอร์สามารถเชื่อมต่อกันได้ (10.200.0.4 ถึง/จาก 10.200.1.2)สิ่งนี้ใช้ได้ผลหากฉันตั้งค่าเส้นทางแบบกำหนดเองสำหรับแขกแต่ละคน:

# แขกรับเชิญ 01
เส้นทาง ip เพิ่ม 10.200.1.0/24 ผ่าน 192.168.1.243
#บนแขก02
เส้นทาง ip เพิ่ม 10.200.0.0/24 ผ่าน 192.168.1.242

จากนั้นฉันสามารถ ping คอนเทนเนอร์อื่น ๆ จากแต่ละคอนเทนเนอร์ได้ แต่ฉันไม่ต้องการตั้งค่าเส้นทางคงที่สำหรับแขกแต่ละคน เนื่องจากฉันจะต้องทำอย่างนั้นสำหรับแขกแต่ละคนทุกครั้งที่มีการเปลี่ยนแปลง

ถ้าฉันลบเส้นทางเหล่านี้ และเพิ่มเส้นทางคงที่ไปยังโฮสต์ของฉัน ฉันสามารถ ping คอนเทนเนอร์ทั้งหมดจากโฮสต์นั้น:

เส้นทาง ip เพิ่ม 10.200.0.0/24 ผ่าน 192.168.1.242
เส้นทาง ip เพิ่ม 10.200.1.0/24 ผ่าน 192.168.1.243

# ตารางเส้นทางของผู้เข้าร่วมยังคงเป็นค่าเริ่มต้นด้วยเส้นทางเริ่มต้นผ่าน br0/eth0

# สำหรับ 192.168.1.243
เริ่มต้นผ่าน 192.168.1.1 dev enp1s0 
10.200.1.0/24 dev cni0 ลิงก์ขอบเขตเคอร์เนลโปรโต src 10.200.1.1 
192.168.1.0/24 dev enp1s0 โปรโตเคอร์เนลขอบเขตลิงก์ src 192.168.1.243

แต่สิ่งสำคัญคือคอนเทนเนอร์ไม่สามารถเข้าถึงได้ ฉันคาดว่าการรับส่งข้อมูลจะเปลี่ยนจากคอนเทนเนอร์เป็น br0 ถึง eth0 ซึ่งจะส่งต่อการรับส่งข้อมูลนั้นกลับไปที่ br0 ถึง .242 หรือ .243 ตามที่กำหนดค่าด้วย เพิ่มเส้นทาง ip.

ฉันเห็นได้ด้วย tcpdump ว่าทราฟฟิกเข้าถึง br0 และ eth0 บนโฮสต์ แต่ไม่ได้ส่งต่อกลับไปที่ br0 กำลังกลับไปที่เราเตอร์ของฉันซึ่งไม่รู้วิธีกำหนดเส้นทาง 10.200.0.0/16 หากฉันเพิ่มเส้นทางแบบสแตติกไปยังเราเตอร์ 10.200.0.0/16 ผ่าน 192.168.103สิ่งนี้ใช้งานได้จริงเนื่องจากโฮสต์ของฉัน (.103) รู้วิธีส่งต่อทราฟฟิกนี้ไปยัง br0 และไปที่ .242 หรือ .243 ตามการตั้งค่าเส้นทางคงที่ด้วยตนเอง

ดังนั้น ดูเหมือนว่าการจราจรจะถูกกำหนดเส้นทางอย่างถูกต้องเมื่อมาจากภายนอก eth0/br0 แต่ไม่ใช่เมื่อมาจากภายในของแขก ฉันเข้าใจว่าการเชื่อมโยงใช้งานได้บน L2 ดังนั้นการรับส่งข้อมูลจึงจำเป็นต้องกำหนดเส้นทางบน L3 ที่ใดที่หนึ่ง แต่ทำไมการส่งต่อจึงถูกต้องเมื่อเริ่มต้นจากภายนอกผู้เยี่ยมชม แต่ไม่ใช่เมื่อมาจากภายในผู้เยี่ยมชม

โพสต์คำตอบ

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