پایگاه دانش: سيستم عامل
بخش اول آموزش لینوکس
ارسال شده توسط عباس پيرنظريان در تاریخ 1390/06/27 02:56 بعد از ظهر

بخش اول آموزش لینوکس Linux

مقدمه :

 امروزه نظارت برسیستم و منابع سیستم یکی از اساسی ترین نیازهای هر شبکه و مدیر شبکه ای برای بررسی میزان کارایی اون شبکه و سیستم میباشد.اگر منابع سیستم کم باشد یا به مرور مشکلاتی برای سیستم به وجود آمده باشد عدم آگاهی از این رخددادها عواقب وخیمی درآینده در پی خواهد داشت.

منابع سیستم هم بوسیله کاربر می تواند مصرف شود هم بواسطه سرویس هایی که بر روی سرور قرار دارنداز قبیل وب یا میل .توانایی در جهت شناخت اتفاقاتی که در معرض روی دادن است می تواند به تشخیص اینکه سیستم احتیاج به بروزرسانی دارد یا نه کمک شایانی کند یا حتی اگر سیستم نیاز دارد تا یک سرویس به سرور دیگری منتقل شود.

۱-free

نمایش دهنده میزانmemory آزاد و مصرف شده

free is a UNIX command which displays the total amount of free and used physical and swap memory in the system, as well as the shared memory and buffers used by the kernel.

free [-b|-k|-m|-g] [-l] [-o] [-t] [-s delay ] [-c count ]

۲-top

امکان مشاهده پروسه هایی که در cpu و memroy در حال انجام هست رو فراهم میکنه 

top provides an ongoing look at processor activity in real time. It displays a listing of the most CPU-intensive tasks on the system, and can provide an interactive interface for manipulating processes. It can sort the tasks by CPU usage, memory usage and runtime. can be better configured than the standard top from the procps suite. Most features can either be selected by an interactive command or by specifying the feature in the personal or system-wide configuration file. See below for more information.

top [-] [d delay] [p pid] [q] [c] [C] [S] [s] [i] [n iter] [b]

 ۳-htop

 htop تو مایه های top هستش ولی خیلی بهتر و interactive تر هست.همونطور که از عکسش معلومه براحتی میتونید پروسه ها رو Kill کنید و…من توصیه میکنم ازبجای top از این استفاده کنید منتها برای استفاده از htop باید نصبش کنید روی سیستمتون

htop is a very competent interactive process viewer for the shell, providing all the functionality - and more - that the top utility does, in an easier and more intuitive way. htop provides easy-to-use menus for most operations and also has support for using a mouse.

htop is an easier to use and friendlier version of top. While it hasn’t as much time behind it and therefore is less tested, it seems to work very well both locally and over SSH, and it’s well worth taking it for a spin. It’s just one of those small utilities that makes life a bit easier

بخش دوم آموزش لینوکس Linux

 نصب :

#apt-get install htop 

Comparison between htop and top

In ‘htop’ you can scroll the list vertically and horizontally to see all processes and complete command lines.

In ‘top’ you are subject to a delay for each unassigned key you press (especially annoying when multi-key escape sequences are triggered by accident).

‘htop’ starts faster (’top’ seems to collect data for a while before displaying anything).

In ‘htop’ you don’t need to type the process number to kill a process, in ‘top’ you do.

In ‘htop’ you don’t need to type the process number or the priority value to renice a process, in ‘top’ you do.

‘htop’ supports mouse operation, ‘top’ doesn’t

‘top’ is older, hence, more used and tested

۴-slmon

Slmon هم برنامه جالبیه که میزان مصرف cpu ,ram همچین مقدار فضای خالی یا مصرفی mount ها ازقبیل هارد, فلش و… رو نشون میده.برای دیدن پروسه هایی که در حال انجام هستن باید روی p کیک کنید تا پروسه های لیست بشه براتون… 

 SLmon is a tool for monitoring a system's performance. It displays results using a nice and easilyreadable text-based UI. It has the ability to monitor CPU load (SMP is supported), memory/filesystems usage, network interfaces, uptime, date and time, and the number of logged in users.

نصب :

#apt-get install slmon

۵-sysstat

