|
| ||||||||||||
| ||||||||||||
6. Информация об IP- Ethernet-сетях.В этом разделе рассматриваются вопросы работы ethernet и IP сетей. Фактически здесь собраны наиболее интересные разделы из относящихся к конкретным сетевым технологиям, и они будут полезны всем тем, что использует Линукс в локальных сетях. 6.1 EthernetЯдро присваивает ethernet-устройствам имена` По умолчанию ядро пытается обнаружить только одно ethernet-устройство, если у Вас в машине несколько ethernet-карт, то Вам потребуется указать в командной строке запуска ядра параметры для обнаружения оставшихся карт. Подробно работа ethernet-карт под Линуксом описана в Ethernet-HOWTO. После того как ядро будет скомпилировано с поддержкой Вашей ethernet-карты, Вам достаточно выполнить подобные следующим команды для ее настойки:
Большинство драйверов ethernet-карт было написано Дональдом Беккером
(Donald Becker, 6.2 EQL -- балансировщик потока данных.Это устройство имеет имя ` Опции компиляции ядра:
Для работы такого соединения необходимо, чтобы машина на другой стороне также поддерживала eql. Сейчас такая поддержка есть в Линуксе, Livingstone Portmasters и некоторых современных dial-in серверах. Для настройки EQL вам понадобятся утилиты поддержки eql, которые можно получит по адресу sunsite.unc.edu. Настройка достаточно проста. Первым делом необходимо настроить eql-интерфейс. Он настраивается так же, как и любое другое сетевое устройство. IP-адрес и mtu настраиваются программой ifconfig:
После этого Вы должны настроить все Ваши реальные соединения точка-точка. Способ настройки зависит от типа соединения -- обратитесь к соответствующему разделу этого документа за подробностями. И наконец Вы должны связать все эти соединения с eql. Этот процесс называют `подчинением' и выполняется с помощью программы eql_enslave:
Параметр `ожидаемая скорость соединения' (последний параметр в примере) оказывает косвенное влияние на работу eql. Он определяет долю пакетов, передаваемых через соответствующее соединение, и Вы можете пытаться повысить производительность eql, меняя этот параметр. Для отсоединения сетевого интерфейса от eql используйте программу eql_emancipate:
При настройке маршрутизации замените в командах route все `подчиненные' интерфейсы на eql. Обычно это выглядит так:
Драйвер EQL был написан Саймоном Джейнсом (Simon Janes, 6.3 IP-учет (для версий ядра 2.0).Функция IP-учета позволяет ядру собирать и анализировать информацию об использовании сети. Ядро собирает данные о количестве пакетов и количестве байт, переданных по сети с момента последнего сброса этих данных. Вы можете задать различные правила для того, чтобы классифицировать эти данные. В ядре версии 2.1.102 эта возможность была временно изъята, так как старая программа настройки файрволла ipfwadm, которая используется и для настройки IP-учета, была заменена на ``ipfwchains''. Опции компиляции ядра:
После того, как Вы откомпилировали и установили ядро с поддержкой IP-учета, используйте программу ipfwadm для его настройки. Вам может потребоваться разбивать учетную информацию по многим признакам. Ниже приведен простой, но достаточно полезный пример, за более детальной информацией обратитесь к man-странице программы ipfwadm. Сценарий: У Вас есть ethernet-сеть, подключенная к интернету через PPP-соединение. На одной из машин в сети запущено большое количество сервисов и Вы хотели бы знать какой объем данных передается сервисами telnet, rlogin, ftp и http. Вы можете использовать следующий скрипт:
Имена ``ftp-data'' и ``www'' -- имена сервисов из файла
Следует обратить внимание на то, что при обработке пакета величины накопленных данных во всех подходящих правилах будут увеличены, поэтому Вам потребуется произвести некоторые вычисления для того, чтобы получить интересующие Вас данные. Например, для того, чтобы узнать какое количество данных было передано "мимо" telnet, rlogin, ftp или http, необходимо вычесть из их данные из данных правила, которое описывает все порты.
6.4 IP-учет (для версий ядра 2.2)Новая система учета использует систему ``IP Firewall Chains''.
Обратитесь к
странице системы IP-цепочек за более детальной информацией.
Среди прочего, Вы будете должны использовать программу ipchains
вместо программы 6.5 IP-псевдонимы.Иногда оказывается полезным, чтобы одному сетевому устройству соответствовало несколько IP-адресов. Например, эта функция используется интернет-провайдерами для создания www или ftp-сайтов своих клиентов. Несколько более подробное описание IP-псевдонимов дается в ``IP-Alias mini-HOWTO''. Опции компиляции ядра:
После того, как вы откомпилируете и установите ядро с поддержкой
IP-псевдонимов, дальнейшие настройки достаточно просты. IP-псевдонимы
присваиваются виртуальным устройствам, связанным с реальным устройством.
Имена этим устройствам присваиваются по правилу
Предположим, что у Вас есть ethernet-сеть с двумя существующими одновременно IP-сетями, и Вы хотите, чтобы Ваша машина имела доступ к обеим этим сетям. Для этого выполните следующие команды:
Для удаления псевдонима просто добавьте символ `
Все данные о маршрутизации через этот псевдоним будут автоматически удалены. 6.6 IP файрволл (для версий ядра 2.0).Использование файрволлов подробно рассмотрено в Firewall-HOWTO. IP-файрволл позволяет вам предотвращать несанкционированный доступ к Вашей машине путем отбрасывания IP-пакетов по заданным правилам. Есть три типа правил -- входные фильтры, выходные фильтры и фильтры передачи. Входные фильтры применяются к пакетам, приходящим из сети. Выходные фильтры применяются к пакетам, предназначенным к отправке в сеть. Фильтры передачи применяются к полученным пакетам, которые не предназначены для данной машины и должны быть маршрутизированы. Опции компиляции ядра:
Задание фильтров производится с помощью программы ipfwadm. Данный документ не ставит своей задачей углубляться в тонкости сетевой безопасности, поэтому, если Вы хотите надежно защитить свою сеть, вам потребуется самостоятельно ознакомится с этим вопросом. По-видимому наиболее распространенный случай использования IP-файрволла -- это когда Ваша машина является маршрутизатором, через который локальная сеть подключена в интернету, и Вы хотите предотвратить несанкционированный доступ к машинам Вашей локальной сети с машин из внешних сетей. Данный пример был любезно предоставлен Арнтом Гюлбрандсеном
(Arnt Gulbrandsen, Данный пример иллюстрирует настройку фильтров для маршрутизатора, изображенного на этом рисунке:
Приведенные ниже команды настройки файрволла следует поместить в один
из
Правильная настройка файрволла -- нелегкая задача. Приведенный пример может послужить хорошей отправной точкой. Некоторую информацию Вы можете получить, воспользовавшись man-страницей программы ipfwadm. Обязательно получите информацию из всех возможных надежных источников и попросите кого-либо протестировать ваши настройки "снаружи". 6.7 IP-файрволл (для версий ядра 2.2)Новый файрволл использует систему ``IP Firewall Chains''.
Обратитесь к
странице системы IP-цепочек за более детальной информацией.
Среди прочего, Вы будете должны использовать программу ipchains
вместо программы 6.8 IPIP-включениеЗачем может понадобится передавать IP-пакеты внутри IP-пакетов? Если Вы никогда не сталкивались с такой потребностью, подобная операция может показаться странной. Два самых главных применения этой техники -- Мобильное IP и IP-рассылка. Еще одно применение -- Amateur Radio. Опции компиляции ядра:
Устройства "IP-тоннели" получают имена ` Так все-таки, зачем это нужно? Обычные правила IP-маршрутизации подразумевают, что IP-сеть имеет адрес и маску. Тем самым, маршрутизация на блок последовательных адресов происходит с помощью одной записи в таблице маршрутизации. Это означает, что при подключении в конкретном месте сети Вы можете иметь конкретный IP-адрес. Если Вы работаете с переносным компьютером, то место Вашего подключения будет постоянно изменяться. Поэтому, если Вы собираетесь временно работать в другом месте, Вы можете настроить машину на Вашем обычном основном месте работы так, чтобы та перенаправляла приходящие на Ваш адрес пакеты на Ваш новый адрес. Настройка IP-туннеля сеть-сеть.Рассмотрим сеть следующей структуры:
Эта схема демонстрирует еще один пример использования IPIP-включения --
виртуальные частные сети. В этом примере предполагается, что у Вас есть
две машины с PPP-подключением к интернету. Каждой из них присвоен
IP-адрес. Эти машины подключены к локальным сетям, использующим адреса
из зарезервированного диапазона. Предположим, Вы хотите, чтобы машины из
одной локальной сети могли взаимодействовать с машинами из другой
сети, как будто они соединены непосредственно. Этого можно достичь
с помощью IPIP-включения. Это решение, правда, не позволит вашим
машинам из внутренних сетей обмениваться данными с другими машинами
в интернете -- для этого Вам потребуется использовать другие техники
вроде IP-маскарада. IPIP-включение производится на машинах A и B --
маршрутизаторах.
На машине `
А на машине `
Команда
расшифровывается как `Посылать все пакеты для сети 192.168.1.0/24 внутри
пакетов, передаваемых на машину по адресу aaa.bbb.ccc.ddd'
Обратите внимание, что настройка туннеля требуется с обеих сторон.
Устройство-туннель использует параметр `gw' команды route для
определения адреса, на который следует передавать IP-пакеты, с
"завернутыми" в них пакетами, предназначенными для сети 192.168.1.0.
Настройка IP-туннеля сеть-машина.Совсем не обязательно передавать через туннель данные между двумя
сетями. Иногда достаточно, чтобы на одном конце туннеля находилась
одна машина. В этом случае настройте устройство `
На маршрутизаторе `
На машине `
Такая конфигурация характерна для так называемого "Мобильного IP". Если Вы хотите перемещать одну машину по интернету, сохраняя неизменным IP-адрес. За более подробной информацией о том, как это реализуется на практике, обратитесь к разделу, посвященному мобильному IP. 6.9 IP-маскарад (для версий ядра 2.0)Очень многие имеют обычное сеансовое подключение к интернет, при котором интернет-провайдер выделяет только один IP-адрес. При этом в интернет можно работать только с одной машины. IP-маскарад -- трюк, позволяющий нескольким машинам одновременно использовать один IP-адрес, при этом с точки зрения внешних машин выглядеть как одна машина. Правда такая конфигурация работает только "в одну сторону" -- маскарадящиеся машины могут обращаться к любым машинам в интернет, но сами при этом остаются недоступными для входящих соединений. Это означает, что некоторые из сетевых сервисов просто не будут работать (например talk), а некоторые (например ftp)должны быть специально настроены на "пассивный" (PASV) режим работы. К счастью, наиболее распространенные сервисы, такие как telnet, www и irc работают нормально. Опции компиляции ядра:
Настройте машину, поддерживающую PPP- или slip-соединение как обычную (не маскарадящую) машину. Кроме того, на этой машине должно быть еще одно сетевое устройство (как правило ethernet), через которое оно подключено к внутренней сети. Настройте эту сеть с использованием адресов из одной из зарезервированных сетей. На всех машинах укажите подключенную к интернет машину в качестве маршрутизатора. Как правило, сеть имеет такую структуру:
Маршрутизатор настраивается следующими командами:
Для минималистов, или тех, кому лень набивать много команд предлагаем следующую команду, которая будет работать для машины с двумя интерфейсами (все проходящие пакеты должны маскарадится).
Более подробную информацию об IP-маскараде вы можете получить на странице IP-маскарада. Очень подробным документом об IP-маскараде, в котором описано, как настраивать другие операционные системы на работу с IP-маскарадом Линукса, является ``IP-Masquerade mini-HOWTO''. 6.10 "Прозрачное" IP-кеширование.Прозрачное IP-кеширование -- возможность Линукса перенаправлять запросы определенных сервисов на других машинах таким же сервисам на локальной машине. Это может быть полезно, когда Ваша машина является маршрутизатором, и одновременно кеширующим сервером. Вы сможете перенаправить все проходящие через маршрутизатор запросы к удаленным машинам на локальный кеш-сервер. Опции компиляции ядра:
Настройка прозрачного кеширования производится с помощью программы ipfwadm. Пример, который может быть Вам полезен:
В этом примере все попытки соединения с портом Более интересное применение прозрачного кеширования состоит в перенаправлении
Для решения этой проблемы существует маленький сервер, называющийся
Программа transproxy будет получать все запросы к удаленным http-серверам
и преобразовывать их в запросы к локальному кеш-серверу.
6.11 IPv6Не успели Вы привыкнуть к правилам работы с протоколом IP, как все изменилось! IPv6 -- сокращенное название шестой версии протокола IP. IPv6 был разработан в первую очередь для преодоления проблемы нехватки IP-адресов. Адреса в IPv6 имеют длину 16 байт (128 бит). Кроме того, в IPv6 внесены еще несколько изменений, в основном упрощений, для того чтобы сделать IP-сети более управляемыми. На данный момент в Линуксе есть работоспособная, хотя еще неполная
поддержка IPv6 в ядрах версий Если Вы хотите поэкспериментировать с этой технологией нового поколения, или у Вас есть необходимость использовать ее, прочтите IPv6-FAQ, доступный на www.terra.net. 6.12 Мобильное IPПод "Мобильным IP" подразумевают способность машины подключаться к интернет из разных мест без изменений в конфигурации. Как правило, при подключении в новом месте Вы получите новый IP-адрес и Вам потребуется переконфигурировать Вашу машину. Мобильное IP решает эту проблему путем выделения фиксированного IP-адреса и создания туннеля с автоматической маршрутизацией, так чтобы все пакеты, направленные на этот адрес перенаправлялись на реальный IP-адрес, используемый в данный момент. Существует проект создания полного набора средств мобильного IP для Линукса. Информацию о его текущем состоянии вы можете получить со страницы мобильного IP в Линуксе. Там же находится последняя версия этого пакета. 6.13 IP-рассылка (IP multicast)IP-рассылка -- механизм, позволяющий передавать IP-пакет на несколько машин одновременно. Его используют для "широковещательных" приложений, таких как передача видео- и аудио-информации. Опции компиляции ядра:
Для использования IP-рассылки Вам потребуется набор утилит и небольшая настройка сети. Более подробная информация о IP-рассылке содержится в Multicast-HOWTO. 6.14 Трансляция сетевых адресов (NAT, Network Address Translation)Механизм трансляции сетевых адресов -- гораздо более стандартизированный "старший брат" IP-маскарада. Он подробно описан в RFC1631. Трансляция адресов предоставляет возможности, которых у IP-маскарада нет и это делает ее более пригодной для использования на маршрутизаторах и файрволлах организаций и в более крупных сетях. Альфа-версия NAT для ядра версии 2.0.29 написана Михаэлем Хансенстайном
(Michael Hasenstein, Последние версии ядра 2.1.* включают некоторые из возможностей трансляции адресов в алгоритме маршрутизации. 6.15 Ограничитель потока данных. (Traffic Shaper)Ограничитель потока данных создает специальные устройства, с ограничениями на передачу данных. Эти устройства являются виртуальными и используют для реальные сетевые устройства для фактической передачи данных. При этом все исходящие IP-пакеты маршрутизируются через устройства-ограничители. Впервые ограничитель потока появился в ядре версии 2.1.15 и был затем
перенесен в ядро версии 2.0.36 (он появился в исправлении На данный момент ограничитель потока может компилироваться в виде модуля и настраивается с помощью программы shapecfg примерно следующим образом:
Ограничитель контролирует только исходящие IP-пакеты, так как пакеты могут попадать на его интерфейс только в соответствии с таблицами маршрутизации, если Вы хотите ограничивать и входящий поток данных, Вам потребуется использовать функцию ``маршрутизации по адресу отправителя''. В версиях ядра 2.1 такая возможность уже есть, если Вы хотите внести ее
и в ядро версии 2.0.*, используйте исправление Майка МакЛагана (Mike McLagan),
доступное с Если Вы хотите испытать тестовую версию ограничителя входящих пакетов,
получите пакет 6.16 Маршрутизация в ядрах версий 2.2.*В последних версиях ядра 2.1.* появилось множество нововведений в алгоритме маршрутизации. К сожалению, Вам прийдется дождаться следующей версии этого документа или обратится к исходным текстам ядра. Вперед Назад Содержание |
|
CITForum © 1997–2025