กำหนดค่า Network
การกำหนดค่า Network เพื่อทำการเชื่อมต่อเซิร์ฟเวอร์กับระบบแลน และอินเทอร์เน็ต
เนื้อหา
ไฟล์กำหนดค่า
ไฟล์กำหนดค่า Network ของ Slackware จะแบ่งออกเป็น 2 ไฟล์ คือ
- /etc/rc.d/rc.inet1 สำหรับกำหนดค่า IP Address และ Routing
- /etc/rc.d/rc.inet2 สำหรับเรียกเซอร์วิสต่างๆ ขึ้นมาทำงาน
โดยปกติแล้ว Slackware จะใช้ไฟล์กำหนดค่าสำหรับไฟล์ /etc/rc.d/rc.inet1 ในอีกไฟล์ คือ /etc/rc.d/rc.inet1.conf สำหรับการกำหนดค่าแบบง่าย ก็สามารถแก้ไขเฉพาะไฟล์นี้ได้โดยตรง แต่สำหรับการกำหนดค่าแบบซับซ้อน การสร้างไฟล์ /etc/rc.d/rc.inet1 เองโดยตรงอาจจะทำได้ง่ายกว่า
ในที่นี้จะแสดงการกำหนดค่าทั้งสองวิธี โดยจะใช้วิธีแรกในกรณีที่ไม่ทำ Network Bonding และจะใช้วิธีหลังในกรณีที่มีการทำ Network Bonding
การแก้ไขไฟล์ /etc/rc.d/rc.inet1.conf
โดยปกติการกำหนดค่าในไฟล์นี้จะทำผ่านโปรแกรม netconfig ซึ่งโปรแกรมจะถามค่าต่างๆ ทีละอย่าง เหมือนกับตอนติดตั้ง Slackware แล้วโปรแกรมก็จะสร้างไฟล์นี้ให้ แต่บางครั้งก็มีความจำเป็นต้องแก้ไขไฟล์นี้เองด้วยเหตุผลบางอย่าง เช่น มีการ์ดแลนหลายใบ
อย่างไรก็ดี หากมีการเรียกโปรแกรม netconfig โปรแกรมจะบันทึกค่าต่างๆ ทับสิ่งที่แก้ไขเองทั้งหมด ดังนั้นหากแก้ไขไฟล์นี้เอง ก็ไม่ควรเรียกโปรแกรม netconfig อีก หรือสามารถสำรองไฟล์ /etc/rc.d/rc.inet1.conf และ /etc/rc.d/rc.inet1 (หากแก้ไข) ไว้ก่อน
ไฟล์ /etc/rc.d/rc.inet1.conf มีโครงสร้างดังนี้
# Config information for eth0: IPADDR[0]="192.168.1.2" NETMASK[0]="255.255.255.0" USE_DHCP[0]="" DHCP_HOSTNAME[0]="" # Config information for eth1: IPADDR[1]="192.168.2.254" NETMASK[1]="255.255.255.0" USE_DHCP[1]="" DHCP_HOSTNAME[1]="" # Default gateway IP address: GATEWAY="192.168.1.1"
ข้อความสีน้ำเงินคือส่วนที่แก้ไขให้ตรงกับที่ต้องการ สำหรับในตัวอย่างข้างต้น eth0 เป็น Uplink ไปยัง router ส่วน eth1 เป็น Downlink ไปยังเครื่องลูก
หากดีไวซ์ของแลนไม่ตรงตามค่าที่กำหนดไว้ (eth0 สำหรับการ์ดใบที่ 0 และ eth1 สำหรับการ์ดใบที่ 1) ก็สามารถระบุชื่อดีไวซ์ได้เอง เช่น
IFNAME[0]="bond0"
กรณีไม่ใช่ Bonding
กรณีที่ไม่ใช้ Network Bonding ให้แก้ไขไฟล์ /etc/rc.d/rc.inet1.conf เป็นดังนี้
# Config information for eth0: IPADDR[0]="192.168.1.2" NETMASK[0]="255.255.255.0" USE_DHCP[0]="" DHCP_HOSTNAME[0]="" # Config information for eth1: IPADDR[1]="192.168.2.254" NETMASK[1]="255.255.255.0" USE_DHCP[1]="" DHCP_HOSTNAME[1]="" # Default gateway IP address: GATEWAY="192.168.1.1"
ข้อความสีน้ำเงินคือส่วนที่เพิ่มหรือแก้ไข (บางจุดอาจจะมีค่านี้อยู่แล้วก็ได้ ในกรณีที่กำหนดค่ามาตั้งแต่ตอนติดตั้ง Slackware)
กรณีใช้ Bonding
กรณีที่ใช้ Network Bonding ให้แก้ไขไฟล์ /etc/rc.d/rc.inet1.conf เป็นดังนี้
# Config information for eth0: IPADDR[0]="192.168.1.2" NETMASK[0]="255.255.255.0" USE_DHCP[0]="" DHCP_HOSTNAME[0]="" # Config information for eth1: IFNAME[1]="bond0" IPADDR[1]="192.168.2.254" NETMASK[1]="255.255.255.0" USE_DHCP[1]="" DHCP_HOSTNAME[1]="" # Default gateway IP address: GATEWAY="192.168.1.1"
ข้อความสีน้ำเงินคือส่วนที่เพิ่มหรือแก้ไข (บางจุดอาจจะมีค่านี้อยู่แล้วก็ได้ ในกรณีที่กำหนดค่ามาตั้งแต่ตอนติดตั้ง Slackware)
การสร้างไฟล์ /etc/rc.d/rc.inet1 เอง
สำหรับผู้ที่ใช้งาน Network Bonding หรือผู้ที่ไม่ต้องการใช้ไฟล์กำหนดค่าที่ซับซ้อน ก็สามารถสร้างไฟล์ /etc/rc.d/rc.inet1 เอง โดยมีเฉพาะคำสั่งที่จำเป็นเท่านั้น
การสร้างไฟล์ /etc/rc.d/rc.inet1 เองตามขั้นตอนนี้ จะไม่สนค่าที่อยู่ในไฟล์ /etc/rc.d/rc.inet1.conf อีกต่อไป
กรณีไม่ใช้ Bonding
กรณีที่ไม่ใช่ Network Bonding ให้สร้างไฟล์ /etc/rc.d/rc.inet1 ดังนี้
#!/bin/sh # /etc/rc.d/rc.inet1 # This script is used to bring up the various network interfaces. # Loopback /sbin/ifconfig lo 127.0.0.1 /sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo # Ethernet /sbin/ifconfig eth0 192.168.1.2 netmask 255.255.255.0 /sbin/ifconfig eth1 192.168.2.254 netmask 255.255.255.0 # Routing /sbin/route add default gw 192.168.1.1 metric 1 # End of /etc/rc.d/rc.inet1
กรณีใช้ Bonding
กรณีที่ไม่ใช่ Network Bonding ให้สร้างไฟล์ /etc/rc.d/rc.inet1 ดังนี้
#!/bin/sh # /etc/rc.d/rc.inet1 # This script is used to bring up the various network interfaces. # Loopback /sbin/ifconfig lo 127.0.0.1 /sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo # Ethernet /sbin/ifconfig eth0 192.168.1.2 netmask 255.255.255.0 /sbin/ifconfig bond0 192.168.2.254 netmask 255.255.255.0 /sbin/ifenslave bond0 eth1 /sbin/ifenslave bond0 eth2 # Routing /sbin/route add default gw 192.168.1.1 metric 1 # End of /etc/rc.d/rc.inet1
NAT
การติดตั้งในที่นี้ จะใช้เครื่องเซิร์ฟเวอร์เป็น Gateway ด้วย เพื่อความสะดวกในการติดตั้ง จึงทำ NAT (Network Address Translation) ที่เครื่องเซิร์ฟเวอร์ด้วย
การทำ NAT อย่างง่ายบน Slackware ให้สร้างไฟล์ /etc/rc.d/rc.firewall ดังนี้
#!/bin/sh # Clear old iptable rules iptables -F iptables -t nat -F iptables -t mangle -F iptables -X iptables -t nat -X iptables -t mangle -X # NAT iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to-source 192.168.1.2
เมื่อบันทึกไฟล์เรียบร้อยแล้ว ให้ทดสอบเรียกไฟล์ ดังนี้
root@diskserv:~# sh /etc/rc.d/rc.firewall
ตรวจสอบผลลัพธ์โดยการใช้คำสั่ง ดังนี้
root@diskserv:~# iptables -t nat -L -nv Chain PREROUTING (policy ACCEPT 108 packets, 90K bytes) pkts bytes target prot opt in out source destination Chain INPUT (policy ACCEPT 124 packets, 83K bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 113 packets, 85K bytes) pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 130 packets, 108K bytes) pkts bytes target prot opt in out source destination 0 0 SNAT tcp -- * eth0 192.168.2.0/24 0.0.0.0/0 to:192.168.1.2 root@diskserv:~#
ถ้าโปรแกรมทำงานเรียบร้อย ก็กำหนดให้โปรแกรมทำงานอัตโนมัติตอนบูตเครื่อง ดังนี้
root@diskserv:~# chmod +x /etc/rc.d/rc.firewall