Differences between revisions 1 and 12 (spanning 11 versions)
Revision 1 as of 2008-07-03 22:03:13
Size: 8618
Editor: eSyr
Comment:
Revision 12 as of 2008-07-07 10:53:38
Size: 13996
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
== Настройка сетевых интерфейсов и DHCP == == Настройка сетевых интерфейсов ==
=== (по Г.К.: Автомат
ическая настройка сетевых подключений) ===
Line 3: Line 4:
Речь о том, как на самом деле подсистема в альте, где она находит настройки сети, и как она из применяет. Мы сегодня утром достаточно долго настраивали сеть: настраивали сетевую карту, ip-адрес, dns. Перейдём в /etc/net и посмотри, что в нём находится. В sysctl.conf находятся параметры ядра. Нам как пользователям школьного дистр., этот файл без надобности, за одним исключением. В случае, если вы сбираетесь делать сервер, который занимается маршрутизацией, переменная net.ipv4.ip_forvard должна быть равна 1. В разделе scripts лежат всевозможные программы на шелле, которые вып. различ. функции. Обычно их запускать рукаим не надо. Это подситема упр. сетевыми настройками, которая занимается следующим: она читает конф. файлы и по опр. алгоритмам вызывает эти сценарии. В самом деле, туда смотреть не надо. А куда смотреть? Например, в ifaces/. В директории интерфейсов описаны сетевые интерфейсы, которые предн. для подключения к сети. Тут мы видим eth0, lo. Кроме этого есть default и unknown, которые применяются ко всем или к не указанным здесь интерфейсам. Можно перейти в иректорию интерфейса и сказать, например, ipv4address. Кроме этого, есть options, в котором находятся настр. интерфейса. Обычн там указано, что BOOTPROTO=dhcp. Для статической настройки необх поменять на static. Для указания адреса необх. в ipv4address указать адрес, а в ipv4route указать default gateway --- default via 192.168.200.1. Если посмотреть man etcnet, то можно узреть мног других команд. После этого можно становить сетевой сервис --- service network stop, убедиться, что оба интерфейса опущен --- ip a, после этого можно запустить service network start. После этого можно увидеть в ip r, что всё настроилось. Рассмотрим теперь, как работает подсистема в альте, где она находит настройки сети и как она их применяет.Для этого перейдём в /etc/net и увидим, что здесь находятся три подкаталога и настроечный файл.
Line 5: Line 6:
Система /etc/net крайне мщная, она позвалаяет практически всё решить конфигурацией. Для разных любителей ...  * В sysctl.conf находятся параметры ядра. Нам как пользователям школьного дистрибутива, этот файл в принципе не нужен, за одним исключением. В случае, если нам необходимо создать сервер, который занимается маршрутизацией, нужно дать переменной net.ipv4.ip_forvard значение 1.
 * В разделе scripts лежат всевозможные программы, написанные на Shell'e, которые выполняют различные функции. Обычно нет необходимости запускать их вручную. С помощью этих программ подсистема управляет сетевыми настройками. На деле она выполняет следующее: читает конфигурационные файлы и по определённым алгоритмам вызывает соответствующие сценарии.
 * В разделе ifaces (директории интерфейсов) описаны сетевые интерфейсы, которые предназначены для подключения к сети. Тут мы видим eth0, lo. Кроме того, есть default и unknown, которые применяются ко всем или к не указанным здесь интерфейсам. Можно перейти в директорию интерфейса и сказать, например, ipv4address.
 * Наконец, есть директория options, в которой находятся настройки интерфейса. Обычно там указано, что BOOTPROTO=dhcp. Для статической настройки необходимо поменять dhcp на static. Dhcp–ipv4ll – это Авахе так вызывается. То есть если dhcp отказывается, через некоторое время после того как таймаут от dhcp приходит, что никакого dhcp нет, он запускает это самое авахе которое присваивает себе какой- нибудь адрес. Тут всё.
