top
logo


Руководство по pfSense 2.0. Часть 8 Маршрутизация PDF Печать E-mail
30.03.12 15:08

Руководство по pfSense 2.0. Часть 8

Глава 8. Маршрутизация

 

оглавление

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

 

Статические маршруты

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

Рисунок 8.1. "Статический маршрут" иллюстрирует сценарий который требуетиспользование статического маршрута.

Рисунок 8.1. Статический маршрут

 

Поскольку сеть 192.168.2.0/24 на рисунке 8.1. не соединена непосредственно синтерфейсом pfSense, вам необходим статический маршрут несущий информацию одостижении сети. Рисунок 8.2. "Конфигурация статического маршрута" показываетсвойства статического маршрута для данной схемы.

Рисунок 8.2. Конфигурация статического маршрута.

 

Блок Interface определяет интерфейс, на котором доступен шлюз. Destinationnetwork определяет подсеть доступную по данному маршруту. Gateway определяет IP адрес маршрутизатора через который доступна данная сеть. Данный IP адрес должен находится в пределах IP подсети выбранного интерфейса. Также, можетпотребоваться настройка правил брандмауера. По умолчанию, правило LAN позволяет трафик исходящий из LAN подсети, таким образом, если вы используете это правило, вам необходимо открыть исходную сеть, так же включая сети достижимые через статический маршрут на LAN. Следующий раздел описывает общий сценарий сиспользованием статических маршрутов.

 

Обход правил брандмауэра для трафика на самом интерфейсе.

В большинстве ситуаций при использовании статических маршрутов вы получитеасимметричную маршрутизацию. Это означает, что трафик идущий в одном направлении движет различными маршрутами с трафиком идущим в противоположном направлении.Например рассмотрим иллюстрацию 8.3. "Ассиметричная маршрутизация".

Рисунок 8.3. Ассиметричная маршрутизация

 

Трафик от PC1 до PC2 проходит через pfSense, поскольку он является шлюзом по умолчанию для PC1, однако трафик противоположного направления (PC2 -> PC1)проходит непосредственно от маршрутизатора к PC1. Так как pfSense - брандмауэр с поддержкой состояний, он должен видеть все соединения, чтобы нормально выполнять фильтрацию трафика. В случае ассиметричной маршрутизации, любая работа stateful-брандмауэра закончится отбрасыванием законного трафика, поскольку невозможнодолжным образом сохранить состояние не видя трафика проходящего в обоихнаправлениях. Всегда проверяйте отмечайте флаг Bypass firewall rules для трафика на самом интерфейсе на странице System >> Advanced при сценарии ассиметричноймаршрутизации, дабы воспрепятствовать сбросу законного трафика. Таким образомбудут добавлены правила брандмауэра, позволяющие движение всего трафика междусетями определёнными в статических маршрутах не использующих опцию состояний PF. Аналогично, вы можете добавит правило брандмауэра самостоятельно, указав noneкак State Type (тип состояния), для соответствующего трафика между локальными и удалёнными подсетями, однако мы обычно не рекомендуем делать этого из за сложности формирования правил, которая может привести к увеличению формирования вероятных ошибок. Если вам необходимо фильтровать трафик между статистическимаршрутизируемыми подсетями, необходимо делать это на маршрутизаторе, а не набрандмауэре, поскольку брандмауэр фактически не находится в сети где можетэффективно управлять трафиком.

Когда устройство посылает пакет шлюзу по умолчанию, и шлюз знает, чтоотправитель может достигнуть сеть назначения через более прямой маршрут, онпосылает отправителю сообщение перенаправления ICMP и пересылает пакет всоответствии с конфигурацией. В соответствии с переадресацией ICMP маршрутадреса назначения будет добавлен в таблицу маршрутизации устройства отправителя, и впоследствии, данный маршрут будет использоваться как наиболее короткий длядостижения сети назначения. Этот механизм не будет работать, если конфигурациявашей ОС не разрешает использование ICMP переадресации, хотя обычно, поумолчанию это не так. Переадресация ICMP распространена в случаях, когда вы имеете статический маршрут указывающий на маршрутизатор на том же интерфейсе что и клиентские PC и другие сетевые устройства. Схематическая диаграммаассиметричной маршрутизации показанная в предыдущем разделе - пример этого.Переадресация ICMP пользуется незаслуженно плохой репутацией из-за рядапроблем безопасности, поскольку позволяет модификацию системных таблицмаршрутизации. Сообщение ICMP переадресации должно включать первые 8 байт данных исходной датаграммы. Хост может видеть эти данные и следовательно,фальсифицировать незаконные сообщения перенаправления ICMP достигая конечногорезультата множеством других путей.

 

