Score:1

iptables: กฎที่แตกต่างกันสำหรับ IP ของเกตเวย์ปัจจุบันที่แตกต่างกัน

ธง au

สมมติว่าฉันมีเครื่อง A เป็นเกตเวย์ เครื่อง A มีอินเทอร์เฟซเดียวที่มี 2 IP

การกำหนดค่า netplan สำหรับเครื่อง A เป็นดังนี้:

  เรนเดอร์: เครือข่าย
  อีเธอร์เน็ต:
    eth0:
      dhcp4: ไม่
      ที่อยู่:
        - 192.168.1.1/24
        - 192.168.1.2/24

ตอนนี้ฉันต้องการให้กฎ REDIRECT ของ iptables ทำงานแตกต่างกันขึ้นอยู่กับว่า Machine B ตั้งค่าเกตเวย์เป็น 192.168.1.1 หรือเป็น 192.168.1.2

นี่คือคำสั่ง iptables ที่ฉันพยายามดำเนินการบนเครื่อง A:

iptables --table nat --append PREROUTING --some-parameter 192.168.1.1 --protocol tcp --jump REDIRECT --to-ports 9991
iptables --table nat --append PREROUTING --some-parameter 192.168.1.2 --protocol tcp --jump REDIRECT --to-ports 9992

คุณช่วยบอกชื่อที่ถูกต้องสำหรับ --บางพารามิเตอร์ ข้างต้น?

Score:1
ธง cl
A.B

ไม่มีทางที่จะทำเช่นนี้กับ 192.168.1.1 และ 192.168.1.2 บนอินเทอร์เฟซเครือข่ายเดียวกันของเกตเวย์ ดังนั้นการแก้ไขไปยังที่อยู่ MAC เดียวกัน ไม่ใช่คุณสมบัติที่ไม่ได้ใช้งาน iptables ที่สามารถนำไปใช้ได้ เป็นคุณสมบัติที่ไม่สามารถนำไปใช้ได้เนื่องจากการทำงานของเครือข่าย IP

ไคลเอนต์ที่ใช้ 192.168.1.1 หรือ 192.168.1.2 เป็นเกตเวย์จะไม่ส่งแพ็กเก็ต IPv4 เดียวที่มี 192.168.1.1 หรือ 192.168.1.2 อยู่ในนั้นเมื่อส่งแพ็กเก็ตไปยังอินเทอร์เน็ต มันจะ:

  • ศึกษาตารางเส้นทางสำหรับปลายทางที่กำหนด
  • พบว่ามีเกตเวย์สำหรับปลายทางนี้
  • ใช้ ร.ฟ.ท หรือรายการแคชเพื่อแก้ไขที่อยู่ L2 (ที่อยู่ MAC ของอีเธอร์เน็ต) ที่จำเป็นในการเข้าถึงเกตเวย์

ขั้นตอนสุดท้ายจะมีปลายทางอีเธอร์เน็ตเพียงแห่งเดียว: ที่อยู่ MAC เฉพาะของ NIC ของเกตเวย์: เหมือนกันสำหรับไคลเอนต์ที่มีเกตเวย์ 192.168.1.1 หรือไคลเอนต์อื่นที่มีเกตเวย์ 192.168.1.2

ดังนั้น ไคลเอนต์แต่ละรายจะส่งแพ็กเก็ตไปยังเกตเวย์ด้วยที่อยู่ต้นทาง IPv4 ซึ่งเป็นปลายทาง IPv4 ที่ต้องการในเฟรมอีเทอร์เน็ตซึ่งมีที่อยู่ MAC ของอีเทอร์เน็ตปลายทางเดียวกันในทั้งสองกรณี 192.168.1.1/192.168.1.2 ออกจากลูป

ขณะนี้เกตเวย์เห็นสองแพ็กเก็ตที่จะกำหนดเส้นทาง ไม่ว่าในกรณีใดแพ็กเก็ตเหล่านี้จะบอกใบ้อีกต่อไปหากใช้งานอยู่ 192.168.1.1 หรือ 192.168.1.2 เป็นเกตเวย์: ข้อมูลไม่ปรากฏบนสายดังนั้นจึงไม่สามารถรู้ได้จากที่ใดโดยเกตเวย์ ถ้าระบบไม่มีข้อมูลในการแยกแยะกรณีละก็ iptables ไม่สามารถมีข้อมูลที่ไม่มีอยู่นี้ได้เช่นกัน


คำแนะนำวิธีแก้ปัญหา:

สามารถใช้ก แมคแวลแลน อินเตอร์เฟสเพื่อให้มี NIC ที่สองซึ่งมีที่อยู่ MAC แยกต่างหาก และกำหนด 192.168.1.2/24 ให้กับมันแทน ซึ่งจะทำให้แพ็กเก็ตจากไคลเอนต์ที่ใช้ 192.168.1.2 เป็นเกตเวย์มาถึง NIC นี้แทน กรณีนี้แยกแยะได้ง่าย iptables: ความแตกต่าง -i นิค กรอง.

แต่สิ่งนี้สร้างปัญหาการกำหนดเส้นทางของการมี NIC หลายตัวใน LAN เดียวกัน และต้องใช้อย่างใดอย่างหนึ่ง:

  • กฎการกำหนดเส้นทางนโยบายขั้นสูงเพื่อจัดการกับกรณีนี้อย่างเหมาะสม

    ดังนั้นการตอบกลับจะไม่ถูกส่งผ่าน NIC ที่ไม่ถูกต้อง ซึ่งอาจจะส่งผลต่อพฤติกรรมการกำหนดเส้นทางหรือกฎไฟร์วอลล์

    • และนอกจากนี้ บริการ UDP ใดๆ ที่สอบถามบน 192.168.1.2 (หากเป็นค่าเริ่มต้น 192.168.1.1) ต้องรู้วิธีตอบด้วยที่อยู่ต้นทางที่ถูกต้อง 192.168.1.2 (แทนที่จะเป็นค่าเริ่มต้น 192.168.1.1): จะต้องเป็นแบบหลายบ้าน รับรู้. TCP ไม่ต้องการการดูแลเป็นพิเศษ
  • หรือเนมสเปซเครือข่ายเพิ่มเติมเพื่อแยกส่วนต่อประสานที่เพิ่ม แต่ด้วยกฎ REDIRECT นั่นหมายถึงบริการบนพอร์ต 9992 ต้องทำงานในเนมสเปซเครือข่ายเพิ่มเติมแทนและเนมสเปซเครือข่ายนี้ยังคงต้องสื่อสารกับอินเทอร์เน็ตโดยใช้เนมสเปซเครือข่ายเริ่มต้น: รวมถึงการกำหนดค่าเพิ่มเติมเพื่อวางแผนในที่ต่างๆ

โพสต์คำตอบ

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