sysstat حاوی sar,mpstat,iostat هستش که هر کدوم کاری انجام میدن.(منکه اصلا باهاش حال نکردم)

نصب :

#apt-get install sysstat 

sar command
The sar command collects and reports system activity information. The statistics reported by sar concern I/O transfer rates, paging activity, process-related activities, interrupts, network activity, memory and swap space utilization, CPU utilization, kernel activities and TTY statistics, among others. Both UP and SMP machines are fully supported.

 mpstat command

The mpstat command reports global and per-processor statistics

iostat command
The iostat will display the current CPU load average and disk I/O information. This is a great command to monitor your disk I/O usage.

For ۲.۴ kernels the devices is names using the device's major and minor number. In this case the device listed is SCSI. To have iostat print this out for you, use the   -x

 ۶-ps

 ps لیستی از پروسه هایی که الان در حال اجراست را نشان میده

The ps will provide you a list of processes currently running. There is a wide variety of options that this command gives you.

ps [-a] [-A] [-c] [-d] [-e] [-f] [-j] [-l] [-L] [-P] [-y] [ -g grplist ] [ -n namelist ] [-o format ] [ -p proclist ] [ -s sidlist ] [ -t term] [ -u uidlist ] [ -U uidlist ] [ -G gidlist ]

برای اینکه لیست تمام پروسه هایی که در حال انجام هست رو ببینیم از دستور زیر استفاده میکنیم

#ps -ef 

برای اینکه پروسه های یک کاربر خاص رو ببینیم از دستور زیر استفاده میکنیم

#ps -u(defualt is current user)

#ps -u zabbix

ز kill میتونیم بهمراه ps برای پابان دادن به یک پروسه استفاده کنیم..مثلا pid یه پروسه در عکس آخر ۱۱۳۸ هستش..ما برای اینکه فاتحه!! این پروسه رو بخونیم به این طریق عمل میکنیم .

#kill -۹ ۱۱۳۸

 ۹ هم برای اطمینان از اجرا شدن مینویسیم

 ۷-pstree

pstree لیست پروسه هایی که الان در حال انجام هستند رو نشون میده 

pstree - display a tree of processes

pstree [ -a ] [ -c ] [ -h | -H pid ] [ -l ] [ -n ] [ -p ] [ -u ][ -A | -G | -U ] [ pid | user]

برای نمایش پروسه ها بدین طریق عمل میکنیم

#pstree
#pstree -p(show PIDs; implies -c)
#pstree -n(sort output by PID)
#pstree pid(start at pid, default ۱ (init))

#pstree user(show only trees rooted at processes of that user)

 ۸-jmon

jmon درصد استفاده cpu, memory , swap رو بهمون نشون میده

 The jmon tool monitors selected resources (memory, cpu, I/O) used by a running batch job on a particular machine, as well as overall machine activities.

jmon [ -interval ] [ -count ] [ -outfile ] [ -path ] [ -(no)fg ] [ -version ] [ -help|? ]

برای مشاهده خروجی :

#jmon 

 ۹-dstat 

 dstat میتونه یک جایگزین خوب برای vmsta , iostat , ifstat باشه که چند محدودیت اونها رو حل کرده وچندین قابلیت هم اضافه شده.بنظرم اگه سیستمون دچار bottleneck شده dstat میتونه کمک خوبی باشه براتون تا در یک زمان تمام منابع سیستمتون از قبیل cpu , disk usage , network bandwidth ,…. رو میتونید ببینید

stat allows you to view all of your system  resources  instantly,  you can eg. compare disk usage in combination with interrupts from your IDE controller, or compare the network bandwidth numbers directly with  the disk throughput (in the same interval).

dstat [-afv] [-cdgilmnpsty] [-D..] [-I..] [-N..] [delay [count]]

برای مشاهده خروجی

#dsta

 

بخش سوم آموزش لینوکس Linux

۱۰-vmstat

اطلاعاتی در مورد پروسه ها , memory, cpu,swap, io ,procs در اختیارمون میزاره

 vmstat reports information about processes, memory, paging, block IO, traps, and cpu activity.

vmstat [-V] [-n] [delay [count]]

FIELD DESCRIPTIONS 
Procs