Маршрутизация публичных IP

Этот раздел рассматривает маршрутизацию публичных IP, когда вы имеете публичную IP подсеть назначенную на внутренний интерфейс и единственныйбрандмауэр. Если вы используете CARP, смотрите раздел 20.7. "Обеспечениеизбыточности без NAT"

Вам необходимо иметь по крайней мере две публичные IP подсети связанных с вами вашим ISP. Одна для WAN вашего брандмауэра, и одна для внутреннего интерфейса.Обычно, это подсеть /30 для WAN, а вторая подсеть для внутреннего интерфейса. Вэтом примере будет использоваться /30 для глобальной сети (см. таблицу 8.1. "Блок IP адресов для глобальной сети") и /29 для публичной сети на внутреннеминтерфейсе OPT как показано в таблице 8.2. "Внутрений блок IP адресов".

Таблица 8.1. Блок IP адресов WAN

Таблица 8.2. Внутренний блок IP адресов

 

Сначала конфигурируем WAN и OPT интерфейсы. При желании, LAN интерфейс так же может использоваться для публичных IP. В данном примере LAN - частная IP подсеть, OPT1 - публичная IP подсеть.

Конфигурация WAN

Добавьте IP адрес и соответствующий шлюз. Иллюстрация 8.4. "Конфигурация WANIP и шлюза" показывает конфигурацию WAN в соответствии с таблицей 8.1. "Блок IPадресов WAN".

Рисунок 8.4. Конфигурация WAN IP и шлюза

 

Конфигурация OPT1

Теперь включим OPT1, произвольно изменим его имя и конфигурирем IP адрес имаску. Иллюстрация 8.5. "Конфигурация маршрутизации OPT1" показываетконфигурацию OPT1 в соответствии с таблицей 8.2. "Внутренний блок IP адресов".

Рисунок 8.5. Конфигурация маршрутизации OPT1

Конфигурация NAT

По умолчанию, трансляция внутреннего трафика на WAN IP должна отменяться,когда используются публичные IP на внутреннем интерфейсе. Перейдите на страницу Firewall >> NAT и щёлкните на закладку Outbound. Выберите [Manual Outbound NATrule] и нажмите Save. Таким образом будет создано правило по умолчанию переводящее весь трафик с LAN подсети на WAN интерфейс для WAN IP, являющеесяповедением по умолчанию для pfSense. Если LAN содержит частную подсеть как вэтом примере, это желательная конфигурация. Трафик исходящий от сети OPT1192.0.2.128/29 не транслируется поскольку источник ограничен 192.168.1.0/24. Эта конфигурация представлена на рисунке 8.6. "Конфигурация исходящего NAT". Если вы используете публичные IP адреса на LAN удалите эту запись сформированнуюавтоматически. И нажмите [Apply Changes].

Рисунок 8.6. Конфигурация Outbound NAT

Конфигурирование правил брандмауэра

С конфигурацией NAT и IP мы закончили. Необходимо добавить правила дляразрешения исходящего и входящего трафика. Рисунок 8.7. "Правила брандмауэра для OPT1" показывает DMZ подобную конфигурацию, когда весь трафик, предназначенныйдля LAN подсети отклоняется, DNS и ping на IP интерфейса OPT1 разрешается ипозволен исходящий HTTP трафик.

Рисунок 8.7. Правила брандмауэра для OPT1

 

Для разрешения интернет трафика на публичные IP внутреннего интерфейса, вамнеобходимо добавить правила для WAN, используя публичные IP в качественазначения. Рисунок 8.8. "Правила брандмауэра для WAN", показывает правилокоторое позволяет HTTP трафик на 192.0.2.130, одном из публичных IP на внутреннем интерфейсе, как видно из таблицы 8.2. "Внутренний блок IP адресов".

Рисунок 8.8. Правила брандмауэра для WAN

После конфигурирования правил брандмауэра можно считать что настройка закончена.

 

Протоколы маршрутизации

В момент написания книги pfSense поддерживает два протокола маршрутизации,RIP(информационный протокол маршрутизации) и BGP (протокол пограничногомаршрутизатора). OSPF (протокол выбора самого короткого пути) вероятно будетдобавлен в качестве пакета. Данный раздел является кратким описанием ипредполагает понимание протоколов маршрутизации. Полное описание протоколоввыходит за рамки контекста данной книги.

