Score:0

Netplan - ขอความช่วยเหลือในการจัดการเส้นทางอย่างถูกต้องในการตั้งค่า macvlan

ธง in

ฉันใช้นักเทียบท่ากับ macvlan ซึ่งแต่ละคอนเทนเนอร์ของฉันมีการเชื่อมต่อ L2 พร้อมที่อยู่ MAC และ IP ของตัวเอง ฉันต้องรับประกันด้วยว่าคอนเทนเนอร์เข้าถึงโฮสต์และในทางกลับกัน ฉันสามารถทำสิ่งนั้นได้ในขณะนี้โดยใช้ netplan และสคริปต์เพื่อลบบางเส้นทาง แต่ต้องการให้คุณช่วยเข้าใจว่าฉันสามารถทำได้โดยใช้ netplan

การกำหนดค่าของฉันคือสิ่งนี้:

ชุดสคริปต์เพื่อสร้างอินเทอร์เฟซ macvlan (ยังไม่รองรับบน netplan)

#! /ถัง/ทุบตี
#! ลิงค์ ip เพิ่มลิงค์ macvlan vlan10 ประเภทสะพานโหมด macvlan

อินเทอร์เฟซ vlan10 ถูกสร้างขึ้นด้วยการกำหนดค่า netplan

01-netcfg.yaml

เครือข่าย:
  รุ่น: 2
  เรนเดอร์: เครือข่าย
  อีเธอร์เน็ต:
    eno1:
      dhcp4: ใช่
      dhcp6: ใช่
      ที่อยู่:
        - aaaa:bbbb:cccc:1::11/64

  vlans:
    vlan10:
      รหัส: 10
      ลิงค์: eno1
      dhcp4: ไม่
      dhcp6: ไม่
      ที่อยู่:
        - 192.168.10.11/24
        - aaaa:bbbb:cccc:10::11/64

สิ่งนี้ทำให้มั่นใจได้ว่าอินเทอร์เฟซ VLAN ที่สร้างขึ้นสำหรับนักเทียบท่านั้นถูกสร้างขึ้นและพร้อมใช้งาน

20-docker.yaml

เครือข่าย:
    รุ่น: 2
    เรนเดอร์: เครือข่าย
    อีเธอร์เน็ต:
        แมควาเลน:
            dhcp4: ไม่
            dhcp6: ไม่
            ที่อยู่:
                - 192.168.10.5/24
                - aaaa:bbbb:cccc:10::5/64

ฉันยอมรับว่านี่อาจไม่ใช่วิธีที่มีประสิทธิภาพที่สุดในการตั้งค่าโซลูชันที่ฉันต้องการ แต่วิธีนี้ใช้ได้ผล และด้วยวิธีนี้ฉันจึงหลีกเลี่ยงการสร้างสคริปต์เพื่อเรียกใช้เมื่อรีบูตโดยใช้ cron

ส่วนเส้นทาง

ตอนนี้ฉันได้สร้างอินเทอร์เฟซแล้ว เมื่อสร้างชุดเส้นทางขึ้นมาโดยอัตโนมัติ แม้ว่าฉันจะไม่ได้กำหนดก็ตาม เกตเวย์4 และ เกตเวย์6 คำสั่งและกำหนด netplat เพื่อละเว้นเส้นทางเริ่มต้นของ DHCP เส้นทางนี้สำหรับ IPv4 และ IPv6 จะถูกสร้างขึ้นโดยอัตโนมัติเพื่อหลีกเลี่ยงการเข้าถึงคอนเทนเนอร์ในเครือข่าย vlan10 เนื่องจากข้อจำกัดของไดรเวอร์เครือข่ายนักเทียบท่าโดยการออกแบบ

เส้นทาง IPv4 สำหรับอินเทอร์เฟซใหม่

192.168.10.0/24 dev vlan10 proto kernel scope link src 192.168.10.11
192.168.10.0/24 macvlan proto kernel ขอบเขตลิงค์ src 192.168.10.5
192.168.10.0/24 ผ่าน 192.168.10.5 macvlan proto static metric 100
192.168.10.0/24 ผ่าน 192.168.10.11 dev vlan10 proto static metric 150

เส้นทาง IPv6 สำหรับอินเทอร์เฟซใหม่

aaaa:bbbb:cccc:10::/64 dev vlan10 proto kernel metric 256 pref สื่อ
aaaa:bbbb:cccc:10::/64 dev macvlan proto kernel metric 256 pref สื่อ

