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

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

Linux.

Что такое Linux?

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

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

Чем замечателен 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.

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

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

TCP/IP

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

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

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

Дополнительный источник: http://sunsite.unc.edu/mdw/HOWTO/NET-3-HOWTO.html

TCP/IP версия 6

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

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

Linux IPv6 How-to: http://www.terra.net/ipv6/linux-ipv6.faq.htm

Домашняя страница IPv6: http://playground.sun.com/pub/ipng/html/ipng-main.html

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 http://www.caldera.comпредлагает коммерческую поддержку для Novell Netware под Linux. Caldera обеспечивает полнофункционально клиента Novell Netware, созданного по технологии, запатентованной корпорацией Novell. Клиент обечспечивает обеспечивает полный клиентский доступ к файлсерверам Novell 3.x и 4.x и включает функции типа Netware Directory Service (NDS) и RSA шифрование. IPX How-to: http://sunsite.unc.edu/mdw/HOWTO/IPX-HOWTO.html

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

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

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

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

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

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

WAN для Linux: Http://www.secretagent.com/networking/wan.html

ISDN

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

FAQ для isdn4linux: http://tsikora.tiac.net/i4l-faq/eng-i4l-Faq.html

PPP, SLIP, PLIP

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

Linux PPP How-to http://sunsite.unc.edu/mdw/HOWTO/PPP-HOWTO.html

PPP/SLIP эмулятор http://sunsite.unc.edu/mdw/HOWTO/mini/SLIP-PPP-Emulator.html

Информация по PLIP может быть найдена в Руководстве Сетевого Администратора http://sunsite.unc.edu/mdw/LDP/nag/nag.html

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

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

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

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

Любительское радио how-to http://sunsite.unc.edu/mdw/HOWTO/HAM-HOWTO.html

ATM

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

Домашняя страница Linux ATM-Linux http://lrcwww.epfl.ch/linux-atm/

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

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

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

Hardware HowTo http://sunsite.unc.edu/mdw/HOWTO/Hardware-HOWTO.html

Ethernet How-To http://sunsite.unc.edu/mdw/HOWTO/Ethernet-HOWTO.html

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

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

Платформа Apple

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

Netatalk faq и how-to:

http://thehamptons.com/anders/netatalk/

http://www.umich.edu/~rsug/netatalk/

http://www.umich.edu/~rsug/netatalk/faq.html

Платформа Windows

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

Согласно SAMBA мета-faq:

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

Домашняя страничка Samba - http://samba.anu.edu.au/samba/

Samba How-to http://sunsite.unc.edu/mdw/HOWTO/SMB-HOWTO.html

Printing How-to http://sunsite.unc.edu/mdw/HOWTO/Printing-HOWTO.html

Novell Платформа

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

IPX How-to http://sunsite.unc.edu/mdw/HOWTO/IPX-HOWTO.html

UNIX Платформа

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

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

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

http://sunsite.unc.edu/mdw/HOWTO/mini/NFS-Root.html

http://sunsite.unc.edu/mdw/HOWTO/mini/Diskless.html

http://sunsite.unc.edu/mdw/HOWTO/mini/NFS-Root-Client.html

http://www.redhat.com/support/docs/rhl/NFS-Tips/NFS-Tips.html

http://sunsite.unc.edu/mdw/HOWTO/NFS-HOWTO.html

Internet/Intranet

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

Почта

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

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

Веб-страница Sendmail http://www.sendmail.org/

Smail faq http://www.sbay.org/smail-faq.html

Qmail место ткани http://www.qmail.org

Почтовые how-tos: http://sunsite.unc.edu/mdw/HOWTO/Mail-HOWTO.html

http://sunsite.unc.edu/mdw/HOWTO/mini/Qmail+MH.html

http://sunsite.unc.edu/mdw/HOWTO/mini/Sendmail+UUCP.html

http://sunsite.unc.edu/mdw/HOWTO/mini/Mail-queue.html

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

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

Краткое сравнение IMAP и POP http://www.imap.org/imap.vs.pop.brief.html

Почтовые how-tos: http://sunsite.unc.edu/mdw/HOWTO/Mail-HOWTO.html

http://sunsite.unc.edu/mdw/HOWTO/mini/Cyrus-IMAP.html

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

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

Список почтовго программного обеспечения http://www.linuxlinks.com/Software/Internet/Mail/

http://sunsite.unc.edu/mdw/HOWTO/mini/TkRat.html

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

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

Хорошее сравнение существующих MLM может находяться на ftp://ftp.uu.net/usenet/news.answers/mail/list-admin/

Listserv http://www.lsoft.com/

Домашняя страница Majordomo http://www.greatcircle.com/majordomo/

Fetchmail

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 всю входящую почту.