Line 7: Line 11:
(про переименование интерфейсов) Теперь отредактируем ipv4address. Для указания адреса необходимо в ipv4address указать собственно адрес, а в ipv4route указать default gateway - default via 192.168.200.1. Если сделать {{{ man etcnet }}}, то можно увидеть множество других команд. Например, можно задать настройку для IP. После этого можно остановить сетевой сервис, сделав {{{ service network stop }}}, убедиться, что оба интерфейса опущен - ip a, после этого можно запустить service network start. После этого, сделав {{{ ip r}}}, убедимся, что всё настроено.
Line 9: Line 13:
Помимо тог, чтоetcnet хорошо документирован, он содержит дикое колоичество примеров, можно сказать, например, rpm -ql etcnet Стоит отметить, что система /etc/net крайне мощная, она позволяет практически любую проблему решить при помощи изменений конфигурации. Например, там есть human-readable синтаксис (нечто похожее на ipfv), его можно выключить и работать непосредственно в синтаксисе iptables.
Line 11: Line 15:
Теперь о недстатках: единственное, чего нет в etcnet --- нет простых примеров. Например, для того, чтобы догадаться, что для организации NAT над прописать одну строчку, надо догадаться. В частности, etcnet’ом уже год поддерживается freename - это технология переименования интерфейсов буквально на лету. Для чего это нужно ? В какой-то момент, когда создатели линукс-дистрибутивов перешли не просто на 26-е ядро, а отказались от /dev’а, перейдя на udev, возникла следующая ситуация: какой модуль первый загрузится, тот и получит нулевой номер. Соответственно, тот, который загрузится вторым, получит первый номер. Если бы это делалось последовательно, они бы всегда загружались в правильном порядке, потому что сетевые карты на сетевой шине, они, как правило, нумеруются все одинаково. Но поскольку два модуля грузятся одновременно, часто бывает так, что сегодня, скажем, у нас первой загрузилась нижняя карточка, а второй верхняя. Существует несколько вариантов решения этой проблемы; в нашем случае механизм достаточно прост: при установке дистрибутива считываются MAC-адреса сетевых карт, формируется ftab, и потом всегда происходит переименование.

Помимо того, что etcnet хорошо документирован, он содержит огромное количество примеров, можно сказать, например, {{{rpm -ql etcnet}}}.

Теперь о недостатках: единственное, чего нет в etcnet --- простых примеров. Например, единственный способ узнать, что для организации NAT надо прописать одну строчку --- догадаться.
Line 15: Line 23:
Мы возвращаемся к началу нашего сегодняшнего занятия, а именно к протоколу уровня приложений. Откуда вообще всё это возникло. Во многих ОС есть кнопочка "настроить всё автоматически". Лектор очень не любит такую кнопочку, потоу что не знает, что такое всё, и что такое автоматически. Но протсо опльзователь некоторый может не очень хорошо разбираться в сети, но у него моожет возникнуть желания воткнуться и подклюбчиться к сети, крое того, у администратора нет желания раздавать полотна с указаниями, где что прописать, более того, пользователя это и не касается. Для решения всех этих проблем есть служба DHCP. Обратимся снова к протоколу уровня приложений. В ситуации, когда пользователь не очень хорошо разбирается в настройке сетей, но у него возникла необходимость подключиться к сети, кроме того, у администратора нет желания раздавать полотна с указаниями, где что прописать, более того, пользователя это и не касается. Для решения всех этих проблем есть служба DHCP.
Line 17: Line 25:
Как работает DHCP? Довольно хитро, так как она предназначена даже для машин, у которых даже ip нет, поэтому можно разложить на части процедуру настройки по DHCP. Ккие настр. можно выдать по DHCP:
 * IP-адрес. Есть протоколо ARP, который по ip позволяет узнать MAC. В случае, когда есть MAC и нет IP, взникает ситуация обратная. Посылается широковещаетльный Eth-фрейм, который принимается компьютером, на этом компьютере должна быть уст. стевая служба, которая разд. ip, и, обращаясь к таблице соотв. ip и mac, и по этому маку он выдаёт ip. Таких протокоолов, которые преобр. делают, штуки две: RARP и BOOTP. И если rarp предназначен только для одной задачи, то bootp блее комплексный, по нему кроме сетевого адреса можно получить имя файла, который надо скачать по tftp, чтобы его загрузить и выполнить. Но в обоих случаях должен быть сервер, колторый это разруливает и это выдаёт.