r: The number of processes waiting for run time. 
b: The number of processes in uninterruptable sleep.
w: The number of processes swapped out but otherwise runnable.  This
   field is calculated, but Linux never desperation swaps.
Memory
swpd: the amount of virtual memory used (kB).
free: the amount of idle memory (kB).
buff: the amount of memory used as buffers (kB). Swap
si: Amount of memory swapped in from disk (kB/s).
so: Amount of memory swapped to disk (kB/s).
IO
bi: Blocks sent to a block device (blocks/s).
bo: Blocks received from a block device (blocks/s).
System
in: The number of interrupts per second, including the clock.
cs: The number of context switches per second.
These are percentages of total CPU time.
us: user time
sy: system time
id: idle time

۱۱-vnstat 

 اگه دنبال یه راه مگیردید که ترافیک کارت شبکه هاتون رو کنترل کنید این یه ابزاره خوبه که باکنسول کار میکنه و بصور روزانه و ماهیانه براتون لاگ برداری میکنه

vnStat is a console-base network traffic monitor that keeps a log of daily and monthly network traffic for the selected interface(s). However, it isn't a packet sniffer. The traffic information is analyzed from the proc(۵) -filesystem, so that vnStat can be used without root permissions.

نصب :

# apt-get install vnstat

برای فعال کردن vnstat و ساختن دیتابیس مثلا بر روی eth۰ بدین طریق عمل میکنیم

# vnstat -u -i eth۰

u مجبور میکنه که دیتابیس آپدیت بشه یا اگه دیتابیسی وجود نداره اونو میسازه

vnstat شروع به جمع آوری دیتا از طریق cronjob میکنه که موقع نصب بصورت خودکار اصافه میشه

۰-۵۵/۵ * * * *   root    /usr/bin/vnstat –u

برای دیدن اطلاعات بدیدن طریق عمل میکنیم

#vnstat

#vnstat -h(Show traffic for the last ۲۴ hours)

#vnstat -d(Show traffic for days)

#vnstat -w(Show traffic for ۷ days, current and previous week)

#vnstat -m(Show traffic for months)

#vnstat -t (Show all time top۱۰ traffic days)

#vnstat –help

 ۱۲-bwm

 bwm یک برنامه کوچولی مونیتورینگ پهنای باند هست که تا ۱۶ تا کارت شبکه رو همزمان میتونه پشتیبانی کنه

This is a very tiny bandwidth monitor (not X۱۱). Can monitor up to ۱۶ interfaces in the in the same time, and shows totals too.

 نصب :

#apt-get install bwm

برای اینکه خروجی رو ببینید بدین طریق عمل کنبد

#bwm

۱۳-ethstats

ethstats خروجی کارت شبکه ها رو براساس مگابیت بر ثانیه و پکت بر ثانیه نشان میده..البته همچین با حال نیست!!

ethstats works by parsing the /proc/net/dev file that the Linux kernel maintains, and thus utilizes a negligible amount of CPU time. ethstats shows the throughput of each device in both megabits per second and packets per second.

نصب :

#apt-get install ethstats

برای مشاهده خروجی این طور عمل میکنیم 

#ethstats 

بخش چهارم آموزش لینوکس Linux

تغییر شل پیش فرض در لینوکس

شل پیش فرض هر کاربر در فایل etc/passwd/ قابل مشاهده می باشد ولی از طریق این فایل اگر کاربر ریشه نباشید امکان تغییر وجود ندارد.
نمونه محتویات این فایل :

cat /etc/passwd
root:x:0:0:root:/root:/bin/bash

daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh

فایل etc/shells/ حاوی لیستی از شل هایی است که بر روی سیستم موجود میباشد و از طریق آن می توانید شل مورد نظر خود را انتخاب کنید :

PersianAdmins:~# cat /etc/shells
# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/bash
/bin/rbash

هر کاربر تنها می تواند شل پیش فرض خود را تغییر دهد و تنها کاربر ریشه قادر است تنظیمات کاربران دیگر را تغییر دهد.
برای تغییر شل پیش فرض از دستور chsh استفاده می کنیم که خلاصه شده change shell می باشد :

chsh -s {shell-name} {user-name}


shell-name نام شل مورد نظر می باشد که باید آدرس کامل آن وارد شود .
user-name نام کاربری که این تغییرات بر روی آن اعمال می شود. در صورتی که کاربر ریشه هستید از این گزینه استفاده کنید.