เพื่อให้โซลูชันของฉันใช้งานได้ ฉันจำเป็นต้องลบด้วยตนเอง (หรือใช้สคริปต์ boot bash) เพื่อลบเส้นทางเคอร์เนลด้านบนสำหรับอุปกรณ์ vlan10 ใน IPv4 และ IPv6 เมื่อทำงานนั้น ฉันสามารถคืนค่าการสื่อสารระหว่างโฮสต์กับคอนเทนเนอร์ได้

มีวิธีปรับปรุงโซลูชันนี้และหลีกเลี่ยงการสร้างเส้นทางเหล่านั้น หรือมีคำสั่งให้เพิกเฉยต่อเส้นทางเฉพาะที่ฉันไม่ต้องการบนอินเทอร์เฟซนั้นเพื่อรับประกันว่าจะใช้โซลูชันของฉันใน netplan ได้หรือไม่

ขอขอบคุณสำหรับความเชี่ยวชาญและความพร้อมให้บริการของคุณ ขอขอบคุณ

** 20/10/2021 - แก้ไขหลังจากแสดงความคิดเห็นและทดสอบเพิ่มเติม**

หลังจากการทบทวน ทดสอบ และเรียนรู้เพิ่มเติม ฉันได้ดำเนินการเปลี่ยนแปลงต่อไปนี้ซึ่งได้แก้ปัญหาของฉันและอนุญาตให้โฮสต์ของฉันเข้าถึงคอนเทนเนอร์ภายใน แมคแวล อินเตอร์เฟซ.

01-netcfg.yaml

เครือข่าย:
  รุ่น: 2
  เรนเดอร์: เครือข่าย
  อีเธอร์เน็ต:
    eno1:
      dhcp4: ใช่
      dhcp6: ใช่
      ที่อยู่:
        - aaaa:bbbb:cccc:dddd:192:168:1:11/64

  vlans:
    vlan10:
      รหัส: 10
      ลิงค์: eno1
      dhcp4: ไม่
      dhcp6: ไม่
      ที่อยู่:
        - 192.168.10.11/32
        - aaaa:bbbb:cccc:10::11/128
      ลิงค์ท้องถิ่น: []

เปลี่ยนซับเน็ตมาสก์ IPv4 และ IPv8 เป็น /32 และ /128 ตามลำดับ สิ่งนี้ได้สร้างกฎที่เหมาะสมและทำให้โฮสต์ของฉันกู้คืนการสื่อสารกับเครือข่ายคอนเทนเนอร์นักเทียบท่าของฉัน รวมถึง `link-local: []´ เพื่อหลีกเลี่ยงอินเทอร์เฟซนี้เพื่อสร้างลิงค์ IP ในเครื่องที่อาจรบกวน

20-docker.yaml

เครือข่าย:
  รุ่น: 2
  เรนเดอร์: เครือข่าย
  อีเธอร์เน็ต:
    แมควาเลน:
      dhcp4: ไม่
      dhcp6: ไม่
      ที่อยู่:
        - 192.168.10.5/24
        - aaaa:bbbb:cccc:10::5/64

ด้วยการกำหนดค่านี้ ฉันสามารถคืนค่าการสื่อสารระหว่างโฮสต์และคอนเทนเนอร์สำหรับ IPv4 และ IPv6 และหลีกเลี่ยงสคริปต์ภายนอกเพื่อลบเส้นทางหรือประกาศเฉพาะ เส้นทาง: และ นโยบายการกำหนดเส้นทาง: คำสั่งใน netplan

หวังว่านี่จะช่วยผู้อื่นด้วยปัญหาที่คล้ายกัน ขอบคุณ

Score:0
ธง us

เส้นทางเหล่านี้ถูกสร้างขึ้นโดยอัตโนมัติเนื่องจากคุณได้ประกาศสิ่งต่อไปนี้ใน netplan yaml ของคุณ:

  ที่อยู่:
    - 192.168.10.11/24
    - aaaa:bbbb:cccc:10::11/64

หากคุณไม่ต้องการให้มีเส้นทางไปยังเครือข่ายเหล่านี้บน vlan10 อินเทอร์เฟซคุณไม่สามารถประกาศได้

in flag
ขอบคุณสำหรับความคิดเห็นของคุณ. มันสมเหตุสมผลแล้วที่จะใส่ซับเน็ต /32 และ /128 บนอินเทอร์เฟซ `vlan10` และบังคับให้เส้นทางทั้งหมดผ่านอินเทอร์เฟซ `macvlan`

โพสต์คำตอบ

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