Как работает DHCP? Довольно хитро, так как она предназначена даже для машин, у которых даже ip нет, поэтому можно разложить на части процедуру настройки по DHCP. Настройки, которые можно выдать по DHCP:
Line 20: Line 27:
Про DHCP. Это комплексный протокол, который позволяет получать сотни нстроек  * IP-адрес. Существует протокол ARP, который по IP-адресу позволяет узнать MAC-адрес. В случае, когда мы знаем MAC и не знаем IP, возникает обратная ситуация. Посылается широковещательный (если нет адреса конкретного сервера) Ethernet-фрейм, который принимается компьютером, на котором установлена сетевая служба, которая раздаёт IP, согласно таблице соответствий IP- и MAC-адресов. Протоколов, которые производят подобные преобразования, два: RARP и BOOTP. RARP находится между сетевым и интерфейсным уровнем; он предназначен для преобразования одного типа адресов в другой. Протокол BOOTP более комплексный, при помощи него кроме сетевого адреса можно получить имя файла, который надо скачать по tftp, чтобы его загрузить и выполнить. Но в обоих случаях должен существовать сервер, который это принимает запросы и выдаёт необуходимую информацию. Особенно cложной является ситуация, когда таких серверов два в одной локальной сети, и каждый думает по-своему. Таким образом, DHCP --- это комплекс настроек, который позволяет получить все сетевые настройки, про которые было сказано выше.

(Кстати, когда лектор говорил про xml, он забыл сказать, что resolv.conf не задавали. Он просто лежит в /etc. В принципе, есть возможность подсовывать resolv.conf в зависимости от используемого интерфейса. Вопрос в том, что это обычно не надо, потому что если он настраивается dhcp, dhcp сам его редактирует, а если он настраивается статически, он там один.)

По протоколу DHCP машина может получить несколько сотен настроек, в том числе такие, у которых имени нет, есть только номер. Например, настройка 318. Какая? Какую придумаешь, такая и будет.
Line 23: Line 35:
 * Маршрутизатор по умолчанию, вообще вся таблица маршрутизации
 * ...
Идея состоит в том, что получить её можно по DHCP, и испю она на разных уровнях.
 * Адрес DNS-сервера
 * Маршрутизатор по умолчанию и вся таблица маршрутизации
 * Если это сетевая загрузка, адрес файла, который надо закачать, адрес сервера, с которого надо его закачать, а потом ещё какие-то настройки. Идея состоит в том, что получить её можно по DHCP, и используется она на разных уровнях.
Line 27: Line 39:
Чтобы настроить авт. настр. сети в etcnet, достаточно поставить у интерфейса в options BOOTPROTO=dhcp. Чтобы сделать автоматическую настройку сети в etcnet, достаточно поставить у интерфейса в options BOOTPROTO=dhcp.
Line 29: Line 41:
Фича etcnet. Профили. ===Профили в etcnet ===
Line 31: Line 43:
В вашем каталоге eth0 может лежать несколько файлов ...#имяпрофиля. Каждый такой файл может содерж. настройки к опр. профилю. Например, компьютер исп. дома и в офисе. Никаких доп. сущносетй за иск. имени файла, не нужно. У службы network есть не только стандвртные команды, но и доп. команды, которые позв. выбрать, какой профиль будет исп. при включении сети. В вашем каталоге eth0 может лежать несколько файлов apv4adress#имяпрофиля. Каждый такой файл может содержит настройки к определенному профилю. Например, компьютер используется дома и в офисе. Никаких дополнительных сущностей за исключением имени файла, не нужно. У службы network есть не только стандартные команды, но и дополнительные команды вида start with, которые позволяют выбрать, какой профиль будет использован при включении сети.

''здесь кончается лекция за третье число. Следующий кусок - это уже начало лекции за четвертое число'' -- ConstantinYershow <<DateTime(2008-07-05T14:33:19+0400)>>

Мы вчера и позавчера управляли сетью из командной строки. Давайте практически докажем те слова, который в прошлый раз были высказаны теоретически относительно etcnet и профилей. Создадим настройки специально для здешнего заведения.
Для этого нужно три вещи.
 * Переходим в /etc/net/
 * Создаём файл options#mpgu.
