SUSE LINUX Enterprise & openSUSE Community
ธันวาคม 19, 2018, 07:15:13 AM *
ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน
ส่งอีเมล์ยืนยันการใช้งาน?

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น
ข่าว:
 
   หน้าแรก   ช่วยเหลือ ค้นหา เข้าสู่ระบบ สมัครสมาชิก  

[Why we need your support] SUSE and openSUSE are trademarks of Attachmate Group, Inc. - WE ARE NOT IN ANY WAY ASSOCIATED WITH SUSE AND ATTACHMATE GROUP. SUSEThailand.com is a SUSE Linux user and community found in Thailand but not limited to other country suse linux user to join in. Currently active contents (How to's, Scripts, Tips, Tricks, Tutorials, Linux Command Line, and Troubleshooting) this suse linux how to's and expert support are SUSE Linux.
หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน
หัวข้อ: การเพิ่ม "options" ให้กับ DNS client (/etc/resolv.conf)  (อ่าน 2200 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
Sontaya
Administrator
Expert : ผู้เชี่ยวชาญ
*****

Karma: +1/-0
ออฟไลน์ ออฟไลน์

กระทู้: 1931


Administrator


เว็บไซต์
« เมื่อ: มกราคม 11, 2013, 01:54:51 PM »


การเพิ่ม "options" ให้กับ DNS client (/etc/resolv.conf)

เมื่อตั้งค่า IP address เป็น Dynamic Address เครื่องไคลเอ็นต์จะรับไอพีแอดเดรสจาก DHCP เซิร์ฟเวอร์ และ DHCP เซิร์ฟเวอร์ไม่สามารถที่เพิ่มออบชันลงไปในไฟล์ resolv.conf ได้อัตโนมัติ
ตัวอย่างด้านล่างนี้จะเป็นการเพิ่มออบชัน timeout และ attemts ไปยัง DNS client

รูปแบบคำสั่ง
options <option> ...

เช่น
options timeout:1 attempts:2

timeout:n จำนวนเวลาที่รอการตอบสนองจากเนมเซิร์ฟวเอร์  (primary name server) ก่อนที่จะทำการร้องขอคิวรีผ่านเซิร์ฟเวอร์อีกเครื่อง (secondary name server)
attempts:n จำนวนครั้งที่ส่งคิวรีไปเนมเซิร์ฟเวอร์ก่อนที่จะตอบกลับว่าผิดพลาดไปยังแอพลิเคชั่นที่เรียก (เช่น Mozilla Firefox, Google Chrome, ฯลฯ)


How To Add "options" To A Dynamically Created /etc/resolv.conf
]

โค๊ด:
cd /etc/sysconfig/network/
ใต้ subdirectory if-up.d และ if-down.d ให้สร้างไฟล์ใหม่ เช่น resolvOptions

vi /etc/sysconfig/network/if-up.d/resolvOptions
โค๊ด:
#! /bin/sh
check=$(grep options /etc/resolv.conf)
if ["$check" == ""]; then
    echo 'options timeout:1 attempts:2' >> /etc/resolv.conf
fi

และก็
vi /etc/sysconfig/network/if-down.d/resolvOptions
โค๊ด:
#! /bin/sh
check=$(grep options /etc/resolv.conf)
if ["$check" == ""]; then
    echo 'options timeout:1 attempts:2' >> /etc/resolv.conf
fi

output ที่ได้:

nameserver 192.168.1.1
nameserver 8.8.8.8
options timeout:1 attempts:2

192.168.1.1 คือเครื่องเนมเซิร์ฟเวอร์ภายใน
8.8.8.8 คือเครื่องเนมเซิร์ฟเวอร์ภายนอก (Google Public DNS)

อธิบาย:
เมื่อไคลเอ็นต์ร้องรอคิวรีผ่านเนมเซิร์ฟเวอร์ 192.168.1.1 แล้วไม่ได้รับการตอบกลับตามเวลาที่กำหนดไว้ (timeout:1 วินาที) ก็จะร้องขอคิวรีผ่านไปยัง Google Public DNS
ถ้าลองใช้คำสั่ง ping ก็จะรู้ว่าไม่มีการตอบกลับประมาณ 1 วินาที     

โดยดีฟอลต์ netconfig จะกำหนดค่า DNS อัตโนมัติให้เครื่องไคลเอ็นต์ โดยโหมด Network Setting ที่เครื่องไคลเอ็นต์จะต้องเป็น NetworkManager
โดยจะทำการอ่านค่าคอนฟิกจากไฟล์ /etc/sysconfig/network/config


การตั้งค่า Network Setting ให้เป็นโหมด NetworkManager

[วิธีที่:1] แก้ไขที่ไฟล์ /etc/sysconfig/network/config

แก้ไขตัวแปร NETWORKMANAGER="no" เปลี่ยนเป็น yes จากนั้นให้รีสตาร์ท network

โหมดนี้จะไม่สามารถควบคุมอินเทอร์เฟซโดยใช้คำสั่ง  ifdown/ifup ได้  ถ้าจะ renew ไอพีแอดเดรสจะต้องถอดสายแลนออกแล้วเสียบเข้าไปใหม่

โค๊ด:
rcnetwork restart

[วิธีที่:2] หรือ YaST2 > Network Setting ดังรูป



ดังนั้นหากไม่กำหนด DNS ให้ไคลเอ็นต์จะไม่สามารถคิวรีโดเมนเนมหรือโฮสต์เนมปลายทางได้
โค๊ด:
ping www.google.com
ping: unknown host www.google.com


การคอนฟิก DNS ให้ไคล์เอ็นต์ แบบ Static

ให้แก้ไขไฟล์ /etc/sysconfig/network/config

ตัวแปร:
#     NETCONFIG_DNS_STATIC_SEARCHLIST
#     NETCONFIG_DNS_STATIC_SERVERS
#     NETCONFIG_DNS_FORWARDER

หรือจะปิดการกำหนดค่า DNS อัตโนมัติจากคำสั่ง netconfig

#     NETCONFIG_DNS_POLICY=''

เช่น
NETCONFIG_DNS_STATIC_SERVERS='192.168.250.1 192.168.1.254'

จากนั้นอัพเดท DNS
โค๊ด:
netconfig -f update -v

ไฟล์ /etc/resolv.conf คอนฟิกจะถูกอัพเดทโดยอัตโนมัติจากคำสั่ง netconfig

ตรวจสอบคอนฟิกเนมเซิร์ฟเวอร์ที่ได้
nameserver 192.168.250.1
nameserver 192.168.1.254

หากไม่ต้องการอัพเดทอัตโนมัติ
NETCONFIG_DNS_POLICY='auto' ให้แก้ไขเป็น NETCONFIG_DNS_POLICY=''

วิธีนี้จะต้องเพิ่ม nameserver เองโดยแก้ไขที่ไฟล์ /etc/resolv.conf
เช่น
nameserver 192.168.1.1

ลองพิพม์คำสั่ง netconfig เพิ่มอัพเดท
โค๊ด:
netconfig -f update -v

หากใช้คำสั่ง cat /etc/resolv.conf จะเห็นว่า DNS จะไม่ถูกแก้ไข

Note:

- ถ้าเป็น Desktop ควรตั้งค่า Network เป็น NetworkManager จะตรวจสอบง่าย



- ส่วน Server ควรตั้งค่าเป็นโหมด ifup จะใช้งานสะดวกกว่า

รายละเอียดเพิ่มเติมเกี่ยวกับ Netconfig
http://linux.frank4dd.com/en/man8/netconfig.htm

Reference - http://www.novell.com/support/search.do?usemicrosite=true&searchString=7011591
« แก้ไขครั้งสุดท้าย: มกราคม 11, 2013, 02:18:55 PM โดย Sontaya » แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า

ageLOC Technology
หน้า: [1]   ขึ้นบน
  พิมพ์  
 
กระโดดไป:  

(@)2007 SUSE Linux user community found in Thailand. This site is not an official openSUSE and SUSE website, and is not in any way affiliated with or endorsed by SUSE Linux GmbH or Novell. openSUSE and SUSE are trademarks of Novell, Inc. in the United States and other countries.
Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!
หน้านี้ถูกสร้างขึ้นภายในเวลา 0.02 วินาที กับ 19 คำสั่ง (Pretty URLs adds 0.004s, 2q)