ifupdown กับแล็ปท็อปพเนจร

พูดถึง ifupdown พื้นฐาน และ การใช้กับเครือข่ายไร้สาย ไปแล้ว คราวนี้ มาพูดถึงการใช้งานอีกแบบหนึ่ง ซึ่งเหมาะสำหรับเครื่องที่เปลี่ยนเครือข่ายบ่อย เช่น แล็ปท็อป คือการทำโพรไฟล์เครือข่าย

สมมุติว่าคุณหิ้วแล็ปท็อปไป ๆ มา ๆ เป็นประจำ 2-3 ที่ ที่บ้านใช้เครือข่ายไร้สายแบบ static IP แบบมี WEP key ที่สำนักงานใช้ DHCP แบบมี WPA และที่ไซต์งานใช้ DHCP แบบล็อค MAC address การเซ็ตค่าใหม่ทุกครั้งคงไม่สะดวก แต่คุณสามารถทำโพรไฟล์ของเครือข่ายต่างๆ เก็บไว้ แล้วเลือกใช้เอาตามต้องการได้

ย่อหน้า iface นั้น ไม่จำเป็นต้องตามด้วยชื่อ interface เสมอไป แต่คุณสามารถตั้งชื่อโพรไฟล์ตามใจชอบได้ เช่น ในกรณีดังกล่าว ก็อาจจะทำโพรไฟล์ home, office, site เตรียมไว้ดังนี้:

iface home inet static
    # wireless parameters
    wireless_mode ad-hoc
    wireless_channel 11
    wireless_essid my-essid
    wireless_key   xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx
    # IP
    address 192.168.1.2
    gateway 192.168.1.1

iface office inet dhcp
    wpa-driver hostap
    wpa-ssid   my-essid
    wpa-psk    passphrase

iface site inet dhcp
    wireless_mode managed
    wireless_essid site-essid

จากนั้น เมื่อคุณไปใช้เครือข่ายไหน ก็เลือกสั่ง ifup โดยใช้รูปแบบ interface=profile เช่น เมื่อกลับมาบ้านก็สั่ง:

# ifup wlan0=home

อย่างไรก็ดี ยังมีอีกจุดหนึ่งที่ขาดไป คือ DNS server จะเห็นว่า ในตัวอย่างข้างต้น เมื่อคุณไปใช้เครือข่าย DHCP จะไม่มีปัญหาอะไร เพราะมักจะได้ DNS server มาพร้อมกับข้อมูล DHCP อยู่แล้ว แต่พอกลับมาบ้าน ซึ่งใช้ static IP ค่า DNS server นั้นจะยังอยู่ และคุณจะไม่สามารถใช้ DNS ของเครือข่ายก่อนได้

มีแพกเกจที่มาเสริมตรงนี้ คือ resolvconf

# aptitude install resolvconf

แพกเกจ resolvconf นี้ จะช่วยจัดการปรับแฟ้ม /etc/resolv.conf ให้โดยอัตโนมัติ โดยมีการเชื่อมร่วมกับ ifupdown ผ่านบรรทัดที่ขึ้นต้นด้วย dns- ตามด้วยบรรทัดใน /etc/resolv.conf ที่ต้องการ เช่น สมมุติว่าคุณตั้ง DNS server ที่บ้านไว้ที่ 192.168.1.1 และใช้ myhome.com เป็น search domain ก็อาจจะเพิ่มบรรทัดดังนี้:

iface home inet static
    # wireless parameters
    wireless_mode ad-hoc
    wireless_channel 11
    wireless_essid my-essid
    wireless_key   xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx-xx
    # IP
    address 192.168.1.2
    gateway 192.168.1.1
    # resolvconf
    dns-search     myhome.com
    dns-nameserver 192.168.1.1

ซึ่งเมื่อสั่ง ifup wlan0=home ก็จะเอาบรรทัดที่ขึ้นต้นด้วย dns- ไปตัดส่วนหน้าออกแล้วสร้างเป็นเนื้อหาของ /etc/resolv.conf ดังนี้:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
search     myhome.com
nameserver 192.168.1.1

นอกจากเชื่อมรวมกับ ifupdown แล้ว resolvconf ยังมีการสื่อสารต่อไปถึงแพกเกจบริการอินเทอร์เน็ตอื่นๆ ที่เกี่ยวข้องกับแฟ้ม /etc/resolv.conf นี้ด้วย เช่น bind9 (ในกรณีที่กำหนดเป็น caching DNS), dnsmasq, squid เป็นต้น ทำให้ผลของการเปลี่ยนเครือข่ายกระจายไปครบทุกที่โดยอัตโนมัติ

Comments

ifupdown + resolvconf สามารถนำไปปรับใช้ ในกรณีดังต่อไปนี้ได้หรือไม่ ครับ
เครื่องที่ทำงาน (ประมาณ 20 เครื่อง) ครับ ทุกเครื่อง ต่อกับ switching/hub เพื่อ share internet ผ่าน ADSL ของ CAT ทุกเครื่องรับค่า IP DHCP และสามารถติดต่อกับ internet ได้โดยตรง(ไม่มี server ของหน่วยงาน) ตอนนี้จะทำ web server (lenny+apache+drupal และ/หรือ อื่น ๆ) ขึ้นมาครับ เพื่อให้บริการข้อมูลเฉพาะเครื่องในหน่วยงาน (เปิดเฉพาะเวลาทำงาน) ไม่อยากใช้ dynamic dns ของ internet ภายนอกเนื่องจากข้อมูลบางอย่างของหน่วยงาน ไม่อยากเปิดเผยใน internet ครับ และจุดประสงค์รองอีกอย่างคือ ไม่อยากให้มี server เปิดตลอดเวลา(ประหยัด resources ครับ) แต่มีบางเครื่องต้องการใช้ internet นอกเวลาครับ รบกวนแนะนำด้วยครับ ขอบพระคุณครับ

local server นี่ ก็น่าจะแค่กำหนด static IP (ตาม บทความตอนแรก) โดยให้อยู่นอกช่วงที่ ADSL router แจกผ่าน DHCP จากนั้น เครื่องลูกก็ access ผ่านเบอร์ IP ที่กำหนด หรืออาจจะกำหนดชื่อใน DNS ที่ ADSL router ก็ได้ เท่านี้ก็น่าจะได้แล้วนะครับ

ขอบพระคุณครับ พอดีช่วง 2 - 3 วันนี้ ไม่ได้เข้า net ครับ

Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้