ในการใช้งาน Proxmox นั้น เราจะมี Proxmox Hardware node(Host) และภายในจะมีเครื่อง Guest ซึ่งเป็น Container(กรณีใช้ OpenVZ) หรือ VM(กรณีใช้ KVM) อยู่หลายเครื่อง ซึ่งเป็น private internal network ทีนี้ถ้าเรามี Public IP แค่ IP เดียว แต่ต้องการให้เครื่อง Guest ออกอินเตอร์เนตได้หรือเข้าถึงได้จากภายนอกด้วย จะทำยังไงมาดูกัน

1

จากรูปเราต้องการ SSH เข้าเครื่อง Guest โดยการทำ NAT ที่เครื่อง Host (Public IP) โดยเข้ามาด้วย port:2202 ก่อนอื่น คอนฟิก Network เครื่อง Proxmox ก่อน โดยกำหนด public IP ให้ vmbr0 interface และให้ private IP แก่ vmbr2 ดังตัวอย่าง

22

จากนั้นสร้างกฏโดยใช้ iptables อนุญาตในส่วน outbound traffic โดยกำหนดให้เมื่อมีการส่ง packet จากวง 192.168.1.0/24 ไปข้างนอกให้ส่งออกด้วย Public IP ของเรา

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o vmbr0 -j SNAT --to 203.146.140.100

จากนั้นลองเข้าไปที่เครื่อง guest แล้วลอง ping google.com จะเห็นว่าเราสามารถออก Internet ได้ เครื่อง guest เราออก Internet ได้แล้วทีนี้ ถ้าเราจะเข้าถึงเครื่อง guest เราจากข้างนอก เช่น ต้องการ SSH เข้า เครื่อง guest ให้เราเพิ่มกฏ ดังนี้

iptables -t nat -A PREROUTING -p tcp -d 203.146.140.100 --dport 2202 -i vmbr0 -j DNAT --to 192.168.1.102:22

เป็นการให้ภายนอก SSH เข้าเครื่อง Guest(192.168.0.102) โดยเข้ามาที่ port:2202 โดยเราสามารถสร้างกฏเพิ่มได้ตามต้องการ
หลังจากสร้างกฏเรียบร้อยแล้ว ให้ใช้คำสั่ง

iptables -t nat -L

เพื่อตรวจสอบกฏทั้งหมด จากนั้นให้เก็บกฏเหล่านี้โดยใช้คำสั่ง

iptables-save > /etc/iptables.rules

และเข้าไปที่ไฟล์ /etc/network/interfaces อีกครั้ง จากนั้นเพิ่มไฟล์ที่เราบันทึกกฏไว้ลงไป ดังรูป

23

ที่ต้องทำแบบนี้เนื่องจากถ้าเราสั่ง iptables เฉย ๆ เวลา boot ระบบ กฏทั้งหมดจะหายหมดนั่นเอง

Comments are closed.