<ก่อนหน้านี้ | Contents | ถัดไป>
6.4 ระบบเครือข่าย
โดยค่าเริ่มต้น LXC จะสร้างเนมสเปซเครือข่ายส่วนตัวสำหรับแต่ละคอนเทนเนอร์ ซึ่งรวมถึงสแต็กเครือข่ายเลเยอร์ 2 คอนเทนเนอร์มักจะเชื่อมต่อกับโลกภายนอกโดยมี NIC จริงหรือปลายทางอุโมงค์สัตวแพทย์ส่งผ่านไปยังคอนเทนเนอร์ LXC สร้าง NATed สะพาน lxcbr0 เมื่อโฮสต์เริ่มต้น คอนเทนเนอร์ที่สร้างโดยใช้การกำหนดค่าเริ่มต้นจะมี NIC veth หนึ่งตัวโดยเสียบปลายรีโมตเข้ากับบริดจ์ lxcbr0 NIC สามารถมีอยู่ในเนมสเปซเดียวเท่านั้นในแต่ละครั้ง ดังนั้น NIC จริงที่ส่งผ่านไปยังคอนเทนเนอร์จะไม่สามารถใช้งานได้บนโฮสต์
สามารถสร้างคอนเทนเนอร์โดยไม่มีเนมสเปซเครือข่ายส่วนตัวได้ ในกรณีนี้ คอนเทนเนอร์จะสามารถเข้าถึงเครือข่ายโฮสต์ได้เหมือนกับแอปพลิเคชันอื่นๆ โปรดทราบว่าสิ่งนี้เป็นอันตรายอย่างยิ่งหาก
คอนเทนเนอร์กำลังเรียกใช้การแจกจ่ายแบบพุ่งพรวดเช่น Ubuntu เนื่องจากโปรแกรมที่คุยกับ init เช่น การปิดจะพูดถึงซ็อกเก็ตโดเมน Unix ที่เป็นนามธรรมกับโฮสต์ที่พุ่งพรวดและปิดโฮสต์
เพื่อให้คอนเทนเนอร์บน lxcbr0 มีที่อยู่ IP ถาวรตามชื่อโดเมน คุณสามารถเขียนรายการไปที่ /etc/lxc/dnsmasq.conf ชอบ:
dhcp-host=lxcmail,10.0.3.100 dhcp-host=ttrss,10.0.3.101
หากเป็นที่พึงปรารถนาสำหรับคอนเทนเนอร์ที่จะเข้าถึงได้แบบสาธารณะ มีวิธีดำเนินการสองสามวิธี หนึ่งคือการใช้
iptables เพื่อส่งต่อพอร์ตโฮสต์ไปยังคอนเทนเนอร์เช่น
iptables -t nat -A การเตรียมการล่วงหน้า -p tcp -i eth0 --dport 587 -j DNAT \
--ถึงปลายทาง 10.0.3.100:587
อีกวิธีหนึ่งคือการบริดจ์อินเทอร์เฟซเครือข่ายของโฮสต์ (ดูบทการกำหนดค่าเครือข่ายของคู่มือเซิร์ฟเวอร์ Ubuntu ส่วนที่ 1.4 “การเชื่อมต่อ” [หน้า 46]) จากนั้นระบุบริดจ์ของโฮสต์ในไฟล์การกำหนดค่าคอนเทนเนอร์แทน lxcbr0 เช่น
lxc.network.type = veth lxc.network.link = br0
สุดท้าย คุณสามารถขอให้ LXC ใช้ macvlan สำหรับ NIC ของคอนเทนเนอร์ได้ โปรดทราบว่าสิ่งนี้มีข้อจำกัดและขึ้นอยู่กับการกำหนดค่า อาจไม่อนุญาตให้คอนเทนเนอร์พูดคุยกับโฮสต์เอง ดังนั้นอีกสองตัวเลือกจึงเป็นที่ต้องการและนิยมใช้กันมากกว่า
มีหลายวิธีในการกำหนดที่อยู่ IP สำหรับคอนเทนเนอร์ ขั้นแรก คุณสามารถใช้ lxc-ls -- แฟนซี ซึ่งจะพิมพ์ที่อยู่ IP สำหรับคอนเทนเนอร์ที่ทำงานอยู่ทั้งหมดหรือ lxc-ข้อมูล -i -H -n C1 ซึ่งจะพิมพ์ที่อยู่ IP ของ C1 หากมีการติดตั้ง dnsmasq บนโฮสต์ คุณสามารถเพิ่มรายการไปที่ /etc/dnsmasq.conf ดังต่อไปนี้
เซิร์ฟเวอร์=/lxc/10.0.3.1
หลังจากนั้น dnsmasq จะแก้ไข C1.lxc ในเครื่อง เพื่อให้คุณทำสิ่งต่อไปนี้ได้
ปิง C1 ssh C1
สำหรับข้อมูลเพิ่มเติม โปรดดูที่หน้าคู่มือ lxc.conf รวมถึงตัวอย่างการกำหนดค่าเครือข่ายภายใต้ /usr/share/doc/lxc/examples/.