Сетевое администрирование в UNIX, 02 лекция (от 22 февраля)

Материал из eSyr's wiki.

Перейти к: навигация, поиск

Сегодня мы с вами поговорим о сети класса. Сеть небольшой компании, организаци, одноранговая.

В этом случае у вас вряд ли будет ситуция работы с двумя провайдерами, но мы это разберём в след раз.

Даже при десяти мшинах вручную вбивать настройки помнить у кого какой адрес будет очень непродуктивно, хотя многие так делают.

1. Автоматическая выдача адресов. Этим могут знимать два протокола, два похожих друг на друга демона. Дхцп -- двунаправленная связь. bootp -- в первоначальный момент загрузки сообщить машине кто она и откуда брать загрузочный файл. Дхцп совместим с бутп.

Популярным демоном является dhcp сервер от isc консорциума под названием isc-dhcp-client.

Если выхотите, чтобы машины просто получали адрес, прописываете DHCP. Что в момент когда им требуется определить сетвую карту они должны использовать протокол дхцп. Как происходит запрос? Пока не настроена сетевая карта, машина не знает у кого спрашивать, поэтому она спрашивает всех. В пакете

mac
host
port


В прошлый раз говорили про тцп(потоки stream) и удп(датаграммы). Поскольку клиент не знает к кому обратится, он не может использовать тцп. Он использует удп.

кому
mac всем
host все
port 68
от
MAC кл
000
62

Соответственно, сервер, получив такой пакет, он видит, кому отвечать

кому
MAC кл
host Ip кл
port 62
от
mac сервера
host Ip серв
port 68

Если сервера два, то кто первым ответит, тот и прав.

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

За это товечает бутп. Дхцп сервер умеет притворяться бутп сервером. Для такого получения недостаточно просто выдать автоматически адрес, потому что все происходит ещё на моменте загрузки биоса.

Надо высавить irq19 и разрешить сетево карте принимать эти пакеты. Сейчас уже сложно столкнуться с сетевухой, в которой этого не было бы.

Сет карта обладает своим биосом, которые посылает такой же запрос и шлюз ей ответит кто она, а следующее что она спросит -- у кого брать данные и какой файл

  • next-server
  • filename
  • pxeload

Сервер, который загружает на вас систему может и не находиться в этой же сети, а для общения на канальном уровне(дхцп и бутп) надо находиться в этой же сети. Сервер же может находиться в соседней сети. На этапе загрузки сет карты по протоколу бутп она спросит у кого брать файл и какой файл, а дальше будет формировать пакеты

кому
mac шлюза
host севрера
port tftp 

[править] tftp

работает на udp, каждый пакет 512 байт. Если пакет потерялся -- нажимаете ресет и пробуете снова. Фтп, например, использует тцп. Соответственно очень желательно чтобы первичный файл был поменьше, сам он уже потом может подгружать остальное по другому протоколу. Но по тфтп большие файлы гонять нерационально. Если у вас 1 мб, 2048 пакетов, если есть веротяность потери, её можно возвести в эту степень.

Какой использовать загрузчик?

Зависит от вашей цели.

В классе были попробованы pxe, pxegrub. Сейчас pxelinux. Слово linux там ничего не значит. Входит в пакет syslinux. Там же isolinux, psolinux, extlinux.


tftp сервеу, скажем

tftpd -s /var/tftp

Тфтп протокол оочень простой. От клиента есть запросы тоько дай файл, положи файл. Если тфтп демону включён -s на директорию, то во первых онм будет работать в секуре режиме, во вторых все файлы будет читать от этой папки, выше прочитать не даст.

Если брать pxelinux, то в /var/tftp в корне будет лежать pxelinux.

Загрузившись он будет искать конфигурацию в директории pxelinux.cfg/default

Что знает тфтп сервер про запрос клиента? Пришёл к нему пакет "дай мне загрузчик". Поскольку сервер, который дает систему может находится не в той же сети, он знает только ip клиента.

Соответственно обнаружив директорию он пытается найти файл, который в обратном шестнадцатеричном виде соотв ип клиента.

Если не находит, откидывает по 2 хекс цифры.

Если не находит, идет в файл default.

Это не мешает писать длинные конфигурации, потому что там есть любимая веми команда include.

Меню выглядит очень просто. то что вам надо сказать начинается со слова label, далее строка, потом kernel, append.

Если ваш линукс грузится isolinux.cfg его достаточно скопировать в соотв директорию.

Но если его нет.

Нпример, если вы думаете, что дебиан это линукс -- вы ошибаетесь. Есть Debian kFreeBSD.

Основные их ргументы -- более чисто написанное ядро, pf, jail.

Да и вобще если вам больше нравится, что группа людей работает над тем чтобы писать ядро, а не плодить разные версии ядер...

subnet 192.168.0.0
{
	test{hardware ethernet 00:01:02:50:51:52; fixed adress 192.168.0.3}
	pool{
		192.168.0.10-192.168.0.30
		allow all clients;
	}
}

Вопрос -- не проще на одной машине прописать ип? Если вы надумали изменить подсеть, в виме это одна строчка s/192.168.0/10.1.2/g

а так вы будете ходить к каждой машине и менять три параметра.

[править] Сервер которым ходим в интернет

Если вам не нужна сетевая загрузка, не хотите экранировать пользователей, отсчитывать трафик, вы можете взять железное решение. Для soho полно длинков, но чтобы был внутренний гигабит и внешний гигабит, как то не видать. Если требуется сетевая загрузка или скорсть, то не обойтись без ос на червере. Какую -- вопрос философский. Какую лучше знаете, ту и ставьте. Выбор еще и между ядрами -- линукс, бзд, опенсолярис, виндоус. (из зала -- соляриса больше нет).


Linux

  • iptable (NAT)

FreeBSD

  • ipfw(NAT)
  • ipf - ipnat
  • pf(NAT)

Бздшное ядро производительней.

Дальнеёшие примеры будут стараться приводить для обоих систем, но сложные примеры на линукс может и не получатся

Если сравнивать запись правил в iptables ipfw и pf, то принцип работы их отличается.

iptable, ipfw -- first wins(применяется первое подощедшее правило)

pf -- last wins(применяется последнее подходящее правило).


Сетевое администрирование в UNIX


01 02 03 04 05 06 07 08 09 10 11 12 13


Календарь

Февраль
15 22
Март
01 15 22 29
Апрель
05 12 19 26
Май
03 10 17
Личные инструменты
Разделы