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

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

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: Сегодня мы с вами поговорим о сети класса. Сеть небольшой компании, организаци, одноранговая. В этом с...)
Строка 10: Строка 10:
Если выхотите, чтобы машины просто получали адрес, прописываете DHCP. Что в момент когда им требуется определить сетвую карту они должны использовать протокол дхцп. Как происходит запрос? Пока не настроена сетевая карта, машина не знает у кого спрашивать, поэтому она спрашивает всех. В пакете
Если выхотите, чтобы машины просто получали адрес, прописываете DHCP. Что в момент когда им требуется определить сетвую карту они должны использовать протокол дхцп. Как происходит запрос? Пока не настроена сетевая карта, машина не знает у кого спрашивать, поэтому она спрашивает всех. В пакете
-
<nowiki>
+
 
 +
<pre>
mac
mac
host
host
port
port
-
</nowiki>
+
</pre>
 +
 
 +
 
В прошлый раз говорили про тцп(потоки stream) и удп(датаграммы). Поскольку клиент не знает к кому обратится, он не может использовать тцп. Он использует удп.
В прошлый раз говорили про тцп(потоки stream) и удп(датаграммы). Поскольку клиент не знает к кому обратится, он не может использовать тцп. Он использует удп.
-
<nowiki>
+
 
 +
<pre>
кому
кому
mac всем
mac всем
Строка 25: Строка 29:
000
000
62
62
-
</nowiki>
+
</pre>
 +
 
Соответственно, сервер, получив такой пакет, он видит, кому отвечать
Соответственно, сервер, получив такой пакет, он видит, кому отвечать
-
<nowiki>
+
<pre>
кому
кому
MAC кл
MAC кл
Строка 36: Строка 41:
host Ip серв
host Ip серв
port 68
port 68
-
</nowiki>
+
</pre>
Если сервера два, то кто первым ответит, тот и прав.
Если сервера два, то кто первым ответит, тот и прав.
Строка 51: Строка 56:
Сервер, который загружает на вас систему может и не находиться в этой же сети, а для общения на канальном уровне(дхцп и бутп) надо находиться в этой же сети. Сервер же может находиться в соседней сети. На этапе загрузки сет карты по протоколу бутп она спросит у кого брать файл и какой файл, а дальше будет формировать пакеты
Сервер, который загружает на вас систему может и не находиться в этой же сети, а для общения на канальном уровне(дхцп и бутп) надо находиться в этой же сети. Сервер же может находиться в соседней сети. На этапе загрузки сет карты по протоколу бутп она спросит у кого брать файл и какой файл, а дальше будет формировать пакеты
-
<nowiki>
+
<pre>
кому
кому
mac шлюза
mac шлюза
host севрера
host севрера
port tftp
port tftp
-
</nowiki>
+
</pre>
=== tftp ===
=== tftp ===
Строка 69: Строка 74:
tftp сервеу, скажем
tftp сервеу, скажем
-
<nowiki>
+
<pre>
tftpd -s /var/tftp
tftpd -s /var/tftp
-
</nowiki>
+
</pre>
Тфтп протокол оочень простой. От клиента есть запросы тоько дай файл, положи файл. Если тфтп демону включён -s на директорию, то во первых онм будет работать в секуре режиме, во вторых все файлы будет читать от этой папки, выше прочитать не даст.
Тфтп протокол оочень простой. От клиента есть запросы тоько дай файл, положи файл. Если тфтп демону включён -s на директорию, то во первых онм будет работать в секуре режиме, во вторых все файлы будет читать от этой папки, выше прочитать не даст.
Строка 101: Строка 106:
Да и вобще если вам больше нравится, что группа людей работает над тем чтобы писать ядро, а не плодить разные версии ядер...
Да и вобще если вам больше нравится, что группа людей работает над тем чтобы писать ядро, а не плодить разные версии ядер...
-
<nowiki>
+
<pre>
subnet 192.168.0.0
subnet 192.168.0.0
{
{
Строка 110: Строка 115:
}
}
}
}
-
</nowiki>
+
</pre>
Вопрос -- не проще на одной машине прописать ип?
Вопрос -- не проще на одной машине прописать ип?
Если вы надумали изменить подсеть, в виме это одна строчка
Если вы надумали изменить подсеть, в виме это одна строчка

Версия 22:46, 17 марта 2011

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

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

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

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(применяется последнее подходящее правило).

Личные инструменты
Разделы