## 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:

- Bridge+Firewall
- Bridge

## 8.3 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

## 8.4 IP-Accounting

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

## 8.5 IP aliasing

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

How-to:

- IP Aliasing How-to

## 8.6 Traffic Shaping

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

## 8.7 Firewall

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

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

- Домашняя страничка TIS
- SOCKS
- Firewall How-to

## 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 трафика по телефонным линиям), то можно заставить их вести себя как одно соединение удвоенного быстродействия, использующее этот драйвер. Конечно, оно должно поддерживаться также и на другом конце линка.

- EQL How-to

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

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

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

- Apache
- Squid

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

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

- Diald How-to

## 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:

- 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