Назад | Перейти на главную страницу

Маршрутизация подсети с pfSense

У меня есть общедоступный IP-адрес и общедоступная подсеть / 29, назначенная одному и тому же сетевому адаптеру на сервере, на котором работает ESXi. Я установил pfSense в качестве виртуальной машины на этот ESXi.

Я дал pfSense три виртуальных сетевых адаптера:

Я назначил общедоступный IP-адрес WAN IP-адресу pfSense, а первый IP-адрес моей / 29 подсети - OPT1.

Я собираюсь настроить pgsense для работы в качестве маршрутизатора для (виртуальных) машин на OPT1 и в качестве брандмауэра NAT-ing для (виртуальных) машин в локальной сети.

Я понял, что подсеть OPT1 - это общедоступная IP-подсеть, которая требует маршрутизации, поэтому начал читать доступную документацию. На самом деле я хочу добиться следующего:

Я начал с части OPT1, часть LAN будет настроена позже. Я пытался следовать это как, и я потерпел неудачу. Боюсь, это может быть связано с тем, как я настроил Interfaces/Bridges/OPT1 : Member Interfcaces=WAN,LAN

Симптомом является то, что виртуальная машина в подсети больше не может подключаться к pfSense или пинговать ее. «Сетевое устройство подключено, нет доступа к сети».

Мой OPT1 настроен неправильно? Будем очень признательны за некоторую помощь или руководство по устранению неполадок.

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

  1. Имея общедоступную подсеть, ваш pfsense box становится по сути маршрутизатором. Вам необходимо иметь дело с вашим провайдером восходящего канала, чтобы маршрутизировать пакеты вашей подсети на внешний IP-адрес вашего pfsense box. Если это как-то не сработает (например, они не сотрудничают или даже не понимают, что вы хотите), есть некоторые уловки (например, прокси-сервер), но, надеюсь, они вам не понадобятся.

  2. Однако в направлении OPT1 вам нужен NAT-маршрутизатор. Во FreeBSD базовая платформа pfsense, NAT и брандмауэры, как обычно, более слабо связаны. Вы должны учитывать некоторые неожиданные взаимодействия между вашим NAT и брандмауэром, которые все задокументированы, но в основном в разных источниках freebsd, а не в документации pfsense. Важно узнать вопрос, в каком порядке применяются правила NAT и FW для входящих и исходящих пакетов.

Я считаю, что в среде ESXi для этого не нужно несколько подсетей, однако вы можете, если хотите, по какой-то - здесь неопубликованной - причине. Это усложняет задачу, и выигрыш от нуля до небольшого. Преимущества, которые я вижу:

  1. Безопасность, ваша общедоступная и внутренняя сети не будут видеть друг друга, поэтому ваша общедоступная сеть может работать по существу как DMZ. Однако в среде ESXi машины по умолчанию защищены от прослушивания сети (администраторы ESXi могут выключить ее для каждой машины в настройках виртуальной машины, но отдельные операторы не могут). В подсети ESXi по умолчанию вы не можете видеть пакеты, которые не имеют к вам никакого отношения, даже если вы запускаете сниффер пакетов на виртуальной машине.

  2. Вы можете предоставлять различные службы DHCP в локальной сети и OPT1, что может быть необходимо в автоматизированной среде виртуального хостинга. Однако в этом случае вы не можете переключить LAN и OPT1 вместе, кроме того, у вас могут возникнуть дополнительные проблемы для безопасного решения соединения LAN-OPT1-WAN во всех направлениях.

На мой взгляд, лучше всего использовать защиту ESXi, чтобы упростить pfsense. Если вы это сделаете, сделайте так:

  1. Удалите OPT1.
  2. Установите IP-адрес локальной сети 192.168.1.1.
  3. Настройте его DHCP для обслуживания IP-адресов в диапазоне 192.168.1.2 - 192.168.1.254 для виртуальных машин. (Обратите внимание, 192.168.1.1 будет вам, 192.168.1.255 будет широковещательной сетью). В прошлый раз у меня возникли проблемы с настройкой pfsense dhcpd на другой диапазон IP-адресов, на котором он работает, поэтому вам нужно сначала настроить его.
  4. Настройте виртуальный IP-адрес в локальной сети для вашего общедоступного IP-адреса pfsense (192.0.3.1) и подсети (/ 29). У вас просто не может быть dhcp-сервера для этой подсети, это недостаток этой идеи.

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

  1. Настройте правила NAT для LAN. Здесь у вас есть еще одна проблема: в верхней части настроек NAT вам нужно настроить тип NAT. В зависимости от выбранного типа NAT он автоматически сгенерирует для вас некоторые правила NAT. Как и в прошлый раз, я не мог понять, что именно делают эти правила, а также не мог воспроизвести их с ручными настройками, но они, казалось, были необходимы для беспрепятственного взаимодействия между вашими NAT-сетями и маршрутизируемыми подсетями.1
  2. Настройте также маршрутизацию в вашем брандмауэре. Примечание: во freebsd, а также в pfsense, все заблокировано по умолчанию, и все, что вы хотите передать, должно найти его правило "прохода"! Осторожно, не закрывайся! (Хотя в случае виртуальной машины ESXi pfsense это легко исправить с помощью консольного доступа.)

В отличие от обычных настроек маршрутизатора / коммутатора, здесь, в мире ESXi, у вас есть основная проблема: не имея реального доступа к PROMISC, вы также не можете отслеживать, что происходит с вашими пакетами. Однако в верхнем меню pfsense есть Диагностика -> Трассировщик пакетов, и там действительно можно все отслеживать. Никогда не пытайтесь вслепую взаимодействовать с вашей системой, всегда используйте данные захвата, чтобы понять, что не так с вашей текущей конфигурацией и куда двигаться дальше!

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

Вы можете поместить подсети NAT и маршрутизацию в разные подсети, шаги будут примерно одинаковыми.

1Очень вероятно, что в этом и кроется настоящая причина проблемы.