Иногда нас посещают странные мысли. Вот и я однажды подумал – “а почему бы ни поднять VLAN на сервере Forefront TMG 2010”?.. Я был очень сильно удивлен, когда понял, что таких как я в интернете достаточно много. В целом вопрос достаточно избитый и все сводится к тому, что изначально TMG не умеет разруливать трафик из разных виртуальных сетей в принципе.
То есть если вы подключите trunk к адаптеру внутренней сети, то ваш TMG будет видеть лишь трафик с того VLAN, ip-адрес которого прописан в настройках адаптера. Добавлять дополнительные ip-адреса в настройках подключения бесполезно, плодить сетевые карты тоже. Настроек в консоли TMG, позволяющих решить проблему, вы тоже не найдете. Это и логично, поскольку TMG – это фактически устройство 3 уровня общеизвестной модели, а VLAN – технология 2 уровня.
Однако проблему можно решить достаточно просто путем создания виртуальных адаптеров. Таким образом настройка VLAN на TMG изначально зависит от возможностей вашего сетевого адаптера и драйверов к нему. Скажу сразу, что реализовать подобное на дешевых адаптерах за 1000 рублей у вас не получится, это все-таки должен быть полноценный серверный адаптер, пусть даже и встроенный в материнскую плату. В моем случае это был Intel 82574 и он поддерживал возможность создания виртуальных сетевых адаптеров.
Просмотреть статьи по данной тематике вы можете по тегу TMG, ISA. Также доступна подписка на новости (значок RSS вверху справа).
Настройка VLAN на TMG
Первым делом займитесь установкой самых последних драйверов, скаченных с официальных источников. Дальше все расписано по пунктам.
Заходим в свойства сетевого адаптера и находит вкладку VLAN, создаем необходимые виртуальные сети. Все они будут связаны именно с этим адаптером:
При создании первой сети у меня подвисли все настройки и находились в таком состоянии примерно 3-4 минуты. Если у вас будет также, наберитесь терпения, первая сеть создается долго. Как только все создано, можно посмотреть список адаптеров, у меня он выглядел так:
Не поленитесь заполнить описания каждой виртуальной сети, так значительно легче ориентироваться. Далее заходим в свойства каждого виртуального адаптера и прописываем необходимый для этого VLAN ip-адрес:
Следующий этап – дать знать об этих сетях самому TMG. В консоли добавляем диапазоны ip, входящих в каждую виртуальную сеть:
На этом основная настройка завершена. Хорошо бы провести диагностику работы нашей новой топологии. Для этого в системных правилах нужно разрешить эхо-запросы:
И отдельно создать правило для пинга во внешнюю сеть:
На этом все, пингуйте на здоровье.
VLAN на TMG – А надо ли?
Этот вопрос мне пришел в голову уже после того как все было настроено. Как правило, если что-то можно сделать проще, без потери качества и реализовав все поставленные цели, то нужно сделать именно так. В ситуации с VLAN на TMG все обстоит именно таким образом по нескольким причинам:
- Дело в том, что сам по себе факт создания множества виртуальных интерфейсов ничуть не упрощает общую конфигурацию. А представьте, если у вас под сотню VLAN;
- Диагностика неисправностей тоже выглядит очень сложным процессом – вы всегда будете подозревать ваш TMG во всех бедах и при том не зря. По идее даже если драйверы сетевухи написаны криво, это уже станет проблемой. Такие ситуации, например, с сетевым оборудованием встречаются значительно реже, чем проблемы с драйверами сетевых плат;
- Пропускная способность тоже станет проблемой. Хорошо, вы сможете установить ещё дополнительно пару сетевых плат (если конечно серверное шасси позволяет) и объединить их в группу, но то же самое даже на самой дешевой “железке” делается проще и быстрее – просто объединяются в LACP хоть 8 интерфейсов (это актуально в том случае, если ваш TMG является ещё и шлюзом для внутренних клиентов, то есть выполняет маршрутизацию между внутренними сетями. У меня шлюз – это классический маршрутизатор, который уже сам заворачивает трафик на TMG, если понимает, что обращение идет наружу);
- Забудьте про виртуализованный TMG. Поскольку виртуальные адаптеры реализовываются с помощью драйверов сетевых плат, то сделать аналогичное на виртуальной машине вы уже не сможете. А зачем в наше время держать не требовательный к дискам TMG на отдельном железе?
Все эти проблемы, а также советы знающих коллег, привели меня к тому, что я перестроил топологию. TMG я сделал “обычным” рядовым сервером, просто на один интерфейс у меня приходил аплинк от провайдера, другой интерфейс смотрел в локальную сеть. Маршрутизация поднята на отдельной железке. Пришлось создать два статических маршрута:
- Первый маршрут – default route на железке – заворачивал все обращения во внешнюю сеть на TMG;
- Второй маршрут – результирующий маршрут для внутренних подсетей на TMG – отправлял весь трафик из VLAN’ов на железку и она в свою очередь уже раскидывала по подсетям.
Именно такой вариант я вам и рекомендую.