บางครั้งเราต้องคอนฟิกหลาย IP Address ในพอร์ตแลนเดียวกัน (หรือเรียกว่าสร้าง Virtual IP เพิ่มเติม หรือคอนฟิก Secondary IP ในอุปกรณ์ Cisco)
ใบบทความนี้ จะอธิบายวิธีคอนฟิกทั้งการเพิ่ม และลบ IP บนลีนุกซ์
สมมติว่าต้องการคอนฟิกหลาย IP เพิ่มเติมบนพอร์ต eth0 ที่มี IP เดิมอยู่แล้วคือ 192.168.1.1
[root@cent6 ~]# ifconfig eth0 Link encap:Ethernet HWaddr 08:00:22:33:44:55 inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1160 errors:0 dropped:0 overruns:0 frame:0 TX packets:411 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:107256 (104.7 KiB) TX bytes:57832 (56.4 KiB) ...
หากต้องการคอนฟิกเพิ่ม IP Address บนพอร์ต สามารถทำได้โดย ใช้คำสั่ง ifconfig ระบุชื่อพอร์ต ตามด้วยเครื่องหมาย : ตามด้วยตัวเลขใดๆ ก็ได้ เช่น 0,1,2,3… โดยพิมพ์ชื่อพอร์ต : และตัวเลขติดกันเลยไม่มีเว้นวรรค
คำเตือน ระมัดระวังอย่าลืมระบุเครื่องหมาย : ติดกับชื่อพอร์ต ทั้งตอนที่เพิ่ม IP และลบ IP ออก ไม่เช่นนั้น จะเป็นการแก้ไขคอนฟิกของพอร์ตหลักเลย
เพิ่ม IP Address เข้าพอร์ต
ตัวอย่างเช่นต้องการเพิ่ม IP 192.168.1.2 สามารถทำได้โดยใช้คำสั่ง
[root@cent6 ~]# ifconfig eth0:0 192.168.1.2 netmask 255.255.255.0
IP ที่เพิ่มสามารถใช้งานได้เลย อาจลองทดสอบด้วย ping จากเครื่องอื่น
[root@cent6 ~]# ifconfig eth0 Link encap:Ethernet HWaddr 08:00:22:33:44:55 inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2545 errors:0 dropped:0 overruns:0 frame:0 TX packets:1304 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:235956 (230.4 KiB) TX bytes:163294 (159.4 KiB) eth0:0 Link encap:Ethernet HWaddr 08:00:22:33:44:55 inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 ...
เราอาจเรียกพอร์ตที่เราคอนฟิกเพิ่มใหม่ eth0:0 ว่า Virtual Port เรียกพอร์ตหลัก eth0 ว่า Physical Port
หากต้องการเพิ่มอีก IP ก็ทำได้โดยใส่ตัวเลขอื่น เช่น
[root@cent6 ~]# ifconfig eth0:1 192.168.1.3 netmask 255.255.255.0 [root@cent6 ~]# ifconfig eth0 Link encap:Ethernet HWaddr 08:00:22:33:44:55 inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2639 errors:0 dropped:0 overruns:0 frame:0 TX packets:1377 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:244978 (239.2 KiB) TX bytes:172136 (168.1 KiB) eth0:0 Link encap:Ethernet HWaddr 08:00:22:33:44:55 inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 eth0:1 Link encap:Ethernet HWaddr 08:00:22:33:44:55 inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 ...
สังเกตว่าพอร์ตที่เราคอนฟิกเพิ่มใหม่ หรือ Virtual Port ใช้ HWaddr หรือ MAC Address เดียวกันกับพอร์ตหลัก
ลบ IP Address ออกจากพอร์ต
หากต้องการเอา IP Address ที่เพิ่มออก ก็ใช้คำสั่ง ifconfig ตามด้วยชื่อพอร์ตที่เพิ่ม ระบุคำว่า down ต่อท้าย
[root@cent6 ~]# ifconfig eth0:1 down [root@cent6 ~]# ifconfig eth0 Link encap:Ethernet HWaddr 08:00:22:33:44:55 inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2730 errors:0 dropped:0 overruns:0 frame:0 TX packets:1445 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:253274 (247.3 KiB) TX bytes:181816 (177.5 KiB) eth0:0 Link encap:Ethernet HWaddr 08:00:22:33:44:55 inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
แก้ไขคอนฟิกไฟล์ ตอนบู๊ตของ RedHat/CentOS
เมื่อได้คอนฟิก IP ที่ต้องการแล้ว หากต้องการใส่ไว้ในคอนฟิกตอนบู๊ตเครื่อง ให้มีการคอนฟิก IP เพิ่มเลย อาจทำได้ง่ายๆ โดยใส่เป็นคำสั่งไว้ในไฟล์ /etc/rc.d/rc.local แต่แนะนำให้สร้างไฟล์คอนฟิกในรูปแบบ ifcfg-eth ในไดเร็คทอรี /etc/sysconfig/network-scripts/ เพื่อให้คำสั่งประเภทช่วยคอนฟิก เช่น system-config-network สามารถใช้งานได้ด้วย
ตัวอย่างเช่นคอนฟิกไฟล์ IP ของพอร์ต eth0:0
[root@cent6 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0:0 DEVICE=eth0:0 TYPE=Ethernet BOOTPROTO=none IPADDR=192.168.1.2 NETMASK=255.255.255.0 IPV6INIT=no USERCTL=no
IP Address ที่เพิ่ม ไม่จำเป็นต้องอยู่ใน Subnet เดียวกันกับ IP หลัก แต่ถ้าอยู่ใน Subnet เดียวกัน Netmask น่าจะเหมือนกัน ไม่งั้นอาจเกิดปัญหาได้ ลองนำไปใช้กันดูครับ