ตัวอย่างการคอนฟิก Ethernet Card  โดยใช้ Command Line

หมายเหตุ บทความนี้เขียนจากประสบการส่วนตัว  อาจจะไม่ถูกต้องร้อยเปอร์เซ็นต์  ถ้าผิดพลาดต้องขออภัยด้วย

บ่อยครั้งที่มีความจำเป็นต้องคอนฟิกการ์ดแลนบน
Linux โดยใช้ Command Line ซึ่งคำสั่งที่นิยมใช้กันคำสั่งหนึ่งก็คือ ifconfig ตัวอย่างการใช้งานเช่น :

#ifconfig eth0 192.168.1.1netmask 255.255.255.0 up
#ifconfig eth0:1 192.168.2.1 netmask 255.255.255.0 up

แต่ปัญหาของคำสั่งนี้ที่ผมเจอก็คือเมื่อมีการ
Reboot เครื่องใหม่  ค่าของ Network ที่ได้เซ็ตไว้จะหายไป  ซึ่งการที่จะไม่ให้ค่าที่ได้เซ็ตไว้หายไปก็สามารถทำได้ด้วยการใช้คำสั่ง setup ซึ่งเมื่อเรียกคำสั่งนี้แล้วก็จะมีเมนูให้เลือกหลายเมนู  การเซ็ตค่า Network ก็ให้เลือกเมนู  Network Configuration ดังรูปที่ 1 และการคอนฟิกค่าต่าง ๆ ก็ให้ใส่ข้อมูลดังรูปที่ 2


รูปที่ 1


รูปที่ 2

แต่การคอนฟิกด้วยการใช้คำสั่ง
setup ็ยังมีขีดจำกัดอยู่เช่นกันคือสามารถเซ็คค่าของการ์ดแลนได้การ์ดเดียวเท่านั้น ซึ่งถ้ามีการ์ดแลนมากกว่านี้ก็จะเจอปัญหา  และจากรูปที่ 2 จะเห็นว่าค่าของ DNS ็สามารถเซ็ตได้เฉพาะ Primary nameserver ท่านั้น

เพื่อหลีกเลี่ยงขีดจำกัดดังกล่าวมีอีกวิธีหนึ่งที่สามารถช่วยได้คือการเข้าไปคอนฟิกที่ไฟล์ที่ทำหน้าที่เก็บข้อมูลเกี่ยวกับ
Network ะเลย  ซึ่งไฟล์ที่ใช้เก็บข้อมูลที่จำเป็นเกี่ยวกับ Network Configuration (ตามความเข้าใจของผม) จะมีอยู่ 2 ชุดด้วยกัน คือ
1
. ไฟล์ /etc/sysconfig/network
2.
ป็นกลุ่มไฟล์ที่เกี่ยวกับ Network ึ่งจะอยู่ภายใต้ไดเร็กทอรี่ /etc/sysconfig/networking/profiles/defalut ึ่งในตำแหน่งนี้อาจจะประกอบด้วยไฟล์ดังต่อไปนี้
     - hosts
     - ifcfg-eth0
     - network
     - resolv.conf

แต่ละไฟล์เก็บข้อมูลอะไร
1.ข้อมูลในไฟล์
/etc/sysconfig/network  อาจจะมีดังนี้

NETWORKING=YES
HOSTNAME=south.intranet.cattelecom.co.th
GATEWAY=172.24.51.1

โดยค่า
GATEWAY จะเป็นค่า Gateway สำหรับทุก Interface แต่ถ้ามีการระบุค่า Gateway ที่แต่ละ Interface แล้ว ระบบจะใช้ค่า Gateway ของแต่ละ Interface เป็นหลัก  ยกเว้นถ้าที่แต่ละ Interface เช่นที่ etho ไม่ได้ระบุค่า Gateway เอาไว้ ค่าของ Gateway ในไฟล์นี้ก็จะถูกใช้

2. ข้อมูลที่อยู่ในกลุ่มไฟล์ที่อยู่ภายใต้ไดเร็กทอรี่
/etc/sysconfig/networking/profiles/defalut
    2.1 ไฟล์ hosts จะเก็บค่าเกี่ยวกับชื่อ host ซึ่งอาจจะมีค่าดังนี้

           # Do not remove the following line, or various programs
           # that require network functionality will fail.
           127.0.0.1 south.intranet.cattelecom.co.th south localhost.localdomain
 
           localhost
 
    2.2 ไฟล์
ifcfg-eth0 จะเก็บค่าต่าง ๆ ของ eth 0 ซึ่งอาจจะมีข้อมูลเป็นดังนี้

           DEVICE=eth0
           ONBOOT=yes
           BOOTPROTO=none
           IPADDR=172.24.51.11
           NETMASK=255.255.255.0
           GATEWAY=172.24.51.1
           TYPE=Ethernet
           USERCTL=no
           PEERDNS=no
           NETWORK=172.24.51.0
           BROADCAST=172.24.51.255

    2.3 ไฟล์
network ซึ่งในไฟล์อาจจะมีข้อมูลดังนี้

           HOSTNAME=south.intranet.cattelecom.co.th   

    2.4 ไฟล์
resolv.conf  ภายในไฟล์นี้จะเป็นข้อมูลของ nameserver ซึ่งอาจจะมีข้อมูลเป็นดังนี้

           nameserver 202.129.16.69
           nameserver 202.129.27.134
           nameserver 202.129.16.28

ไฟล์ที่เราต้องคอนฟิก
จากประสบการณ์ถ้าต้องการจะเปลี่ยนแปลงค่า
IP Address ของการ์ดแลน และต้องการเปลี่ยน nameserver ก็ต้องคอนฟิกไฟล์ดังต่อไปนี้
1. ไฟล์ที่เป็น
Interface ของการ์ดแลน ในที่นี้คือ /etc/sysconfig/networking/profiles/defalut/ifcfg-eth0  โดยให้ทำการแก้ไขข้อมูลในไฟล์นี้ตามความต้องการใช้งานจริง
2.
ฟล์ /etc/sysconfig/networking/profiles/defalut/resolv.conf เพื่อเปลี่ยนค่า nameserver (DNS) ที่ต้องการใช้งาน


--------จบ--------