مثال :
تغییر شل کاربر جاری

chsh -s /bin/csh

بعد از زدن این دستور از شما پسورد خواسته می شود که می بایست پسورد خود را وارد کنید.

تغییر شل پیش فرض کابر رضا از طریق کاربر ریشه :

chsh -s /bin/csh reza

وقتی از کاربر ریشه استفاده می کنیم پسورد پرسیده نخواهد شد.

مشاهده تغییرات :

قبل از دستور

PersianAdmins:~# cat /etc/passwd | grep reza
reza:x:1000:1000:reza,,,:/home/reza:/bin/bash

بعد از دستور

PersianAdmins:~# cat /etc/passwd | grep reza
reza:x:1000:1000:reza,,,:/home/reza:/bin/csh

 

بخش پنجم آموزش لینوکس Linux

نصب و تنظیم VPN - PPTP client در لینوکس

در این آموزش با نحوه تنظیم لینوکس بعنوان یک PPTP client برای اتصال به VPN - PPTP سرور آشنا خواهیم شد. فرض بر این است که شما از محیط متنی استفاده می کنید , از این رو آموزش بر اساس ابزارهای این محیط است ولی شما همچنین قادر خواهید بود تا در محیط گرافیکی هم ازاین روش بهره ببرید.

در گذشته برای استفاده از Encryption می بایست وصله مربوط را به هسته اضافه می کردیم در حالیکه بعد از هسته 2.6.15 دیگر نیازی به افزودن وصله به هسته نیست.ورژن جدید اکثر توزیع ها این ویژگی را بهمراه دارد.

برای بررسی ورژن هسته از دستور uname -a استفاده کنید.

Reza:~# uname  -a
Linux debian 2.6.18-4-k7 #1 SMP Mon Mar 26 17:57:15 UTC 2007 i686 GNU/Linux

با آنکه PPTP از لحاظ امنیت نسبت به رقبای دیگر خود نظیر OpenVPN در جایگاه پایین تری قرار دارد ولی نصب آسان و دردسترس بودن در اکثر سیستم عامل ها سبب برتری PPTP در نهایت می شود.

شیوه نصب و تنظیم PPTP client که در این آموزش گفته می شود در اکثر لینوکس ها مشابه می باشد.من این تنظیمات را در دبین , آبانتو و فدورا مورد آزمایش قرار داده ام.لازم به تذکر است که همه این ها از هسته بعد از 2.6.15 استفاده می کردند.

با گوگلی که انجام دادم متوجه شدم که این شیوه در این سیستم عامل ها جوابگوست :

1.        CentOS , RHEL , Fedora همگی با هسته بالاتر از 2.6.15

2.        Debian و Ubuntu با هسته بالاتر از 2.6.15

3.        FreeBSD

همچنین این PPTP client با این سرورها می تواند ارتباط برقرار کند :

1.        Microsoft Windows VPN Server

2.        Linux PPTP Server

3.        Cisco PIX

نصب PPTP client

اول از همه آخرین نسخه PPTP client که در حال حاظر 1.7.1 می باشد را دانلود می کنیم :

Reza:/tmp#wget  http://quozl.netrek.org/pptp/pptp-1.7.1.tar.gz

سپس

tar xvfz pptp-1.7.1.tar.gz
cd  pptp-1.7.1
make
make  install

client نصب شده و آماده تنظیم می باشد.

برای بهره برداری از PPTP client فایل های زیر را مورد استفاده قرار می دهیم :

1.        etc/ppp/chap-secrets/ که نام کاربری و پسورد کانکشن را در خود ذخیره می کند

2.        etc/ppp/peers/tunnel-name/ این فایل را باید بسازیم و تنظیمات مربوط به تانل از قبیل آدرس سرور VPN را در آن قرار می دهیم.این فایل باید در دایرکتوری peers واقع شده باشد.

3.        etc/ppp/options.pptp/ که سعی کنید تنها در صورت نیاز این فایل را ویرایش کنید , چون باعث بروز مشکلات زیادی در صورت عدم آگاهی از تاثیر تغییرات انجام شده خواهد شد.

