Zeroconf ช่วยให้เครื่องที่อยู่ในเน็ตเดียวกันสามารถคุยกันได้ แม้ไม่ต้องคอนฟิก IP หรือไม่ต้องใช้ DHCP โดย Zeroconf จะคอนฟิกไอพีให้อยู่ในเน็ต 169.254.0.0 (link-local) โดยอัตโนมัติ ใช้งานได้ทั้ง Windows, Linux
หากลองสังเกตดู เช่นคุณตั้งใจเซ็ตให้เครื่องรับไอพีจาก DHCP Server แต่ DHCP ใช้งานไม่ได้ ไม่ว่าจะเหตุผลใดก็ตาม ลองดู Status จะเห็นว่าเครื่องคุณจะได้ไอพีที่อยู่ในเน็ต 169.254.0.0 มาโดยอัตโนมัติ
ตัวอย่างการได้รับไอพี 169.254.0.0 บนเครื่องที่ติดตั้ง Windows 7 ในกรณีที่ DHCP ใช้งานไม่ได้
บนลีนุกซ์ ถึงแม้คุณจะใส่คอนฟิกไอพี (static) เรียบร้อยแล้ว ก็ยังมี route วงนี้ขึ้นมาอีก เราต้องการจะลบ route นี้ออกไป เพื่อป้องกันความสับสน
ลองมาดูวิธีการลบ route 169.254.0.0 หรือยกเลิกการใช้ Zeroconf กัน โดยวิธีนี้สามารถใช้ได้กับ CentOS และลีนุกซ์ตระกูล RedHat อื่นๆ เช่น Fedora, Oracle Linux
ตัวอย่าง route บน CentOS
[root@cent6-min ~]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.5.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 192.168.5.1 0.0.0.0 UG 0 0 0 eth0
แก้ไขไฟล์ /etc/sysconfig/network โดยใส่คอนฟิกบรรทัด NOZEROCONF=yes เพิ่มเข้าไป
[root@cent6-min ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=cent6-min.example.com
NOZEROCONF=yes
รันคำสั่ง service network restart เพื่อให้คอนฟิกใหม่มีผล
[root@cent6-min ~]# service network restart Shutting down interface eth0: [ OK ] Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface eth0: [ OK ]
รันคำสั่ง netstat -rn เพื่อแสดง route หลังไม่ใช้ Zeroconf
[root@cent6-min ~]# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.5.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 192.168.5.1 0.0.0.0 UG 0 0 0 eth0
คำเตือน การรันคำสั่ง service network restart อาจมีผลกับการส่งข้อมูล เพราะเป็นการรีคอนฟิกเน็ตเวิร์กของเครื่องใหม่
อีกวิธีที่ลบแค่ route เน็ต 169.254.0.0 นี้ โดยไม่กระทบกับคอนฟิกเน็ตเวิร์กส่วนอื่นๆ คือใช้คำสั่ง ip route delete ลบ route นี้ออกไป
[root@cent6-min ~]# ip route delete 169.254.0.0/16 dev eth0
คือผมใช้วินโดวส์ อ่ะคับ คำสั่งนี้ใช้ได้กับวินโดวส์มั้ย คับ ผมใช้คำสั่ง DOS ไม่เป็น ผมอยากรบกวนบอกละเอียดหน่อยคับ ขอบคุณคับ
บนวินโดวส์ใช้ได้มั้ยคับ พอดีผมใช้คำสั่งพวกนี้ไม่เป็น รบกวน อธิบายละเอียด หน่อยคับ
ขอบคุณคับ