Домашняя страница Fetchmail http://sagan.earthspace.net/~esr/fetchmail/

Веб сервера

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

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

http://www.apache-ssl.org/

http://raven.covalent.net/

http://www.c2.net/

How-tos: http://sunsite.unc.edu/mdw/HOWTO/WWW-HOWTO.html

http://sunsite.unc.edu/mdw/HOWTO/Virtual-Services-HOWTO.html

http://sunsite.unc.edu/mdw/HOWTO/Intranet-Server-HOWTO.html

веб сервера для Linux http://www.linuxlinks.com/Software/Internet/WebServers/

Веб браузеры

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

Веб-браузеры для Linux http://www.linuxlinks.com/Software/Internet/WebBrowsers/

http://sunsite.unc.edu/mdw/HOWTO/mini/Public-Web-Browser.html

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

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

Информационная служба

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

Домашняя страница INN http://www.isc.org/

Программное обеспечение Linux, относящееся к новостям http://www.linuxlinks.com/Software/Internet/News/

DNS

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

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

BIND http://www.isc.org/

DNS How-to http://sunsite.unc.edu/mdw/HOWTO/DNS-HOWTO.html

DHCP, bootp

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

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

DHCP How-to http://sunsite.unc.edu/mdw/HOWTO/mini/DHCP.html

NIS

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

How-To:

NIS How-to http://sunsite.unc.edu/mdw/HOWTO/NIS-HOWTO.html

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

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

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

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

Telnet

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

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

Программное обеспечение для Telnet http://sunsite.unc.edu/pub/Linux/system/network/telnet/

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

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

X Window System

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

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

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

How-to:

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 МБ оперативной памяти. http://sunsite.unc.edu/mdw/HOWTO/mini/Remote-X-Apps.html

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

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

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

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

Мультикастинг:

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

Стратегия IP маршрутизации:

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

Имеется несколько проектов, которые включают попытки построить маршрутизатор на Linux на одной дискете: Linux Router Project http://www.psychosis.com/linux-router/

Мост

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

How-tos:

Bridge + Firewall http://sunsite.unc.edu/mdw/HOWTO/mini/Bridge+Firewall.html

Bridge http://sunsite.unc.edu/mdw/HOWTO/mini/Bridge.html

IP-Masquerading

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

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

http://www.tor.shaw.wave.ca/~ambrose/

http://www.indyramp.com/masq/links.pfhtml

http://sunsite.unc.edu/mdw/HOWTO/mini/IP-Masquerade.html

Ip-accounting

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

IP aliasing

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

How-to:

IP aliasing How-to http://sunsite.unc.edu/mdw/HOWTO/mini/IP-Alias.html

Traffic shaper

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

Firewall

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

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

Домашняя страничка TIS http://www.tis.com

SOCKS http://www.socks.nec.com/socksfaq.html

Firewall How-to http://sunsite.unc.edu/mdw/HOWTO/Firewall-HOWTO.html

Port Forwarding

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

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

Информация по Port Forwarding может быть найдена здесь http://www.ox.compsoc.net/~steve/portforwarding.html

Выравнивание нагрузки

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

Информация по Linux IP-NAT может быть найдена здесь http://www.csn.tu-chemnitz.de/~mha/linux-ip-nat/diplom/

EQL

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

EQL How-to http://www.abies.com/eql-howto.mhtml

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

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

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

Apache http://www.apache.org

Squid http://www.squid.org

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

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

Diald How-to http://sunsite.unc.edu/mdw/HOWTO/mini/Diald.html

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 доступна здесь http://www.pdos.lcs.mit.edu/~cananian/Projects/PPTP/

Мобильные IP: http://www-uk.hpl.hp.com/people/jt/mip.html

http://anchor.cs.binghamton.edu/~mobileip/

Документы о Виртуальных Частных Сетях: http://sunsite.unc.edu/mdw/HOWTO/mini/VPN.html

http://sites.inka.de/sites/bigred/devel/cipe.html

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

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

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

Webmin http://www.webmin.com/webmin/

Linuxconf http://solucor.solucorp.qc.ca/linuxconf/

Другие инструментальные средства включают сетевые инструментальные средства анализа трафика, сетевые инструментальные средства защиты, контролирующие инструментальные средства, инструментальные средства настройки, и т.д Архивы многих из этих инструментальных средств могут быть найдены на Sunsite http://www.sunsite.unc.edu/pub/Linux/system/network/

SNMP

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

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

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

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

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

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: http://sunsite.unc.edu/mdw/HOWTO/mini/DPT-Hardware-RAID.html

http://sunsite.unc.edu/mdw/HOWTO/Root-Rescue.html

http://sunsite.unc.edu/mdw/HOWTO/mini/Software-RAID.html

RAID в linas.org: http://linas.org/linux/raid.html

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

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