تنظیمات فایل options.pptp بر تمام ارتباطات اعمال می شود و حداقل باید شامل این تنظیمات باشد :

lock  noauth  nobsdcomp  nodeflate

نکته :
برای استفاده از Encryption می باست ماژول مربوط را لود کنید :

modprobe ppp_mppe

با یک مثال ادامه می دهیم :

فرض کنید می خواهیم به یک VPN سرور با مشخصات زیر ارتباط برقرار کنیم

آدرس سرور : vpn.persianadmins.com

نام کاربری : reza

پسورد : behroozi

نام تانل ارتباطی : persianadmins

خوب با این مشخصات بدین ترتیب عمل می کنیم :

nano  /etc/ppp/chap-secrets
reza     *     behroozi     *     #Persianadmins

فایل ازتباطی با نام persianadmins را می سازیم و تنظیم می کنیم :

nano  /etc/ppp/peers/persianadmins

pty "pptp vpn.persianadmins.com --nolaunchpppd"
name reza
remotename *
require-mppe-128
file /etc/ppp/options.pptp
ipparam persianadmins

تنظیمات به پایان رسید و حال میتوانیم با سرور ارتباط برقرار کنیم :

 pppd  call  persianadmins

 و دستور دیگر برای لینوکس های بر پایه دبین

 pon  persianadmins

 اگر همه چیز به درستی انجام شده باشد ارتباط برقرار می شود و شما می توانید با مشاهده ifconfig ببینید که یک اینترفیس با نام pppX اضافه شده است.

در صورت بروز خطا می توانید با مشاهده خطاها در فایل var/log/messages/ در ردهت و var/log/syslog/ در دبین به حل مشکل بپردازید.

برای قطع ارتباط می توانید ابنگونه عمل کنید :

1-killall pppd که همه ی ارتباطات ppp را قطع خواهد کرد

2- kill pppd-PID برای قطع کردن یک ارتباط خاص با داشتن PID

3- poff tunnel-name برای لینوکس های بر پایه دبین

 نصب و راه اندازی Squid همراه Radius

 ابتدا فابل squid_radius_auth را دانلود کرده فایل دانلودشده را باز کزده و Config  میکنیم بدین صررت :

   # cd /etc/squid/
  # wget http://www.squid-cache.org/contrib/squid_radius_auth/squid_radius_auth-1.09.tgz
  # tar -zxvf squid_radius_auth-1.09.tgz
  # cd squid_radius_auth-1.09
  # make
  # make install

   # vi /etc/squid/squid_radius_auth.conf
  ### squid_rad_auth configuration file
  ### MvS: 28-10-1998
  server 127.0.0.1
  secret dark123

 

در نهایت فایل Squid  را Config  میکنیم بدین صورت :

 auth_param basic program /etc/squid/squid_radius_auth   -f  /etc/squid/squid_radius_auth.conf  auth_param basic  children  6
auth_param basic  realm  DarkLove  Proxy  Access
auth_param basic credentialsttl  2  hours
auth_param basic casesensitive  off
acl AuthUsers proxy_auth REQUIRED
http_access allow all AuthUsers

 

بخش ششم آموزش لینوکس Linux

1 - کلاینت ها در زمان بوت شدن سیستم یا شروع مجدد سرویس یا با استفاده از دستور ipconfig /renew در ویندوز شروع به پخش پیغام هایی به نام DHCP Discover بصورت همگانی (broadcast) می کنند و در این پیغام ها درخواست IP خود را برای DHCP سرور های در محل اعلام می کنند.

2 - سروهای DHCP که این پیغام را دریافت می کنند در جوب پیغامی بنام DHCP Offer برای کلاینت ارسال می کنند و IP مورد نظر خود را به کلاینت پیشنهاد می دهند.

3 - کلاینت که ممکن است از چندین سرور پیشنهاد IP داشته باشد معمولا به سریعترین پیشنهاد با پیغامی بنام DHCP Request درخواست IP می کند.کلاینت این پیغام را بصورت همگانی ارسال می کند که برای سرور مورد نظر نشان دهنده قبول پیشنهاد و برای بقیه نشان دهنده عدم قبول می باشد.

4-سرور DHCP هم با یک پیغام DHCP ACK با این درخواست موافقت می کند.

