Я арендую несколько выделенных серверов, и у них есть только один интерфейс для подключения к Интернету.
Однако для многих случаев использования я хотел бы, чтобы мои серверы взаимодействовали через частную IP-сеть. Например, это позволило бы мне выставлять внутренние сервисы (ldap, puppet master, apt repository, bind) только в LAN.
В идеале я хотел бы иметь оверлейную сеть, которая выглядела бы как частная сеть (каждая машина имела бы новый виртуальный интерфейс с локальным IP-адресом), но работала бы в Интернете.
Раньше я использовал для этого Freelan, который работал просто великолепно, за исключением того, что я больше не хочу использовать такой экзотический стек.
Мне было интересно, возможно ли это с GRE/IPSec? Из того, что я видел, мне пришлось бы настроить один интерфейс GRE для каждого однорангового узла на каждом хосте, чтобы получить полную сетку. Есть ли более простое решение? Похоже, это не очень хорошо масштабируется с количеством одноранговых узлов.
решение1
Да. Вы можете настроить интерфейсы gre, а затем зашифровать ваш межсерверный трафик gre с помощью ipsec. То же самое можно сделать с помощью ipip (некоторые системы UNIX называют этот тип интерфейсагифка). Но, на самом деле, это старый устаревший способ. Что еще более устаревший - это настройка не-gre ipsec, потому что в этом случае его будет трудно поддерживать и почти невозможно маршрутизировать, потому что никакие динамические протоколы маршрутизации не смогут работать поверх устаревшего безинтерфейсного ipsec.
В то же время существует технология, которую Cisco называет VTI (Интерфейс виртуального туннеля) и Juniper называет st (безопасный туннель). В то же время это немного сложнее (нужно создать специальный тип интерфейса, способный обрабатывать IP-трафик)иterminate ipsec), но в то же время проще, так как не добавляет промежуточный заголовок IP (хотя gre с ipsec в транспортном режиме тоже). Современные Linux поддерживают эту технологию, плюс она совместима с оборудованием Cisco и Juniper.
Итак, по сути у вас есть следующие варианты, я перечисляю их в порядке возрастания сложности:
- незашифрованные туннели ipip/gre (безопасно, если ваш транспорт уже защищен TLS), довольно просты в настройке
- чистый устаревший IPsec (устаревший, но достойный упоминания)
- gre/ipip вместе с шифрованием IPsec
- ВТИ/ст
Плюс, есть много программного обеспечения, которое создает VPN на уровне пользователя. Главным недостатком этого является ограниченная совместимость — оно может взаимодействовать только с тем же программным обеспечением. Однако, это на самом деле лучше, чем устаревший ipsec, потому что он ближе к приличной маршрутизации. Однако, если говорить о протоколах динамической маршрутизации, то действуют несколько ограничений, и я не рекомендую использовать его в среде, которая должна масштабироваться:
- опенвпн
- ошеломить
- тинк
И напоследок я должен заметить, что если говорить о выделенных серверах, которые находятся водиндатацентр, VPN немного излишне. Правильным решением было бы настроить для них VLAN с частной адресацией, добавить этот vlan в транк 802.1q, который будет обрабатывать ваш сервер, и создать интерфейс vlan. Таким образом, один интерфейс все равно будет использоваться (однако, большинство современных серверных платформ имеют как минимум два медных гигабита, поэтому я не вижу проблемы в том, чтобы включить еще один простой интерфейс ethernet — это просто самая простая вещь).