Различия между версиями 8 и 10 (по 2 версиям)
Версия 8 от 2008-07-06 11:24:35
Размер: 14655
Комментарий:
Версия 10 от 2008-07-06 11:40:45
Размер: 14671
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 13: Строка 13:
Стоит отметить, что система /etc/net крайне мощная, она позволяет практически любую проблему решить при помощи изменений конфигурации. Стоит отметить, что система /etc/net крайне мощная, она позволяет практически любую проблему решить при помощи изменений конфигурации. Например, там есть human-readable синтаксис (нечто похожее на ipfv), его можно выключить и работать непосредственно в синтаксисе iptables.
Строка 15: Строка 15:
-- В частности, etcnet’ом уже год поддерживается freename - это технология переименования интерфейсов буквально на лету. Для чего это нужно ? В какой-то момент, когда создатели линукс-дистрибутивов перешли не просто на 26-е ядро, а отказались от /dev’а, перейдя на udev, возникла следующая ситуация: какой модуль первый загрузится, тот и получит нулевой номер. Соответственно, тот, который загрузится вторым, получит первый номер. Если бы это делалось последовательно, они бы всегда загружались в правильном порядке, потому что сетевые карты на сетевой шине, они, как правило, нумеруются все одинаково. Но поскольку два модуля грузятся одновременно, часто бывает так, что сегодня, скажем, у нас первой загрузилась нижняя карточка, а второй верхняя. Существует несколько вариантов решения этой проблемы; в нашем случае механизм достаточно прост: при установке дистрибутива считываются MAC-адреса сетевых карт, формируется ftab, и потом всегда происходит переименование.
Строка 17: Строка 17:
Там есть human-readable синтаксис (нечто похожее на ipfv), его можно выключить и работать непосредственно в синтаксисе iptables. Помимо того, что etcnet хорошо документирован, он содержит огромное количество примеров, можно сказать, например, {{{rpm -ql etcnet}}}.
Строка 19: Строка 19:
В частности, etcnet’ом уже год поддерживается freename, это переименование интерфейсов на лету, чтобы, представьте, у вас всегда dev0 назывался dev0. (Какая в этом проблема, если кто не в курсе: в какой-то момент, когда создатели линукс-дистрибутивов перешли не просто на 26-е ядро, а отказались от /dev’а, перешли на udev, возникла такая странная штука: какой модуль первый загрузится, тот и получит нулевой номер. А который загрузится вторым, получит первый номер. Если бы это делалось последовательно, они бы всегда загружались в правильном порядке, потому что сетевые карты на сетевой шине, они, как правило, нумеруются все одинаково. Но поскольку два модуля грузятся одновременно, часто бывает так, что сегодня у вас первой загрузилась нижняя карточка, а второй верхняя.) Каждый борется с этой проблемой по-своему, в альте поступили очень просто: при установке дистрибутива у вас считываются MAC-адреса сетевых карт, формируется ftab, и потом жёстко происходит их rename.

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

Теперь о недостатках: единственное, чего нет в etcnet --- нет простых примеров. Например, для того, чтобы догадаться, что для организации NAT надо прописать одну строчку, надо догадаться.
Теперь о недостатках: единственное, чего нет в etcnet --- простых примеров. Например, единственный способ узнать, что для организации NAT надо прописать одну строчку --- догадаться.
Строка 75: Строка 71:
|| 20 || 1 || 1 || 1 || || 1 || ConstantinYershow, ОльгаТочилкина || || || || 28 || 1 || 1 || 1 || || 1 || ConstantinYershow, ОльгаТочилкина || || ||

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

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

Рассмотрим теперь, как работает подсистема в альте, где она находит настройки сети, и как она их применяет. (Мы сегодня утром достаточно долго настраивали сеть: настраивали сетевую карту, ip-адрес, маршрутизатор по умолчанию, dns, чтобы понять, что интернета нет.) Перейдём в /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, и по этому маку он выдаёт ip. Таких протоколов, которые преобразование делают, штуки две: RARP и BOOTP. rarp находится где-то между сетевым и интерфейсным уровнем; он предназначен всего лишь для преобразования одного типа адресов в другой. Протокол bootp более комплексный, по нему кроме сетевого адреса можно получить имя файла, который надо скачать по tftp, чтобы его загрузить и выполнить. Но в обоих случаях должен быть сервер, который это разруливает и это выдаёт. Особенно неприятно, когда таких серверов два в одной локальной сети, и каждый думает по-своему. Про 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 (последним исправлял пользователь VsevolodKrishchenko 2008-10-04 10:55:19)