Чтение онлайн

ЖАНРЫ

Linux-сервер своими руками

Колисниченко Денис Николаевич

Шрифт:

Вот практически и все. Правда, еще можно добавить пару незначительных опций:

# определяем широковещательный адрес

option broadcast-address 192.168.2.255;

# включаем IP-Forwarding

option ip-forwarding on;

# можно добавить глобальную опцию:

server-identifier server.domain.ua;

Как обычно, дополнительную информацию можно получить, введя команду man dhcpd.conf. При настройке клиентов Windows следует активизировать режим «Получить IP-адрес автоматически» в свойствах TCP/IP (рис. 8.5).

А при настройке Linux с помощью конфигуратора netconf — включить режим DHCP (см. рис. 8.6). 

Рис.8.5. Настройка Windows-клиента

Рис. 8.6. Настройка Linux-клиента

Протокол DHCP подробно описан в RFC 1533, 1534, 1541, 1542, а протокол ВООТР описан в rfc 1532. Окончательный вариант конфигурационного файла приведен в листинге 8.9.

Листинг 8.9. Конфигурационный файл /etc/dhcpd.conf (окончательный вариант)

# Подсеть 192.168.1.0, маска сети 255.255.255.0

subnet 192.168.1.0 netmask 255.255.255.0 {

# маршрутизатор по умолчанию

option routers 192.168.1.1;

# маска подсети 255.255.255.0

option subnet-mask 255.255.255.0;

# установка домена по умолчанию и сервера NIS, если таковой используется

option nis-domain "domain.ua";

option domain-name "domain.ua";

# задание широковещательного адреса

option broadcast-address 192.168.2.255;

# включение IP-Forwarding

option ip-forwarding on;

# глобальная опция server-identifier:

server-identifier server.domain.ua;

# адрес DNS-сервера, который будут использовать клиенты

option domain-name-servers 192.168.1.1;

# диапазон адресов для клиентов

# 192.168.1.50-192.168.1.250 range

192.168.1.10 192.168.1.254;

# сказать клиентам, чтобы отдали адрес через 21600 секунд (6 часов)

# после получения адреса

default-lease-time 21600;

# забрать адрес самому через 28800 секунд (8 часов)

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;

# описание трех клиентов (dhcp50, dhcp51, dhcp52)

# и их аппаратных адресов

 host dhcp50 {

hardware ethernet 00:40:C7:34:90:1E;

# обратите внимание на то, что вы должны использовать IP-адрес

# из указанного ранее диапазона адресов 192.168.1.50-250.

fixed-address 192.168.1.50;

 }

 host dhcp51 {

hardware ethernet 00:40:C7:34:90:1F;

fixed-address 192.168.1.51;

 }

 host dhcp52 {

hardware ethernet 00:40:C7:34:90:2A;

fixed-address 192.168.1.52;

 }

}

8.5.

Подсчет трафика. Программа MRTG

Эта тема является одной из наиболее интересных. Хочу сразу заметить, что существует такое множество способов считать трафик, что можно было бы написать не одну книгу, рассматривая все из них.

Самым простым способом является подсчет с помощью программы ifconfig. Чтобы понять как все работает, введите команду:

cat /proc/net/dev

В результате вы увидите строки, изображенные на рис. 8.7. Для наглядности я ввел эту команду в ОС Linux со старым ядром, так как в новом ядре появились новые опции учета и они не умещаются в окне терминала, а при переносе строк теряется наглядность примера.

Рис. 8.7. Команда cat /proc/net/dev

Файл /proc/net/dev содержит информацию о работе сетевых устройств. На этом и основывается данный метод подсчета трафика. Для самого же подсчета удобнее использовать нижеприведенный сценарий stat:

#!/bin/sh

/bin/grep "$1" /proc/net/dev | /bin/awk –F ":" '{ print $2 }' | \

 /bin/awk '{ print "In: " $1 "\nOut: " $9 ; }'

Символ \ используется как перенос в обычном тексте. Его обычно используют для повышения удобочитаемости сценариев. Интерпретатором он будет воспринят как пустой символ.

Скопируйте данный сценарий в каталог /usr/bin и сделайте его выполнимым:

ср ./stat /usr/bin

chmod 755 /bin/stat

Использовать данный сценарий можно так:

/bin/stat eth0

где eth0 — это нужный вам интерфейс.

Можно было бы добавить проверку на правильность указания сценариев, но это не касается самого подсчета трафика. Попробуйте пропинговать интерфейс eth0 по его IP-адресу и снова выполните сценарий.

Честно говоря, это самый простой способ и, скорее всего, для вас он окажется совершенно бесполезным. Я привел его лишь в демонстрационных целях — это как своеобразная программка "Hello, world!".

Теперь перейдем к более традиционному методу. В данном методе для подсчета трафика используется IpChains. Чтобы глубже понимать, о чем пойдет речь, я рекомендую прочитать сначала гл. 14, а потом вернуться к этой главе. Думаю, читатель меня простит за это неудобство — так уж получилось. Впрочем, я постараюсь объяснить все как можно подробнее и в этом разделе, во всяком случае, все должно быть понятно, а за разъяснениями опций ipchains читатель может обратиться к гл. 14.

Предлагаемый мною способ является не самым лучшим, но с его помощью я надеюсь подтолкнуть читателя на создание своего фундаментального продукта для подсчета трафика. Для того чтобы данный способ работал, необходимо включить опцию IP: accounting в конфигураторе ядра и перекомпилировать его. В большинстве случаев эта опция уже включена. Затем нужно установить IpChains. Когда все будет готово, установите следующее правило IpChains:

Поделиться с друзьями: