The Linux Networking Overview HOWTO, v0.2, 10 Июля 1998 г.

Цель этого документа состоит в том, чтобы дать краткий обзор возможностей работы с сетями операционной системы Linux и обеспечить указания по поиску дальнейшей информации и подробностей реализации.

[Daniel Lopez Ridruejo]

1. Введение.

Цель этого документа состоит в том, чтобы дать краткий обзор возможностей работы с сетями операционной системы Linux. Хотя одним из достоинств Linux - является то, что имеется множество источников информации, доступной почти по каждой теме, большинство ее сосредоточено на реализации. Новички в Linux, особенно пришедшие из среды Windows, не осознают возможностей Linux при работе с сетями. Этот документ стремится дать общее представление о таких возможностях с кратким описанием каждой и указать источники для поиска дальнейшей информации. Информация была собрана из многих источников: различные howto, факи, проектов веб-страниц и моего собственного опыта. Огромные благодарности авторам. Без них и их программ этот документ не появился бы.

2. Linux.

2.1 Что такое Linux?

Автор-основатель Linux - Linus Torvalds. Начиная с первоначальных версий, Linux улучшался бесчисленным количеством людей. Это - аналог операционной системы UNIX, написанный полностью с нуля. Одна из наиболее интересных особенностей, присущих Linux - это то, что его разработка происходит одновременно во всем мире.

Linux защищен авторским правом в соответствии с лицензией GNU (GPL). Эта лицензия написана Фондам Свободного Программного Обеспечения (FSF), который создан, чтобы предохранить людей от ограничения на распространение программного обеспечения. Короче говоря, лицензия говорит о том, что, хотя деньги могут быть заплачены за копию, человек, который получил эту копию, не должно быть ограничений в получении такой же копии и бесплатно. Это также означает, что должен быть доступен исходный текст. Это полезно для программистов. Любой может изменять Linux и даже распространять его модификации при условии, что исходный код остается под тем же самым авторским правом.

2.2 Чем замечателен Linux?

Зачем нужно работать на Linux? Linux вообще более дешев (или по крайней мере не более дорог), чем другие операционные системы и часто менее проблематичен, чем многие коммерческие системы. Но отличает Linux не его цена (в конце концов, почему кому-то должна нравиться OS - даже если она свободная - если она не достаточно хороша?), а его замечательные возможности:

  • Linux - истинно многозадачная 32-битная операционная система, продуманная и достаточно функциональная, чтобы использоваться во многих областях, от университетов до больших корпораций.
  • Она работает начиная с низкопроизводительных платформ на i386 заканчивая ультра-параллельными машинами в исследовательсктх центрах.
  • Есть доступные "из коробки" версии для Intel/Sparc/Alpha, и экспериментальная поддержка для Power PC и встроенных систем типа SGI, Ultra Sparc, AP1000 +, Strong ARM, MIPS R3000/R4000 ...
  • В заключение, для работы с сетями, Linux - хороший выбор. Не только потому, что работа с сетями сильно интегрирована с самой OS и исходный код прикладных программ свободно доступен, но и из-за отказоустойчивости при тяжелой загрузке, что может быть достигнуто только годами отладки и тестирования в проекте Open Source.

3. Сетевые протоколы.

Linux поддерживает много различных протоколов работы с сетями:

3.1 TCP/IP

IP (Межсетевой Протокол) был первоначально разработан два десятилетия назад для Отдела Защиты Соединенных Штатов (DoD), главным образом с целью соединения компьютеров различных марок. TCP/IP - это набор допустимых протоколов, имеющих многоуровневую структуру, чтобы избежать привязки кода прикладных программ к сетевому аппаратному обеспечению.

Хотя он и основан на многоуровневой модели, он ориентирован более на задачи соединений, чем на твердое соблюдение функциональных уровней. Это одна из причин, почему TCP/IP стал фактическим стандартным протоколом работы с сетями в отличие от OSI.

Работа с сетями по протоколу TCP/IP была заложена в Linux с самого начала. Она была выполнена заново и является одной из наиболее продуманных, быстрых и надежных реализаций и потому является одним из ключевых факторов успеха Linux.

Дополнительный источник:

http://sunsite.unc.edu/mdw/HOWTO/NET-3-HOWTO.html

3.2 TCP/IP версии 6

IPv6, который иногда также называют IPng (IP Следующего Поколения), - это обновление для протокола IPv4 для решения множества проблем. Эти проблемы включают: нехватка доступных адресов IP, недостаток механизмов обработки трафика, критичного ко времени передачи, недостатки защиты сетевого уровня, и т.д

Увеличение адресного пространства будет сопровождаться в соответствии c дополнительной схемой адресации, что сильно подействовует на эффективность маршрутизации. Реализация беты уже существует для Linux, и промышленная версия ожидается для ядра 2.2.0 Linux.

3.3 IPX/SPX

IPX/SPX (Межсетевой Пакетный Обмен/Последовательный Пакетный Обмен) - стек протоколов, разработанный и являющийся собственностью Novell и основанный на XNS протоколе фирмы Xerox. IPX/SPX стал в начале 1980-ого неотъемлемой частью системы Novell Netware. Система Netware стала фактической стандартной сетевой операционной системой (NOS) для первого поколения локальных вычислительных сетей. Novell выполнил свою NOS с бизнес-ориентируемым набором прикладных программ и утилитами подключения со стороны пользователя.

Linux имеет очень ясную реализацию IPX/SPX, что позволяет его настроить как:

  • IPX маршрутизатор
  • IPX мост
  • NCP клиент и/или NCP сервер (для совместного использования файлов)
  • клиент печати Novell, сервер печати Novell
А также:
  • Допускает PPP/IPX, позволяя машине с Linux работать как PPP сервер/клиент
  • IPX tunnelling через IP, позволяя соединить две IPX сети через исключительно IP связь

Дополнительно, Caldera предлагает коммерческую поддержку для Novell Netware под Linux. Caldera обеспечивает полнофункционально клиента Novell Netware, созданного по технологии, запатентованной корпорацией Novell. Клиент обечспечивает обеспечивает полный клиентский доступ к файлсерверам Novell 3.x и 4.x и включает функции типа Netware Directory Service (NDS) и RSA шифрование.

3.4 Набор протоколов AppleTalk

Appletalk - имя сетевого стека Apple. Он позволяет peer-to-peer сетевую модель, которая обеспечивает базовые функциональные возможности типа совместного использования принтера и файлов. Каждая машина может работать одновременно как клиент и сервер, все необходимое программное и аппаратное обеспечение поставляются с каждым компьютером Apple.

Linux обеспечивает полную работу с сетями Appletalk. Netatalk - реализация на уровне ядра набора протоколов AppleTalk, первоначально разработанного для bsd-совместимых систем. Она включает поддержку для маршрутизации AppleTalk, обслуживание файловых систем Unix и AFS поверх AFP (AppleShare), обслуживание принтеров Unix и доступ к принтерам AppleTalk через PAP.

За подробностями обратитесь к разделу 5.1.

3.5 Глобальные сети: X.25, Frame-relay итд...

Некоторые третьи фирмы обеспечивают продукты T-1, T-3, X. 25 и Frame-Relay для Linux. Обычно для этих типов соединений требуются специальные аппаратные средства. Продавцы, торгующие аппаратными средствами, также предлагают драйвера поддержки протоколов.

3.6 ISDN

Ядро Linux имеет встроенную поддержку ISDN. Isdn4linux управляет адаптерами ISDN для PC и может эмулировать модем с набором команд Hayes ("В" команды). Предоставляются возможности от просто использования программы терминала до соединений через HDLC (используя включенные устройства) для полного подключения к Интернет по PPP к звуковым прикладным программам.

3.7 PPP, SLIP, PLIP

Linux ядро имеет встроенную поддержку для PPP (Point-to-Point-Protocol), SLIP (IP для последовательных линий) и PLIP (IP для параллельных линий). PPP - наиболее популярный метод, с помощью которого пользователи подключаются к своему ISP (провайдер услуг Интернет). PLIP обеспечивает дешевое соединение двух машин. Он использует параллельный порт и специальный кабель, достигая скоростей от 10kBps до 20kBps.

3.8 Любительское Радио (HAM)

Linux ядро имеет встроенную поддержку для радиолюбительских протоколов.

Особенно интересен - AX.25. Протокол AX.25 предлагает и соединенный, и несоединенный режимы работы, и используется для связи либо по собственному протоколу, либо для переноса пакетов других протоколов типа TCP/IP и NetRom.

По структуре он напоминает X.25 уровня 2, с некоторыми расширениями, чтобы приспособить его к среде любительского радио.

3.9 ATM

ATM поддержка для Linux в настоящее время очень сырая. Имеется экспериментальный релиз, который поддерживает простые ATM соединения (PVCs и SVCs), IP над ATM, эмуляцию локальной вычислительной сети ...

4. Сетевые аппаратные средства, поддерживаемые Linux

Linux поддерживает множество разнообразных аппаратных средств для работы с сетями, включая устаревшие.

Некоторые интересные документы:

5. Совместное использование файлов и печать

Основная цель многих локальных вычислительных сетей, состоящих из PC, состоит в том, чтобы обеспечить совместное использование пользователями файлов и принтеров. Linux прекрасно проявляет себя в качестве файлового сервера и сервера печати.

5.1 Платформа Apple

Как было сказано в предыдущих разделах, Linux поддерживает семейство протоколов Appletalk . Linux Netatalk позволяет клиентам Macintosh видеть систему с Linux как другой Macintosh в сети, позволяя станциям, соединенным с Linux, совместное использование файлов и принтеров.

Netatalk faq и how-to:

5.2 Платформа Windows

Samba - набор прикладных программ, которые позволяют большинству юниксов (и в частности Linux) работать в сети Microsoft как в качестве клиента, так и в качестве сервера. Работа в качестве сервера позволяет клиентам Windows 95, Windows for Workgroups, DOS и Windows NT обращаться к файловому сервису и сервису печати, предоставляемым Linux. Таким образом он может полностью заменить Windows NT при обслуживании файлов и печати, включая автоматическую загрузку драйверов принтера для клиентов. Работа в качестве клиента, позволяет рабочей станции Linux монтировать локально доступные совместно используемые каталоги.

Согласно SAMBA Meta-FAQ:

  "Многие пользователи сообщают, что Samba сравнилась с другими SMB
  реализациями, и более устойчива, быстрее и совместима с большим количеством
  клиентов. Администраторы некоторых больших сетей говорят, что Samba -
  единственый доступный SMB сервер, который уверенно работает со несколькими
  десятками тысяч пользователей."

5.3 Платформа Novell

Как говорилось в предыдущих разделах, Linux может быть сконфигурирован так, чтобы работать как NCP клиент или сервер, таким образом предоставляя доступ к файлам и услугам печати в сети Novell как для клиентов Novell, так и для клиентов Unix.

5.4 Платформа UNIX

Наиболее часто используемый метод совместного использования файлов по сети в среде UNIX - через NFS. NFS означает Network File Sharing (Совместное использование Файлов в Сети), и является протоколом, первоначально разработанным Sun Microsystems. Это способ совместного использования файлов машинами как будто они расположены локально. Пользователь "монтирует" файловую систему "экспортируемую" сервером NFS. Смонтированная файловая система появляется на машине пользователя так, как будто она является частью локальной файловой системы.

Возможно смонтировать корневую файловую систему во время запуска, и таким образом позволить бездисковому клиенту скачивать и обращаться ко всем файлам на сервере. То есть можно иметь полностью функциональный компьютер без жесткого диска.

Источники информации о Nfs:

6. Internet/Intranet

Linux - прекрасная платформа для Intranet/Internet сервера. Термин Intranet относится к применению Internet технологий внутри организации с целью распространения и предоставления доступа к информации внутри компании. Internet и Intranet услуги, предлагаемые Linux, включают электронную почту, новости, WWW сервера и еще множество услуг, о которых будет рассказано в следующих разделах.

6.1 Почта

Почтовые серверы

Sendmail - фактически стандартная программа сервера почты для платформ UNIX. Будучи продуманной, масштабируемой и правильно настроенной и при наличии необходимых аппаратных средств, она может рабатать пол нагрузкой в тысячи пользователей без сбоев. Другие сервера почты (MTA - Почтовые Транспортные Агенты) - это smail и qmail, которые разработаны как альтернатива sendmail.

Mail how-tos:

Удаленный доступ к почте.

В организации или ISP, пользователи вероятно обращаются за своей почтой дистанционно со своих рабочих мест. В Linux существуют несколько вариантов поддержки такого доступа, включающие сервера POP (Post Office Protoсol) и IMAP (Internet Mail Access Protoсol). Протокол POP обычно используется, чтобы передать сообщения от сервера пользователю. IMAP допускает работу с сообщениями на сервере, удаленное создание и стирание папок на сервере, параллельный доступ к общедоступным почтовым ящикам, и т.д.

Почтовые how-tos:

Почтовые пользовательские агенты

В Linux имеется ряд MUA (Почтовые пользовательские агенты), работающих как в графическом, так и в текстовом режиме. Наиболее широко используемые: pine, elm, mutt и Netscape.

Программного обеспечения списков почтовой рассылки

Имеется много MLM (Mail List Management) программ, доступных для UNIX вообще и для Linux в частности.

Fetch-mail

fetchmail - очень полезная почтовая утилита. Fetchmail - свободная, наглядная, продуманная, хорошо документированная утилита для удаленного скачивания и пересылки почты, которая используется для каналов TCP/IP "по требованию", (SLIP или PPP соединений). Он поддерживает все протокол удаленной работы с почтой, которые используются в настоящее время в Internet. Он может поддерживать даже IPv6 и IPSEC.

Fetchmail вытаскивает почту с удаленных почтовых серверов и пересылает ее через SMTP так, что она могла затем читаться нормальными почтовыми агентами пользователя типа mutt, pine или BSD mail. Это позволяет всем средствам фильтрации системы MTA, пересылки и совмещения имен (aliasing) работать так, будто они работают с обычной почтой.

Fetchmail может использоваться как шлюз POP/IMAP-to-SMTP для целого домена DNS, забирая почту из одного почтового ящика у ISP и пересылая почту по smtp руководствуясь адресами, указанными в заголовках.

Маленькая компания может централизовать свою почту в одном почтовом ящике а программа fetchmail будет собирать всю исходящую почту, посылать ее в Internet и забирать из Internet всю входящую почту.

6.2 Веб сервера