شکل زیر مراحل بالا را بخوبی نشان می دهد:

برای جلوگیری از اینکه دو سیستم همزمان از یک آدرس استفاده کنند میتوان DHCP سرور را تنظیم کرد تا قبل از اختصاص IP به کلاینت آن را ping کند تا مشکلی بوجود نیاید.همچنین کلاینت با استفاده از ARP این عمل را انجام می دهد.

سرور DHCP این تنظیمات را برای دوره زمانی مشخصی در اختیار کلاینت قرار می دهد که اصطلاحا lease time گفته می شود.کلاینت وقتی به 50% از زمان باقی مانده رسید از سرور تقاضای تمدید زمان اجاره را می کند که در این مرحله پیغام ها بصورت Unicast رد و بدل می شود.
اگر سرور تا 87.5% از زمان باقی مانده به کلاینت پاسخ ندهد , کلاینت شروع به فرستادن پیغام های DHCP Request بصورت همگانی می کند تا سرورهای دیگر هم بتوانند به او پاسخ دهند.

اگر DHCP سرور و کلاینت ها در دو شبکه مجزا از هم قرار داشته باشند میبایست از یک Relay Agent استفاده کرد تا درخواست ها را از طرف کلاینت ها برای DHCP سرور بازپخش کند و سپس جواب را از طرف DHCP به کلاینت ها منتقل کند.
DHCP Relay Agent (dhcrelay) درخواست هایی که از سابنت بدون DHCP سرور میآید را به DHCP سرور های سابنتهای دیگر که ما مشخص کرده ایم بازپخش میکند.
دلیل استفاده از DHCP Relay Agent اینست که روتر Broadcast را از خود عبور نمیدهد و DHCP clientها برای گرفتن IP از Broadcast استفاده میکنند پس برای حل این مشکل ما از یک DHCP Relay Agent استفاده میکنیم که بدین ترتیب عمل میکند :
DHCP Relay Agent پیغام هایی که به صورت Broadcast ارسال میشود و تقاضای IP میکنند را جمع آوری میکند و سپس خود بصورت Unicast با DHCP سرور درخواست مورد نظر را مطرح میکند و جواب گرفته شده را برای client ارسال میکند.در واقع DHCP Relay Agent نقش میانجی را ایفا میکند.

 

بعد از فهمیدن اینکه DHCP چیست و چه انتظاری از آن داریم به سراغ نصب و تنظیم آن در لینوکس می رویم.

نصب در لینوکس های بر پایه دبین :

apt-get  install  dhcp3-server

 نصب در لینوکس های بر پایه ردهت :

yum install dhcp

محل قرار گیری فایل کانفیگ :
در دبین :

etc/dhcp3/dhcpd.conf/

 در ردهت :

etc/dhcpd.conf/

 برای آغاز بکار کردن سرویس یا شروع مجدد در هر دو نمونه توزیع بدین شکل عمل می کنیم :

 etc/init.d/dhcpd   start/restart/

 تنظیم سرویس برای اینکه هنگام بوت شدن سیستم اجرا شود :
در ردهت :

chkconfig  dhcpd  on

 در دبین بصورت خودکار تنظیم می شود.

تنظیم اینکه DHCP سرور به کدام اینترفیس برای دریافت درخواست ها گوش دهد :
در دبین :

 nano  /etc/default/dhcp3-server
INTERFACES="eth1"

در ردهت :

nano  /etc/sysconfig/dhcpd

DHCPDARGS=eth0

 در دبین فایل کانفیگ بصورت پیش فرض دربردارنده یک سری از تنظیمات می باشد که با تغییر آنها با نیازهای خودتان می توانید سرویس را راه اندازی کنید.
در ردهت برای استفاده از فایل کانفیگ پیش فرض بدین ترتیب عمل می کنیم :

 cp  /usr/share/doc/dhcp-<version>/dhcpd.conf.sample  /etc/dhcpd.conf

 یک نمونه فایل کانفیگ ساده و بهمراه Optionهای پر کاربرد و مهم بهمراه توضیحات :

 ddns-update-style none;    1
option domain-name "persianadmins.com";    2
option domain-name-servers 192.168.0.100, 1992.168.0.101;    3
default-lease-time 86400;    4
max-lease-time 604800;    5
authoritative;    6

subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.200 192.168.0.250;    7
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;    8
option time-offset +12600; # Iran     9
option ntp-servers 192.168.0.2;    10
}
host reza {    11
hardware ethernet 00:A0:78:8E:9E:AA;     12
fixed-address 192.168.1.4;    14
}

-

 1-این گزینه به DHCP می گوید که آیا IP های کلاینت ها را در DNS سرور بروز رسانی کند یا خیر.
2-این گزینه دامنه اختصاص یافته به کلاینت ها را مشخص می کند.
3-با استفاده از این گزینه DNS سرور ها را برای کلاینت تنظیم می کنیم.
4-مقدار زمان پیش فرض اجاره تنظیمات
5-حداکثر زمان اجاره
6-اگر این گزینه رو بکار نبریم بدین معناست که اگر کلاینت برای آدرسی درخواست کرد که سرور هیچ چیز در مورد آن نمی داند و همچنین برای آن شبکه اشتباه شمرده می شود , پیغامی از نوع DHCPNAK برای کلاینت نمی فرستد که استفاده از این IP را متوقف کند.
7-محدوده IP هایی که می خواهیم به کلاینت ها اختصاص دهیم را مشخص می کنیم.
8-تنظیم gateway
9-این گزینه time zone را مشخص می کند و برحسب ثانیه و بر مبنای ساعت مرجع GMT محاسبه می شود.
10-مشخص کردن یک ntp سرور برای هماهنگ سازی ساعت کامپیوتر های موجود در شبکه.

11-با استفاده از host می توانیم یک آدرس را برای کلاینت خاص رزرو کنیم.
12-MAC آدرس کلاینتی که آدرس برای آن رزرو شده است.
13-آدرس IP که برای کلاینت رزرو شده و نیابد در رنج IP هایی که تنظیم کرده ایم وجود داشته باشد.

 
Option هایی که باید به کلاینت ها اعمال شوند را می توان در چند سطح تنظیم کرد.وجود سطح های مختلف برای تنظیم Optionها باعث می شود تا قدرت مدیریتی راحت تر و بهتری برای تنظیم DHCP سرور در اختیار مدیر شبکه قرار گیرد.
این سطوح عبارت اند از :
1-Host
در DHCP میتوان برای کلاینت ها بر اساس آدرس سخت افزاری (MAC) آدرس IP رزرو کرد تا اگر درخواست آدرس از طرف این کلاینت ها ارسال شد حتما این IP خاص به آن اختصاص داده شود.
تنظیمات مربوط به این کلاینت ها توسط Host انجام می شود.
2-Group
تشکیل شده از چندین Host .این سطح سبب سهل شدن تنظیمات Option ها برای چندین Host می شود بطوریکه تمام تنظیمات یکبار نوشته می شود و اگر لازم شد می توان بواسطه سطح Host این تنظیمات را غیر فعال کرد.
3-Subnet
تنظیمات این سطح به رنج IP که در آن مشخص شده اعمال می گردد.
4- Shared-network
در برگیرنده چندین Subnet بطوریکه اگر Subnet ها دارای تنظیمات مشابهی هستند از این سطح می توان بهره برد و در صورت لزوم بعضی optionها را توسط سطح Subnet غیرفعال کرد.
5-Global
همانطور که از اسم آن آشکار است , Optionهایی که در این سطح تنظیم شود به تمام سطوح گفته شده در بالا اعمال خواهد شد.

این سطح ها را در 2 بخش باید مورد بررسی قرار داد :

سطوح اعمال تنظیمات برای زمانی که کلاینت از رنچ آدرس تعیین شده IP می گیرد :

Global Declaration
2-Shared-network Declaration
3-Subnet Declaration
Subnet----override----->Shared-network----override----->Global

 سطوح اعمال تنظیمات برای زمانی که آدرس IP برای کلاینت از قبل رزرو شده است :

 1-Global Declaration
2-Group Declaration
3-Host Declaration
Host----override----->Group----override----->Global

 Option هایی که در سطوح پایین تر تنظیم شده اند بر دیگر تنظیمات اولویت پیدا خواهند کرد.

 Global Declaration :