Пишем:
{{{
ONBOOT=yes
DISABLED=no
BOOTPROTO=static
}}}
 * mv ipv4address ipv4address\#mpgu
 * Написать туда
{{{
search mpgu.edu.ru
nameserver 194.190.241.162
}}}
 * service network restartwith mpgu
Line 39: Line 71:
|| 0 || 1 || 1 || 1 || || 1 || ConstantinYershow, ОльгаТочилкина || || || || 28 || 1 || 1 || 1 || || 1 || ConstantinYershow, ОльгаТочилкина || || ||

Настройка сетевых интерфейсов

(по Г.К.: Автоматическая настройка сетевых подключений)

Рассмотрим теперь, как работает подсистема в альте, где она находит настройки сети и как она их применяет.Для этого перейдём в /etc/net и увидим, что здесь находятся три подкаталога и настроечный файл.

  • В sysctl.conf находятся параметры ядра. Нам как пользователям школьного дистрибутива, этот файл в принципе не нужен, за одним исключением. В случае, если нам необходимо создать сервер, который занимается маршрутизацией, нужно дать переменной net.ipv4.ip_forvard значение 1.
  • В разделе scripts лежат всевозможные программы, написанные на Shell'e, которые выполняют различные функции. Обычно нет необходимости запускать их вручную. С помощью этих программ подсистема управляет сетевыми настройками. На деле она выполняет следующее: читает конфигурационные файлы и по определённым алгоритмам вызывает соответствующие сценарии.
  • В разделе ifaces (директории интерфейсов) описаны сетевые интерфейсы, которые предназначены для подключения к сети. Тут мы видим eth0, lo. Кроме того, есть default и unknown, которые применяются ко всем или к не указанным здесь интерфейсам. Можно перейти в директорию интерфейса и сказать, например, ipv4address.
  • Наконец, есть директория options, в которой находятся настройки интерфейса. Обычно там указано, что BOOTPROTO=dhcp. Для статической настройки необходимо поменять dhcp на static. Dhcp–ipv4ll – это Авахе так вызывается. То есть если dhcp отказывается, через некоторое время после того как таймаут от dhcp приходит, что никакого dhcp нет, он запускает это самое авахе которое присваивает себе какой- нибудь адрес. Тут всё.

Теперь отредактируем ipv4address. Для указания адреса необходимо в ipv4address указать собственно адрес, а в ipv4route указать default gateway - default via 192.168.200.1. Если сделать  man etcnet , то можно увидеть множество других команд. Например, можно задать настройку для IP. После этого можно остановить сетевой сервис, сделав  service network stop , убедиться, что оба интерфейса опущен - ip a, после этого можно запустить service network start. После этого, сделав  ip r, убедимся, что всё настроено.

Стоит отметить, что система /etc/net крайне мощная, она позволяет практически любую проблему решить при помощи изменений конфигурации. Например, там есть human-readable синтаксис (нечто похожее на ipfv), его можно выключить и работать непосредственно в синтаксисе iptables.

В частности, etcnet’ом уже год поддерживается freename - это технология переименования интерфейсов буквально на лету. Для чего это нужно ? В какой-то момент, когда создатели линукс-дистрибутивов перешли не просто на 26-е ядро, а отказались от /dev’а, перейдя на udev, возникла следующая ситуация: какой модуль первый загрузится, тот и получит нулевой номер. Соответственно, тот, который загрузится вторым, получит первый номер. Если бы это делалось последовательно, они бы всегда загружались в правильном порядке, потому что сетевые карты на сетевой шине, они, как правило, нумеруются все одинаково. Но поскольку два модуля грузятся одновременно, часто бывает так, что сегодня, скажем, у нас первой загрузилась нижняя карточка, а второй верхняя. Существует несколько вариантов решения этой проблемы; в нашем случае механизм достаточно прост: при установке дистрибутива считываются MAC-адреса сетевых карт, формируется ftab, и потом всегда происходит переименование.

Помимо того, что etcnet хорошо документирован, он содержит огромное количество примеров, можно сказать, например, rpm -ql etcnet.