Большинство дистрибутивов Linux включает Apache (http://www.apache.org). Apache - сервер номер один в Интернет (http://www.netcraft.co.uk/survey/), где более половины всех интернетовских сайтов работают под Apache или производных от него. Преимущества Apache заключаются в модульной организации, стабильности и быстродействии. При наличии соответствующих аппаратных средств и настройке он может выдерживать самые высокие загрузки: Yahoo, Altavista, GeoCities, Hotmail основаны на различных версиях этого сервера.

Опциональная поддержка для SSL (который нужен для защиты транзакций) доступна в:

How-tos:

6.3 Веб браузеры

Для Linux существует целый ряд веб-браузеров. Один из них - Netscape Navigator, и новый Mozilla (http://www.mozilla.org) будет иметь версию под Linux. Другой популярный текстовый браузер - lynx. Он быстр и удобен, когда не установлена графическая среда.

6.4 FTP сервера и клиенты

FTP означает Протокол Передачи файлов. FTP сервер позволяет клиентам подключаться к себе и скачивать файлы. Для Linux написано множество ftp серверов и клиентов, и они обычно включены в большинство дистрибутивов. Имеются как текстовые клиенты, так и GUI-клиенты. Относящееся к FTP программное обеспечение (сервера и клиенты) для Linux можгут быть найдены на: http://sunsite.unc.edu/pub/Linux/system/network/file-transfer/

6.5 Новости

Usenet (также известный как новости) - огромная BBS, которая покрывает все тематики, и организованная иерархически. Компьютерная сеть обменивается через Internet (Usenet) статьями по протоколу NNTP. Для Linux существуют несколько реализаций. Либо для тяжело загруженных сайтов, либо для маленьких сайтов, получающих только несколько групп новостей.

6.6 DNS

DNS сервер проделывает работу по трансляции имен (читаемых людьми) в адрес IP. DNS сервер не знает все в мире адреса IP; он может запросить другие сервера о неизвестных адресах. DNS сервер либо возвратит требуемый IP адрес пользователю, либо сообщают, что это имя не может быть найдено.

Обслуживание имен в Unix (и в большинстве Internet) выполняется программой называемой named. Она является частью пакета bind, продвигаемого The Internet Software Consortium.

6.7 DHCP, bootp

DHCP и bootp - протокол, который позволяет машине пользователя получать сетевую информацию (типа своего IP адреса) с сервера. Многие организации начинают использовать этот протокол, потому что он облегчает управление сетью, особенно в больших сетях или сетях, в которых имеется множество мобильных пользователей.

Относящиеся к данной теме документы:

6.8 NIS

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

How-To:

6.9 Аутентификация

Имеются различные методы аутентификации пользователей. В смешанных сетях Linux/Window NT: http://www.mindware.com.au/ftp/smb-NT-verify.1.1.tar.gz PAM (встраиваемый опознавательный модуль), который является гибким методом аутентификации в UNIX:PAM библиотека. В заключение, LDAP для Linux

7. Удаленное выполнение прикладных программ

Одна из наиболее удивительных особенностей UNIX (и одна из наиболее неизвестных для новых пользователей) - мощная поддержка удаленного и распределенного выполнения прикладных программ.

7.1 Telnet

Telnet - программа, которая позволяет человеку использовать удаленный компьютер, как будто этот человек находится рядом с этой машиной. Telnet - одно из наиболее мощных инструментальных средств в UNIX, позволяя истинно удаленное администрирование. Он также является интересной программой с точки зрения пользователей, потому что предоставляет удаленный доступ к всем их файлам и программам из любой точки Internet. При объединении с X-сервером, отсутствует разлница (кроме задержки) между нахождением за пультом или на другой стороне планеты. Telnet демоны и клиенты доступны в большинстве дистрибутивов Linux.

Шифрованные удаленные сессии shell можно проводить через SSH (http://www.cs.hut.fi/ssh/), что позволяет действительно безопасно удаленно администрировать узел.

7.2 Команды удаленного выполнения

В Unix, и в частности в Linux, существуют удаленные команды, которые позволяют взаимодействовать с другими компьютерами из строки приглашения shell. Примеры: rlogin, который позволяет войти в систему на удаленной машине наподобие telnet; rcp, который позволет удаленно передавать файлы между машинами, и т.д. В заключение, удаленная команда оболочки rsh позволяет выполнение команд на удаленной машине без фактической регистрации на той машину.

7.3 X-Window

X Window System была разработана в MIT в недавнем 1980-ом и быстро стала промышленным стандартом оконной системы для графических рабочих станций UNIX. Программное обеспечение свободно доступно, очень универсально и подходит для широкого диапазона аппаратных средств. Любая X window system состоит из 2 частей - X сервер и одного или больше X клиентов. Важно понять различие между сервором и клиентом. Сервер управляет дисплеем напрямую и ответственен за весь ввод-вывод через клавиатуру, мышь и дисплей. Клиенты, с другой стороны, не обращаются к экрану непосредственно - они связываются с сервером, который обрабатывает весь ввод и вывод. Клиенты проделывают "реальную" вычислительную работу - управляют прикладными программами или еще что-нибудь. Клиент связывается с сервером, заставляя сервер открыть одно или более окон, чтобы произвести операции ввода и вывода для этого клиента.

Короче говоря, X Window System позволяет пользователю зарегистрироваться на удаленной машине, выполнить процесс (например, открыть веб-браузер) и вывод отобразить на собственной машине. Поскольку процесс фактически выполняется на сервере, пользователю требуется процессор очень небольшой производительности. Действительно возможно иметь компьютеры, чье первичное назначение состоит в том, чтобы работать как чистые x-серверы, и они известны как x-терминалы.

Свободный порт X Window system существует для Linux и может быть найден в: Xfree. Обычно он включается в большинство дистрибутивов Linux.

Информация:

  • Remote X Apps How-to
  • VNC
    VNC означает Virtual Network Computing. Это, в сущности, система "удаленного дисплея", которая позволяет видеть "рабочий стол" не только на машине, где запущен процесс, но и из любой точки Internet на машинах самой разнообразной архитектуры. И клиент, и сервер существует для Linux, также как и для многих других платформ. Можно запустить MS Word на машине с Windows NT или Windows 95 и выводимую информацию отображать на Linux машине. И наоборот - можно выполнять прикладную программу на Linux машине и выводить отображаемую информацию на любую другую машину с Linux или Windows. Существует клиент Java, позволяющий выполнять "удаленный дисплей" внутри окна веб-браузера. В заключение скажу что, порт для Linux, использующий графическую библиотеку SVGAlib позволяет сделать полностью функциональный x-терминал из 386 с 4 МБ оперативной памяти.

8. Сетевые соединения

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

8.1 Маршрутизатор

Linux ядро имеет встроенную поддержку для функций маршрутизации. Linux-машина может действовать или как IP, или IPX маршрутизатор стоимостью в несколько раз меньшей, чем коммерческий маршрутизатор. Новые ядра включают специальные опции для машин, работающих прежде всего как маршрутизаторы:

  • Мультикастинг: Позволяет Linux машине работать как маршрутизатор для IP пакетов, которые имеют несколько адресов назначения. Это необходимо при работе в MBONE, сеть с высокой прпускной способностью, лежащая в основе Internet, который передает звук, радиопередачи, видео
  • Стратегия IP маршрутизации: Обычно, маршрутизатор решает, что делать с полученным пакетом, основываясь исключительно на адресе назначения пакета, но маршрутизатор может также принять во внимание и адрес источника, и сетевое устройство, с которого пакет прибыл пакет.

Имеется несколько проектов, которые включают попытки построить маршрутизатор на Linux на одной дискете: Linux router project

8.2 Мост

Ядро Linux имеет встроенную поддержку для работы в качестве моста локальной сети ethernet, что означает, что соединенные им различные сегменты локальной сети ethernet работают как одна локальная сеть ethernet. Несколько мостов могут работать вместе, чтобы создать большие сети Ethernet, используя алгоритм spanning tree IEEE802.1. Поскольку он является стандартом, Linux мосты будут правильно взаимодействать с мостами третьих фирм. Дополнительные программные пакеты позволяют фильтровать данные по IP, IPX или MAC адресам.

How-tos:

8.3 IP-Masquerading

IP Masquerade - развивающаяся функция работы с сетями в Linux. Если Linux-хост соединен с Internet с включенным IP Masquerade, то компьютеры, подключенные к нему (либо в той же самой локальной вычислительной сети, либо соединенные по модему) могут тоже выходить в Inetrnet, даже если у них нет официально назначенных IP адресов. Это позволяет сократить издержки, так как множество людей могут работать с Internet через одно модемное соединение, а также способствует укреплению безопасности (в некоторых случаях машина работает как firewall, так как к неофициально назначенным адресам нельзя обращаться из внешней сети)

Страницы и документы о IP masquerade:

8.4 IP-Accounting

Эта опция ядра Linux следит за IP трафиком, регистрацией пакетов и вырабатывает статистику. Последовательность правил может определять, что когда некоторый пакет соответствует образцу, то счетчик увеличивается, он принимается/отвергается, и т.д ..

8.5 IP aliasing

Эта особенность ядра Linux обеспечивает возможность установки нескольких сетевых адресов на один и тот же драйвер низкого уровня сетевого устройства (например, два IP адреса на один адаптер локальной сети ethernet). Обычно используется для сервисов, которые работают с адресами из различных сетей (например "мультихостинг" или "виртуальные области" или "виртуальный мультихостинг").

How-to:

8.6 Traffic Shaping

Traffic shaper - это действительное сетевое устройство, которое ограничиивает выходной поток данных в другом сетевом устройстве. Он особенно полезен в тех случаях (например, для ISP), когда желательно управлять скоростями передачи данных для каждого пользователя. Другой вариант (только для веб) - это модули Apache, которые ограничивают число IP соединений или используемую скорость передачи для конкретного пользователя.

8.7 Firewall

Firewall - устройство, которое защищает частную сеть от общей части (Internet'а в целом). Оно разработано для управления потоком пакетов, в зависимости от адреса источника, адреса назначения, порта и информации о типе пакета, содержащихся в каждом пакете.

Для Linux существуют различные комплекты инструментальных средств firewall равно как и встроенная в ядро поддержка. Другие firewallы - TIS и SOCKS. Эти комплекты инструментальных средств firewall весьма функциональны, и будучи объединенными с другими инструментальными средствами позволяют блокировать/переназначать любые трафик и протоколы. Различные правила могут задаваться через файлы конфигурации или GUI программы.

8.8 Port forwarding

Увеличение числа веб-сайтов достигается с помощью cgi-bins или Java-апплетов, которые обращаются к некоторой базе данных или другому сервису. Так как этот доступ может ставить проблему защиты, машина, содержащая базу данных не должна быть соединена непосредственно к Internet.

Port Forwarding может обеспечить почти идеальное решение этой проблемы. На firewall, в IP пакетах, которые приходят на указанный порт, номер порта может быть подменен, и пакеты будут посылаться на внутренний сервер, обеспечивающий фактическое обслуживание. Ответные пакеты от внутреннего сервера преобразуются так, словно они исходят от firewall.

Информацию по Port Forwarding можно найти здесь.

8.9 Load Balancing

Вопрос о выравнивании нагрузки возникает обычно при доступе к базе данных/веб, когда к серверу обращается одновременно множество клиентов. Было бы желательно иметь несколько идентичных серверов и переназначать запросы на менее загруженный сервер. Это может быть достигнуто с помощью технологии Трансляции Сетевых Адресов (NAT), чьим подмножеством является IP-masquerading. Сетевые администраторы могут заменить один сервер, обеспечивая услуги веб - или любое другое приложение, - объединением серверов, совместно использующих один общий адрес IP. Входящие соединения направлюятся на особый сервер, использующий алгоритм выравнивания нагрузки. Виртуальный сервер перезаписывает входящие и исходящие пакеты так, что клиент имеют прозрачный доступ к серверу, как будто сервер только один.

Информация по Linux IP-NAT может быть найдена здесь.

8.10 EQL

EQL интегрирован в ядро Linux. Если существуют два последовательных соединения с некоторым другим компьютером (обычно для этого требуется два модема и две телефонных линии) и на них используются SLIP или PPP (протоколы для передачи Internet трафика по телефонным линиям), то можно заставить их вести себя как одно соединение удвоенного быстродействия, использующее этот драйвер. Конечно, оно должно поддерживаться также и на другом конце линка.

8.11 Прокси-сервер

Термин прокси означает "делать что-либо от чьего-то имени". В условиях работы с сетями, прокси-сервер может работать для защиты нескольких клиентов. HTTP прокси - это машина, которая получает запросы на веб страницы от другой машины (Машина A). Прокси скачивает запрошенную страницу и передает ее Машине A. Прокси может иметь кэш запрошенных страниц, так что, если другая машина обратится к той же самой странице, то ей будет передана копия из кэша. Это позволяет более эффективно использовать каналы связи и уменьшить время отклика. Как побочный эффект, для машин, не подключенных непосредственно к Internet прокси является точкой выхода внутренней сети во внешний мир. Тщательно настроенный прокси может быть эффективен также, как и хороший firewall.

Для Linux написано несколько прокси серверов. Одно из самых популярных решение - прокси-модуль из пакета Apache. Более полная и продуманная реализация HTTP прокси - SQUID.

8.12 Дозвон по требованию

Цель дозвона по требованию состоит в том, чтобы заставить это очевидно появиться, что пользователи имеют постоянное соединение с удаленным местом. Обычно, имеется daemon, кто контролирует воздушное движение пакетов и где интересный пакет (интересный определен обычно набором rules/priorities/permissions) прибывает, это устанавливает соединение с удаленным концом. Когда канал - простой для некоторого периода(точки) времени, это понижает(пропускает) соединение.

8.13 Tunnelling, мобильный IP и виртуальные частные сети

Ядро Linux позволяет осуществлять tunnelling протоколов (вложение пакетов). Он может делать IPX tunnelling через IP, позволяя соединить две IPX сети по IP связи. Также можно делать IP-IP tunnelling, что является необходимым для поддержки мобильных IP, поддержки мультивещания и любительского радио. (См. http://sunsite.unc.edu/mdw/HOWTO/NET-3-HOWTO-6.html#ss6.13)

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

Двухточечный Протокол Туннелирования (PPTP) - технология работы с сетями, которая позволяет использовать Internet в качестве среды передачи для виртуальной частной сети (VPN). На сервере Windows NT PPTP встроен в сервер удаленного доступа (RAS). С помощью PPTP пользователи могут звонить локальному ISP или соединяться непосредственно с Internet, и обращаться к своей сети, словно работая в локальной сети. PPTP - закрытый протокол, и его качество защиты было недавно скомпрометировано. Настойчиво рекомендуется под Linux использовать другие методы защиты, так как они основаны на открытых стандартах, которые были тщательно проверены.

  • Реализация клиента PPTP для Linux доступна здесь
Мобильные IP: Документы о Виртуальных Частных Сетях:

9. Сетевое Управление

9.1 Прикладные программы сетевого управления

Имеется внушительное число инструментальных средств, ориентированных на сетевое управление и удаленное администрирование. Некоторые интересные проекты удаленного администрирования - linuxconf и webmin:

Другие инструментальные средства включают сетевые инструментальные средства анализа трафика, сетевые инструментальные средства защиты, контролирующие инструментальные средства, инструментальные средства настройки, и т.д Архивы многих из этих инструментальных средств могут быть найдены на Sunsite.

9.2 SNMP

Простой Сетевой Протокол Управления - протокол для предоствления услуг по управлению сетью. Он предоставляет удаленный текущий контроль и настройку маршрутизаторов, мостов, сетевых плат, коммутаторов, и т.д ... Имеется большое количество библиотек, клиентов, демонов и программ для SNMP написанных для Linux. Хорошая страница, относящаяся к SNMP и ПО для Linux может быть найдена на: http://linas.org/linux/NMS.html

10. Производственные сети и Linux

В некоторых ситуациях при работе с сетями необходимо иметь механизмы, гарантирующие ~100% работоспособность cети. Некоторые такие методы описаны в последующих разделах. Большинство из этого материала может быть найдено на превосходном веб-сайте http://linas.org/linux/index.html и Linux High-Availability how-to

10.1 Высокая надежность

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

10.2 RAID

RAID, сокращение для Избыточного Массива Недорогих Дисков, является методом, с помощью которого информация располагается на нескольких дисках, используя методы типа дискового striping (RAID уровня 0) и зеркального отображения диска (RAID уровня 1), чтобы достигнуть избыточности, более малого времени ожидания и/или большей скорости чтения и/или записи, и восстановимости после сбоев жесткого диска. Имеется свыше шести различных типов конфигураций RAID. Для пользователей Linux доступны три вида реализации RAID: программный RAID, внешние корзины DASD и контроллеры RAID.

  • Программный RAID: Исключительно программная реализация RAID осуществляет различные уровни RAID в дисковом коде ядра.
  • Внешние корзины DASD: DASD (Устройство Памяти Прямого доступа) - отдельные модули, которые поставляются с их собственным питанием, обеспечивают шкаф/блок для закрепления жестких дисков, и видны в Linux как SCSI устройства. Во многих случаях они предоставляют наиболее продуманное решение RAID.
  • Контроллеры RAID: Контроллеры - платы адаптера, которые подключают к шине ISA/EISA/PCI. Точно так же как и обычные платы дискового контроллера, кабель присоединяется к дисководам. В отличие от обычных контроллеров дисков, контроллеры RAID реализуют RAID непосредственно на самой плате, выполняя все необходимые операции по обеспечению различных уровней RAID.

How-tos:

RAID на linas.org:

10.3 Избыточность в сетях

IP Address Takeover (IPAT). Когда сбоит плата сетевого адаптера, ее адрес IP должен переназначиться рабочей сетевой плате на том же самом хосте или на другом хосте. MAC Address Takeover: когда происходит перераспределение IP адресов, надо удостовериться, что все узлы в сети модифицировали свои ARP кэши (отображение между IP и MAC адресами). См. High-Availability How-To для подробностей: http://sunsite.unc.edu/pub/Linux/ALPHA/linux-ha/High-Availability-HOWTO.html

11. Источники Информации

Где получить дальнейшую информацию:

12. Подтверждения и оговорки

Этот документ основан на работах многих других людей, которые помогли Linux стать тем, чем он является теперь: одной из самых лучших сетевых операционных систем. Все благодарности - им. На этот документ было потрачено много усилий, чтобы сделать его простым, точным и полным, но не чрезмерно длинным. Однако, автором не будет принята ответственность в любом случае. Используйте информацию, содержащуюся здесь на ваш собственный риск. Пожалуйста, не стесняйтесь присылать мне по электронной почте предложения, исправления или общие комментарии относящиеся к документу, так чтобы я мог улучшать его. Другие темы, которые будут вероятно включены в будущие изменения этого документа, могут включать radius, утилиты для web/ftp зеркал типа wget, анализаторов трафика, CORBA ... и многое другое, что может быть предложено и подойдет. Вы можете найти меня здесь

В заключение я хотел бы поблагодарить FinnBjørn av Teilgum за его корректную "проверочную бету" этого how-to.

Daniel López Ridruejo 9th May 1998

[ опубликовано 09/02/2003 ]

Daniel Lopez Ridruejo - The Linux Networking Overview HOWTO, v0.2, 10 Июля 1998 г.   Версия для печати