RIP

RIP может быть сконфигурирован на странице Services >> RIP. Для этого необходимо:1. Установить флаг Enable RIP2. Выбрать интерфейс на котором протокол RIP будет слушать запросы и пересылать обновления маршрутизации.3. Выбрать версию протокола RIP.4. Если используется RIPv2, введите пароль RIPv2.5. Нажмите Save для сохранения настроек.RIP немедленно подключится и начнёт отпралять и принимать обновления маршрутизации на указанном интерфейсе.

BGP

Используется пакет BGP доступный в OpenBSD - OpenBGPD [http:// www.openbgpd.org]. Для его установки, обратитесь на страницу System >> Packages, и нажмите [+] справо от OpenBGPD. Нажмите [OK] для установки пакета. Затемнажмите на логотип pfSense в верхнем левом углу, чтобы вернуться к домашнейстранице и обновите меню. Вы найдёте OpenBGPD в меню Services.BGP - достаточно сложный протокол, и описание его возможностей выходит зарамки книги. Конфигурация OpenBGPD в pfSense достаточно логичная, при условии,что вы понимаете принципы BGP. Во время разработки этого пакета мы полагались на описание BGP в издании книги O'Reilly BGP [http://www.amazon.com/gp/product/0596002548?ie=UTF8&tag=pfsense-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=0596002548] и рекомендуем ознакомиться с этой книгой перед развёртываниемBGP.

 

Диагностика маршрутизации

При диагностировании проблем потока трафика, одной из наиболее важных вещейявляются маршруты известные pfSense.

1.Просмотр маршрутов

Есть два способа просмотра маршрутов: через WebGUI и через командную строку. Для просмотра маршрутов в WebGUI, обратитесь к странице Diagnostics >> Routes ивы увидите вывод подобный показанному на рисунке 8.9. "Отображение маршрутов".

Рисунок 8.9. Отображение маршрутов

 

Результат вывода командной строки аналогичен результату полученному в WebGUI:

 

Столбцы показанные на данном выводе указывают различные свойства маршрутов иразъясняются далее.

Назначение (Destination)

Хост или сеть назначения. Маршрут по умолчанию для системы отмечается "default". В противном случае, хосты выводятся IP адресами, сети - IP адресом имаской в формате CIDR.

Шлюз (Gateway)

Шлюз - маршрутизатор, занимающийся обработкой пакетов пересылаемых адресуназначения. Если в этом столбце показывается ссылка, например link#1, значитсеть непосредственно доступна на интерфейсе и нет необходимости в специфической маршрутизации. Если хост видится с MAC адресом, это означает, что данный хостдоступен в локальной ARP таблице, и

пакеты передаются ему непосредственно.

Флаги (Flags)

Существует значительно множество флагов, каждый из которых описан в man странице netstat(1) ОС FreeBSD, и приведёны, с некоторыми модификациями, в таблице 8.3. "Таблица маршрутизации: флаги и их значение".

Таблица 8.3. Таблица маршрутизации: флаги и их значение

Например, маршрут помеченный флагом UGS, пригоден для использования, пакетыпередаются через определенный шлюз и это статический маршрут.

Refs

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

Использование (Use)

Данный счетчик информирует о общем числе пакетов посланных через данный маршрут. Это бывает полезно для определения фактического использования маршрута, поскольку он будет непрерывно расти если маршрут используется.

Сетевой интерфейс (Netif)

Сетевой интерфейс используемый для данного маршрута.

Истечение (Expire)

Для динамических записей это поле информирует о том, как долго этот маршрут будет активен, если не будет повторного использования.

 

2.Использование traceroute

Traceroute - функциональный инструмент для тестирования и проверки маршрутов и работы сети. Он позволяет видеть каждый "прыжок (hop)" на пути пакета, при его движении из конца в конец, наряду с временем ожидания в промежуточных точкахмаршрута. В pfSense вы можете использовать traceroute на странице Diagnostics >> Traceroute, или использовать traceroute из командной строки. Для клиентов использующих Windows, данная программа доступна под именем tracert. Каждый IP пакет содержит значение времени жизни (TTL - time to live). Когдамаршрутизатор передаёт пакет, он уменьшает время TTL на единицу. Когдамаршрутизатор получает пакет с TTL=1, а назначение не является местным для данного маршрутизатора, маршрутизатор возвращает сообщение об ошибках ICMP -Time-to-live exceeded (время жизни превышено) - и сбрасывает пакет. Такимобразом ограничивается возникновение циклов маршрутизации, которые могли быпривести к нелимитированному циркулированию пакета.Taceroute использует TTL преимущественно для отображения пути к определённойсети назначения. Начинается передача с первого пакета имеющего TTL=1. Первыймаршрутизатор (обычно системный шлюз по умолчанию) возвращает сообщение обошибке ICMP. Время между посылкой пакета и получением ошибки ICMP является временем отображаемым наряду с IP адресом, передающим ошибку и его реверсивным DNS. После посылки трёх пакетов с TTL=1 и вывода времени ответа, TTLувеличивается на 1 и передаётся ещё три пакета, выводя ту же информацию длявторого прыжка (хопа). Traceroute продолжает увеличивать время TTL пока пакет не достигнет назначения или пока не превышено максимальное число допустимыхпрыжков.Traceroute функционирует несколько различно на Windows и Unix-подобных ОС (BSD, Linux, MacOS X, UNIX). Windows оспользует пакеты эхо-ICMP (ping), в товремя как UNIX системы используют пакеты UDP. ICMP и UDP - протокол четвёртого уровня, а traceroute выполняется на третьем уровне, таким образом используемыйпротокол является в какой-то мере несоответствующим, кроме тех случаев, когдапринимается во внимание ваша политика конфигурации маршрутизации. Tracerouteклиентов Windows является политикой маршрутизации основанной на правиле пропуска повторяющихся эхо запросов ICMP, в то время как UNIX клиенты будут маршрутизироваться по правилу соответствующих использованию портов UDP. Вследующем примере мы попытаемся найти маршрут к www.google.com:

# traceroute www.google.com

traceroute: Warning: www.google.com has multiple addresses; using 74.125.95.99 traceroute to www.l.google.com (74.125.95.99), 64 hops max, 40 byte packets

1 core (172.17.23.1) 1.450 ms 1.901 ms 2.213 ms

2 172.17.25.21 (172.17.25.21) 4.852 ms 3.698 ms 3.120 ms

3 bb1-g4-0-2.ipltin.ameritech.net (151.164.42.156) 3.275 ms 3.210 ms 3.215

4 151.164.93.49 (151.164.93.49) 8.791 ms 8.593 ms 8.891 ms

5 74.125.48.117 (74.125.48.117) 8.460 ms 39.941 ms 8.551 ms

6 209.85.254.120 (209.85.254.120) 10.376 ms 8.904 ms 8.765 ms

7 209.85.241.22 (209.85.241.22) 19.479 ms 20.058 ms 19.550 ms

8 209.85.241.29 (209.85.241.29) 20.547 ms 19.761 ms

209.85.241.27 (209.85.241.27) 20.131 ms

9 209.85.240.49 (209.85.240.49) 30.184 ms

72.14.239.189 (72.14.239.189) 21.337 ms 21.756 ms

10 iw-in-f99.google.com (74.125.95.99) 19.793 ms 19.665 ms 20.603 ms

 

Как вы можете видеть, потребовалось 10 прыжков и время ожидания увеличивалосьс каждым прыжком.

 

Маршруты и VPN

В зависимости от используемого VPN, вы можете или не можете видеть маршрут в таблице на дальней стороне. IPsec не использует таблицы маршрутизации, ониспользует внутреннее управление в ядре - IPsec SPD. Статические маршрутыникогда не могут направлять трафик через IPsec подключение. OpenVPN используетсистемную таблицу маршрутизации, кроме того, вы можете видеть записи для сетей доступных через OpenVPN, как в следующем примере:


Интерфейс OpenVPN 192.168.100.2, со шлюзом 192.168.100.1 и интерфейс tun0. Вданном примере есть три сети с маршрутами OpenVPN :192.168.130.0/24,192.168.140.0/24, и 172.17.212.0/22.В случае с IPsec, traceroute не столь полезен как в случае с OpenVPN, поскольку IPsec туннель не имеет IP. По этой причине, выполнение traceroute кточке назначения через IPsec, вы увидите таймаут прыжка.

 

оглавление

?{jcomments on}

Последнее обновление 30.03.12 15:12
 
Интересная статья? Поделись ей с другими:

bottom

 

Unreal Commander PfSense по русски Яндекс.Метрика