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

Использовать выделенную подсеть для подключения всех маршрутизаторов / межсетевых экранов?

У меня есть пара маршрутизаторов / брандмауэров (pfSense, TMG 2010, ISA 2006) в моей сети с отслеживанием состояния. Прямо сейчас все они имеют интерфейс в той же подсети, что и большинство устройств и серверов конечных пользователей. Я внесу некоторые изменения и поставлю некоторые серверы в их собственные подсети за этими межсетевыми экранами, поэтому мне интересно, следует ли мне настроить одну выделенную подсеть для маршрутизаторов, чтобы маршрутизировать пакеты друг другу. Нет протоколов маршрутизации, только статические маршруты.

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

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

Текущий

Router 1              Router 2              Router 3
192.168.1.1/24 ------ 192.168.1.2/24 ------ 192.168.1.3/24 ------ All other devices
       |                     |                      |
       V                     V                      V
10.10.10.1/24         10.20.20.1/24         10.30.30.1/24

Предложил

Router 1              Router 2              Router 3
192.168.1.1/24                                              ------ All other devices
10.200.200.1/24 ----- 10.200.200.2/24 ----- 10.200.200.3/24 ------ Routers/Firewalls only
       |                     |                      |
       V                     V                      V
10.10.10.1/24         10.20.20.1/24         10.30.30.1/24    

Следуя моему комментарию, примерно так

      +----------+    +----------+   +----------+
      | Router 1 |    | Router 2 |   | Router 3 |
      +-------+--+    +----+-----+   +--+-------+
              |            |            |
              |            |            |10.200.200.0/24
              |            |            |
           +--v------------v------------v-+
           |           Router A           +-------------+
           +-+---------+---------------+--+             |
             |         |               |                |
             |         |               |                |
             |         |               |                |
+------------v-+ +-----v-------+ +-----v-------+ +------v------+
|192.168.1.0/24| |10.10.10.0/24| |10.20.20.0/24| |10.30.30.0/24|
+--------------+ +-------------+ +-------------+ +-------------+

Маршрутизатор 1 = 10.200.200.1

Маршрутизатор 2 = 10.200.200.2

Маршрутизатор 3 = 10.200.200.3

Маршрутизатор A = 10.200.200.254

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

Внутренний маршрутизатор действительно становится более сложным, потому что ему необходимо знать о нескольких восходящих маршрутизаторах и отслеживать соединения, чтобы избежать асинхронной маршрутизации. Я считаю, что преимущества того стоят: вся сложность заключена в этом маршрутизаторе, а все остальное остается простым. И вы можете полностью контролировать несколько подключений на этом хосте. Например, вы можете использовать NAT-трафик со всех 3 подключений к одному и тому же внутреннему серверу, но серверу не нужно ничего знать об этом, внутренний сервер будет отслеживать каждое подключение и соответствующим образом направлять трафик, чтобы избежать асинхронности.

Это очень похоже на установку в моей работе, за исключением того, что у нас только 2 восходящих соединения. Маршрутизатор A - это пара Linux-серверов, работающих в H / A. Отслеживание соединений выполняется с помощью маршрутизации на основе политик. Лучшее руководство по PBR, которое я нашел: http://www.cyber.com.au/~twb/doc/dual-uplink.txt

Я бы сказал, что вы вводите дополнительный уровень (буквально) сложности.

Я предполагаю, что ваши проблемы с асинхронной маршрутизацией связаны с ситуацией, например 192.168.1.55 отправляет пакет 10.20.20.55 но нет маршрута через 192.168.1.2 поэтому отправляет его по умолчанию на 192.168.1.1 куда он перенаправляется 192.168.1.2. Затем ответный пакет идет напрямую от 192.168.1.2 к первоисточнику, поэтому 192.168.1.1 видеть только пакеты от клиента к серверу, а не пакеты от сервера к клиенту.

В своих средах я избегаю проблемы брандмауэра с асинхронной маршрутизацией, добавляя правило, разрешающее маршрутизацию отказов (все, что входит и выходит в один и тот же интерфейс == тот же уровень 2 == разрешить). Вы не создаете никаких проблем с безопасностью, поскольку src и dst пакета находятся на одном уровне 2 и в любом случае могут напрямую взаимодействовать друг с другом, вы просто «поощряете» проблемы с производительностью за счет неоптимальной маршрутизации.