Колисниченко Д.Н. - Linux-сервер своими руками (1077324), страница 50
Текст из файла (страница 50)
c o n f установкам. Выделенные адреса dhcpdрегистрирует в файле dhcpd.leases, который обычно находится в каталоге/var/dhcpd.Сейчас давайте рассмотрим простейшую конфигурацию, которую будемпостепенно наращивать (см. листинг 8.8). Обратите внимание на то что,чтобы внесенные вами в файл /etc/dhcp.conf изменения вступили в силу,демон dhcpd необходимо остановить и запустить снова. При этом используйте команду /etc/rc.d/init.d/dhcpd stop для останова демона, и команду/etc/rc.d/init.d/dhcpd start для его запуска.Листинг 8,8. Файл /etc/dhcpd.confI описание сети, указывающее, какая из подсетей будет# обслуживаться.
Указывается сетевой адрес и маска сетиsubnet 1 9 2 . 1 6 8 . 1 . 0 netmask 2 5 5 . 2 5 5 . 2 5 5 . 0 {# маршрутизатор по умолчаниюoption routers 192.168.1.1;# маска подсети 2 5 5 . 2 5 5 . 2 5 5 . 0option subnet-mask 2 5 5 . 2 5 5 . 2 5 5 . 0 ;# установка домена по умолчанию и сервера NIS, если таковой используетсяoption nis-domain "domain.ua";option domain-name "domain.ua";f адрес DNS-сервера, который будут использовать клиентыoption domain-name-servers 1 9 2 . 1 6 8 . 1 . 1 ;# диапазон адресов для клиентов# 192.168.1.50-192.168.1.250range 192.168.1.10 1 9 2 .
1 6 8 . 1 . 2 5 4 ;# сказать клиентам, чтобы отдали адрес через 21600 секунд (6 часов)# после получения адресаdefault-lease-time 21600;# забрать адрес самому через 28800 секунд (8 часов)max-lease-time 28800;204Конфигурирование сервераТеперь будем постепенно усложнять конфигурацию. Каждая сетевая карточка имеет уникальный собственный МАС-адрес. Допустим, вам нужносвязать какой-то МАС-адрес с определенным IP-адресом.
Для этого воспользуйтесь конструкцией host:host myhost {hardware ethernet x x : x x : x x : x x : x x : x x ;fixed-address 1 9 2 . 1 6 8 . 1 . 9 ;}Ее нужно вставить в ту конструкцию подсети subnet, которой принадлежит назначаемый IP-адрес. Данная конструкция означает, что компьютеру саппаратным адресом хх:хх:хх:хх:хх:хх будет назначен IP-адрес 192.168.1.9.Например:subnet 1 9 2 . 1 6 8 . 1 .
0 netmask 2 5 5 . 2 5 5 . 2 5 5 . 0 {# прочие опцииhost myhost {hardware ethernet 00 : 40 :C7 : 34 : 90 : IE;fixed-address 192.168.1.9;Данный пример показывает, что аппаратному адресу 00:40:С7:34:90:1Ебудет сопоставлен IP-адрес 192.168.1.9. Обратите внимание, что IP-адресхоста myhost 192.168.1.9 относится к подсети 192.168.1.0 и включен в инструкцию subnet подсети 192.168.1.0, а не какой-либо другой сети!**Существует довольно удобная утилита для просмотра всех МАС-адресовсетевых адаптеров в вашей сети — программа TCPNetView. Эта программаразработана Александром Горлачем и загрузить ее вы можете по адресуhttp://www.enet.ru/~gorlach/netview/.
Правда, есть одно «но»: эта программа работает под Windows. В любом случае, если вы будете использовать эту программу, при настройке сервера вам не придется подходить к каждому компьютеру,чтобы узнать его МАС-адрес. Существуют также и утилиты под Linux, способные показать сразу все МАС-адреса. Примером может послужить программаTrafshow, которую вы найдете на прилагаемом компакт-диске. Но по сравнению с Trafshow, TCPNetView несколько удобнее (см. рис. 8.4).TCPNetView Untitled .Ы1I Комментарий к ре'[Сканирование сетиРис. 8.4.
ПрограммаTCPNetView205Конфигурирование сервераТеперь, предположим, что вам необходимо обеспечить поддержку WINS,а на вашей машине установлен сервер Samba. В этом случае в конструкциюsubnet нужно включить следующие директивы:option n e t b i o s - n a m e - s e r v e r s 1 9 2 . 1 6 8 . 1 .
1 ;option netbios-dd-server 1 9 2 . 1 6 8 . 1 . 1 ;option netbios-node-type 8;iПримечание.Служба WINS (Windows Internet Name Service) используется для разрешения (перевода) имен NetBIOS в IP-адреса. Сервер WINS — это усовершенствованный серверимен NetBIOS, разработан Microsoft для снижения широковещательного трафика.Пакет Samba предназначен для использования протокола SMB (Server Message Block),который также еще называется протоколом NetBIOS. С помощью пакета Samba вашамашина, работающая под управлением Linux, ничем не будет отличаться от рабочейстанции или сервера сети Microsoft.Вот практически и все.
Правда, еще можно добавить пару незначительных опций:# определяем широковещательный адресoption broadcast-address 1 9 2 . 1 6 8 . 2 . 2 5 5 ;# включаем IP-Forwardingoption i p - f o r w a r d i n g on;t можно добавить глобальную опцию:server-identifier server.domain. ua;Как обычно, дополнительную информацию можно получить, введя команду man dhcpd.conf. При настройке клиентов Windows следует активизировать режим «Получить IP-адрес автоматически» в свойствах TCP/IP (рис.
8.5).А при настройке Linux с помощью конфигуратора netconf — включить режимDHCP (см. рис. 8.6).чои are allowed to control the parameterswhich art specific to tils host andrelatedtoils main connection to tos local fP network'' Лривйка " j : !й: Дополнительно;|NetBIOSКонфигурация DNS | Шлют | Консигнация WINSАдрес !Р может быть присвоен этому компьютераавтоматически. Если сеть не присваивает автоматическиадреса JP, выясните адрес g администратора сети ивведите его в соответствующее поле.щ Enabietf .Contlgmotie ifvPfimaryname * domain" ропучитЬJP-aflpec автоматически <Manual..[* Dhcp| ^ Botrtp:Aliases (opt) • • " 'Нказать tP-адрес явным образом:IP caressNetmasMopD .r~,.JГAА'•••'•Net deviceKernel moduleЕЮ port (opt)Irq (opOОтменаРис.
8.5. Настройка Windows-клиента206A.;AcceptjCancel|HelpРис. 8.6. Настройка Linux-клиентаКонфигурирование сервераПротокол DHCP подробно описан в RFC 1533, 1534, 1541, 1542, апротокол ВООТР описан в RFC 1532. Окончательный вариант конфигурационного файла приведен в листинге 8.9.Листинг 8.9. Конфигурационный файл /etc/dhcpd.conf (окончательный вариант)I Подсеть 1 9 2 . 1 6 8 .
1 . 0 , маска сети 2 5 5 . 2 5 5 . 2 5 5 . 0subnet 1 9 2 . 1 6 8 . 1 . 0 netmask 2 5 5 . 2 5 5 . 2 5 5 . 0 {# маршрутизатор по умолчаниюoption routers 1 9 2 . 1 6 8 . 1 . 1 ;# маска подсети 2 5 5 . 2 5 5 . 2 5 5 . 0option subnet-mask 2 5 5 . 2 5 5 . 2 5 5 . 0 ;# устанаввка домена по умолчанию и сервера NIS, если таковой используетсяoption nis-domain "domain.ua";option domain-name "domain.ua";# задание широковещательного адресаoption broadcast-address 1 9 2 . 1 6 8 . 2 . 2 5 5 ;# в'ключение IP-Forwardingoption i p - f o r w a r d i n g on;# глобальная опция s e r v e r - i d e n t i f i e r :server-identifier server. domain.ua;# адрес DNS-сервера, который будут использовать клиентыoption domain-name-servers 192.168.1.1;f диапазон адресов для клиентовt 192.168.1.50-192.168.1.250range 1 9 2 . 1 6 8 . 1 . 1 0 1 9 2 .
1 6 8 . 1 . 2 5 4 ;# сказать клиентам, чтобы отдали адрес через 21600 секунд# после получения адресаdefault-lease-time 21600; 't забрать адрес самому через 28800 секундmax-lease-time 28800;option netbios-name-servers 192.168.1.1;option netbios-dd-server 192.168.1.1;option netbios-node-type 8;(6 часов)(8 часов)# описание трех клиентов (dhcpSO, dhcpSl, dhcp52)# и их аппаратных адресовhost dhcpSO {hardware ethernet 00 : 40 :C7 :34 : 90 : IE;# обратите внимание на то, что вы должны использовать IP-адрес# из указанного ранее диапазона адресов 192.168.1.50-250.fixed-address 192.168.1.50;}host dhcpSl {hardware ethernet 00: 40 :C7 : 34 : 90 : IF;fixed-address 192.168.1.51;207Конфигурирование сервераhost dhcp52 {hardware ethernet 00:40:C7:34:90:2A;fixed-address 192.168.1.52;8.5.
Подсчет трафика. Программа MRTGЭта тема является одной из наиболее интересных. Хочу сразу заметить,что существует такое множество способов считать трафик, что можно былобы написать не одну книгу, рассматривая все из них.Самым простым способом является подсчет с помощью программыifconfig. Чтобы понять как все работает, введите команду:cat/proc/net/devВ результате вы увидитестроки, изображенCrootSdhsilabs /root]* cat /proc/net/deuInter-lReceiveI Transmitныенарис. 8.7. Для наface Ipackets errs drop fifo framelpackets errs drop fifo colls carrierlo: 4280210000 42802100000глядностия ввел эту коethO; 4788257 648 648 319 650 1423836000 46235CrootSdhsilabs /root]» Iманду в ОС Linux состарым ядром, так как вновом ядре появилисьновые опции учета и онине умещаются в окнетерминала, а при переносе строк теряется наРис.
8.7. Команда cat/proc/net/devглядность примера.Файл /proc/net/dev содержит информацию о работе сетевых устройств.На этом и основывается данный метод подсчета трафика. Для самого жеподсчета удобнее использовать нижеприведенный сценарий stat:#!/bin/sh/bin/grep "$1" /proc/net/dev | /bin/awk -F ":" Л { print $2 }'/ b i n / a w k M print " I n :" $1 " \ n O u t : " $9 ; } '| \Символ \ используется как перенос в обычном тексте. Его обычноиспользуют для повышения удобочитаемости сценариев. Интерпретаторомон будет воспринят как пустой символ.Скопируйте данный сценарий в каталог / u s r / b i n и сделайте его выполнимым:ср .
/ s t a t / u s r / b i nchmod 755 / b i n / s t a tИспользовать данный сценарий можно так:/ b i n / s t a t ethOгде ethOэто нужный вам интерфейс.Можно было бы добавить проверку на правильность указания сценариев, но это не касается самого подсчета трафика. Попробуйте пропинговатьинтерфейс ethO по его IP-адресу и снова выполните сценарий.208Конфигурирование сервераЧестно говоря, это самый простой способ и, скорее всего, для вас онокажется совершенно бесполезным. Я привел его лишь в демонстрационныхцелях — это как своеобразная программка "Hello, world!".Теперь перейдем к более традиционному методу. В данном методе дляподсчета трафика используется IpChains.