Теперь о недостатках: единственное, чего нет в etcnet --- простых примеров. Например, единственный способ узнать, что для организации NAT надо прописать одну строчку --- догадаться.

DHCP

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

Как работает DHCP? Довольно хитро, так как она предназначена даже для машин, у которых даже ip нет, поэтому можно разложить на части процедуру настройки по DHCP. Настройки, которые можно выдать по DHCP:

  • IP-адрес. Существует протокол ARP, который по IP-адресу позволяет узнать MAC-адрес. В случае, когда мы знаем MAC и не знаем IP, возникает обратная ситуация. Посылается широковещательный (если нет адреса конкретного сервера) Ethernet-фрейм, который принимается компьютером, на котором установлена сетевая служба, которая раздаёт IP, согласно таблице соответствий IP- и MAC-адресов. Протоколов, которые производят подобные преобразования, два: RARP и BOOTP. RARP находится между сетевым и интерфейсным уровнем; он предназначен для преобразования одного типа адресов в другой. Протокол BOOTP более комплексный, при помощи него кроме сетевого адреса можно получить имя файла, который надо скачать по tftp, чтобы его загрузить и выполнить. Но в обоих случаях должен существовать сервер, который это принимает запросы и выдаёт необуходимую информацию. Особенно cложной является ситуация, когда таких серверов два в одной локальной сети, и каждый думает по-своему. Таким образом, DHCP --- это комплекс настроек, который позволяет получить все сетевые настройки, про которые было сказано выше.

(Кстати, когда лектор говорил про xml, он забыл сказать, что resolv.conf не задавали. Он просто лежит в /etc. В принципе, есть возможность подсовывать resolv.conf в зависимости от используемого интерфейса. Вопрос в том, что это обычно не надо, потому что если он настраивается dhcp, dhcp сам его редактирует, а если он настраивается статически, он там один.)

По протоколу DHCP машина может получить несколько сотен настроек, в том числе такие, у которых имени нет, есть только номер. Например, настройка 318. Какая? Какую придумаешь, такая и будет.

  • IP
  • Маска
  • Адрес DNS-сервера
  • Маршрутизатор по умолчанию и вся таблица маршрутизации
  • Если это сетевая загрузка, адрес файла, который надо закачать, адрес сервера, с которого надо его закачать, а потом ещё какие-то настройки. Идея состоит в том, что получить её можно по DHCP, и используется она на разных уровнях.

Чтобы сделать автоматическую настройку сети в etcnet, достаточно поставить у интерфейса в options BOOTPROTO=dhcp.

===Профили в etcnet ===

В вашем каталоге eth0 может лежать несколько файлов apv4adress#имяпрофиля. Каждый такой файл может содержит настройки к определенному профилю. Например, компьютер используется дома и в офисе. Никаких дополнительных сущностей за исключением имени файла, не нужно. У службы network есть не только стандартные команды, но и дополнительные команды вида start with, которые позволяют выбрать, какой профиль будет использован при включении сети.

здесь кончается лекция за третье число. Следующий кусок - это уже начало лекции за четвертое число -- ConstantinYershow 2008-07-05 13:33:19

Мы вчера и позавчера управляли сетью из командной строки. Давайте практически докажем те слова, который в прошлый раз были высказаны теоретически относительно etcnet и профилей. Создадим настройки специально для здешнего заведения. Для этого нужно три вещи.

  • Переходим в /etc/net/
  • Создаём файл options#mpgu.

Пишем:

ONBOOT=yes
DISABLED=no
BOOTPROTO=static
  • mv ipv4address ipv4address\#mpgu
  • Написать туда

search mpgu.edu.ru
nameserver 194.190.241.162
  • service network restartwith mpgu


Сведения о ресурсах

Готовность (%)

Продолжительность (ак. ч.)

Подготовка (календ. ч.)

Полный текст (раб. д.)

Предварительные знания

Level

Maintainer

Start date

End date

28

1

1

1

1

ConstantinYershow, ОльгаТочилкина


PspoClasses/080703/04EtcNetAndDHCP (last edited 2008-10-04 10:55:19 by VsevolodKrishchenko)