default-lease-time 600;
max-lease-time 7200;
option smtp-server smtp.persianadmins.com;
option pop-server pop3.persianadmins.com;
option nntp-server news.persianadmins.com;
option routers 192.168.0.254;
option domain-name-servers 192.168.0.1, 192.168.0.2;
option domain-name "persianadmins.com";

Shared-network Declaration :
shared-network name {
option domain-name "persianadmins.ir";
option domain-name-servers ns1.persianadmins.ir, ns2.persianadmins.ir;
option routers 192.168.1.254;

subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.1 192.168.10.31;
}

subnet 192.168.1.0 netmask 255.255.255.0 {
option domain-name "admins.ir";
range 192.168.1.33 192.168.1.63;
}
}

Subnet Declaration :
subnet 192.168.2.0 netmask 255.255.255.0 {
option routers 192.168.2.254;
option subnet-mask 255.255.255.0;
option domain-name "persianadmins.com";
option domain-name-servers 192.168.2.1;
option time-offset +12600; # Iran

range 192.168.2.10 192.168.2.100;
}


Group Declaration :
group {
option routers 192.168.3.254;
option subnet-mask 255.255.255.0;
option domain-name "behroozi.info";
option domain-name-servers 192.168.3.1;
option time-offset +12600; # Iran

host reza {
option host-name "reza.behroozi.info";
hardware ethernet 00:A0:78:8E:9E:AA;
fixed-address 192.168.1.4;
}

host behroozi {
option domain-name "4so.ir";
option host-name "behroozi.4so.ir";
hardware ethernet 00:A1:DD:74:C3:F2;
fixed-address 192.168.1.6;
}
}

Host Declaration :

host shiraz {
option domain-name "charso.ir";
option host-name "shiraz.charso.ir";
hardware ethernet 00:C0:78:9E:9F:BB;
fixed-address 192.168.1.5;
}

 

تمامی IP ها و تنظیماتی که به کلاینت ها اختصاص داده می شود در فایلی به نام dhcpd.leases واقع شده در دایرکتوری var/lib/dhcp/ ذخیره می شود.نمونه این فایل :

 cat /var/lib/dhcp3/dhcpd.leases
# All times in this file are in UTC (GMT), not your local timezone. This is
# not a bug, so please don't ask about it. There is no portable way to
# store leases in the local timezone, so please don't request this as a
# feature. If this is inconvenient or confusing to you, we sincerely
# apologize. Seriously, though - don't ask.
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-V3.0.4

lease 192.168.0.131 {
starts 1 2007/07/16 00:57:43;
ends 1 2007/07/16 12:57:43;
tstp 1 2007/07/16 12:57:43;
binding state free;
hardware ethernet 00:0c:29:49:b9:30;
}
lease 192.168.0.130 {
starts 2 2007/07/24 02:13:14;
ends 2 2007/07/24 14:13:14;
binding state active;
next binding state free;
hardware ethernet 00:50:56:c0:00:01;
uid "\001\000PV\300\000\001";
client-hostname "reza1";
}

 تمامی مراحلی که dhcp سرور به کلاینت IP می دهد در syslog ثبت می شود :

Jul 15 20:57:42 debian dhcpd: DHCPDISCOVER from 00:0c:29:49:b9:30 via eth1
Jul 15 20:57:43 debian dhcpd: DHCPOFFER on 192.168.0.131 to 00:0c:29:49:b9:30 via eth1
Jul 15 20:57:43 debian dhcpd: DHCPREQUEST for 192.168.0.131 (192.168.0.21) from 00:0c:29:49:b9:30 via eth1
Jul 15 20:57:43 debian dhcpd: DHCPACK on 192.168.0.131 to 00:0c:29:49:b9:30 via eth1

از این ویژگی می توانید برای پیدا کردن مشکلات احتمالی استفاده کنید , همچنین تمامی خطاهایی که در طول شروع سرویس روی می دهد در syslog ثبت می شود.

 

---------------------------------------------------------------------- پایان ------------------------------------------------------------------------------

(1 رأی/آراء)
مفید بود
مفید نبود

نظرات (0)
ارسال نظر جدید
 
 
نام کامل:
ایمیل:
متن نظر:
Help Desk Software by Kayako