โดยสิ่งที่ผมจะนำเสนอคือการทำ NAT แบบ Masquerade ด้วย iptables แบบง่ายๆ นะครับ ไม่ซับซ้อน และ การตั้งค่า DHCP แบบพื้นๆ เท่านั้น ส่วนข้อมูลที่นำมาเขียนเอามาจากไหนนั้น ผมจะเขียนเอาไว้ด้านล่างเผื่อไว้อ้างอิงด้วยครับ
ก่อนอื่นเรามาดู Network Diagram ที่เราทำการทดสอบก่อนครับ
จะเห็นได้ว่าเรามี Server 1 ตัวที่มี Interface Card 2 ใบ โดยให้ขาแรก ต่อกับ WAN และ ขาที่สองต่อกับ Hub หรือก็คือฝั่งที่เป็น LAN นั้นเอง โดยในวงจะมีคอมพิวเตอร์ใช้งาน 1 ตัวเพื่อทำการทดสอบ
ขั้นตอนการ Config Server
ในการ Config ผมจะเข้าโหมดเป็น Super User ไว้แล้วหากท่านไม่ได้ใช้โหมด Super User ให้ใช้คำสั่ง Sudo นำหน้าไปด้วย โดยขั้นตอนต่างๆ มีดังนี้
1. ทำการตั้งค่า IP ของ Interface Card ทั้ง 2 ของ Server โดยใช้คำสั่ง
เพื่อเข้ามาในไฟล์ที่ใช้ตั้งค่า Interfaces และ ทำการตั้งค่า eth0 และ eth1 โดยแทรกคำสั่งดังนี้ลงไปในไฟล์nano /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.251
netmask 255.255.255.0
gateway 192.168.1.254
network 192.168.1.0
broadcast 192.168.1.255
dns-nameservers 192.168.1.254
auto eth1
iface eth1 inet static
address 172.10.1.1
netmask 255.255.255.0
network 172.10.1.0
broadcast 172.10.1.255
2. ทำการเปิดใช้งาน IPv4 Forwarding โดยการเข้าไปแก้ไข File /etc/sysctl.conf ด้วยคำสั่ง
แล้วทำการลบเครื่องหมาย # หน้าบรรทัดคำสั่งnano /etc/sysctl.conf
net.ipv4.ip_forward=1
3. ทำการตั้งค่า iptables rule เพื่อใช้งาน NAT โดยแทรกคำสั่งลงไปในไฟล์ /etc/rc.local โดยต้องให้คำสั่งอยู่ก่อนบรรทัดที่เป็น exit 0 โดยใช้คำสั่ง
คำสั่งที่จะแทรกมีดังนี้nano /etc/rc.local
4. ทำการติดตั้ง DHCP Server เพิ่มเติมด้วยคำสั่ง/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE
และทำการตั้งค่า Interface ที่จะทำการแจก DHCP ด้วยคำสั่งapt-get install isc-dhcp-server
ทำการแก้ไขไฟล์โดยการเพิ่ม Interface ที่เราต้องการลงไปในบรรทัดที่มีคำสั่งnano /etc/default/isc-dhcp-server
5. ทำการตั้งค่าการแจก DHCP โดยเข้าไปลบ # และเปลี่ยนแปลงค่าคำสั่งต่างๆ ดังนี้INTERFACES = "" แก้เป็น INTERFACES = "eth1"
จากนั้นทำการ Restart Server และ ทำการทดสอบด้วยเครื่องคอมพิวเตอร์โดยใช้คำสั่ง ipconfig /all จะได้ผลลัพธ์ดังนี้ddns-update-style none;
option domain-name-servers 192.168.1.254;
default-lease-time 3600;
max-lease-time 7200;
authoritative;
log-facility local7;
subnet 172.10.1.0 netmask 255.255.255.0 {
range 172.10.1.20 172.10.1.220;
option routers 172.10.1.1;
}
ก็จบแล้วนะครับ สำหรับการทำ Gateway Server ด้วย Ubuntu หวังว่าบทความนี้จะมีประโยชน์กับเพื่อนๆ ไม่มากก็น้อยนะครับ หากมีข้อผิดพลาดประการใดในบทความนี้ก็ขออภัยมา ณ ที่นี้ด้วยนะครับ
ที่มาของข้อมูล : http://codeghar.wordpress.com/2012/05/02/ubuntu-12-04-ipv4-nat-gateway-and-dhcp-server/
http://www.itmanage.info/technology/linux/ubuntu/ubuntu_610_gateway.html