3.1. Сеть LVS с использованием NAT
Топология с использованием NAT обеспечивает большую гибкость при использовании существующего аппаратного обеспечения, тем не менее применение этой технологии не оправдывает себя в высоконагруженных системах, поскольку и входящие и исходящие пакеты проходят через LVS-маршрутизатор.
3.1.1. Настройка сетевых интерфейсов LVS при использовании NAT
Для настройки LVS с использованием NAT необходимо настроить сетевые интерфейсы для публичной и локальной сетей на LVS-маршрутизаторах. В данном примере интерфейсы LVS-маршрутизаторов, подключенные к публичной сети (eth0
), будут использовать IP-адреса из подсети 192.168.26/24, а интерфейсы, подключенные к локальной сети (eth1
), используют адреса из подсети 10.11.12/24.
Так, на активном или основном узле LVS-маршрутизатора, скрипт настройки публичного интерфейса, /etc/sysconfig/network-scripts/ifcfg-eth0
, может выглядеть примерно следующим образом:
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.26.9
NETMASK=255.255.255.0
GATEWAY=192.168.26.254
Скрипт /etc/sysconfig/network-scripts/ifcfg-eth1
для интерфейса, подключенного к локальной сети, может выглядеть так:
DEVICE=eth1
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.11.12.9
NETMASK=255.255.255.0
В данном примере VIP на публичном интерфейсе будет 192.168.26.10, а VIP для NAT на интерфейсе локальной сети будет 10.11.12.10. Важным моментом является то, что реальные серверы отправляют пакеты на VIP NAT-интерфейса.
Важно
Настройки сетевых интерфейсов в примере приведены для реальных IP-адресов LVS-маршрутизатора, а
не для плавающих IP-адресов. Для настройки плавающих IP-адресов необходимо использовать
Piranha Configuration Tool, как это показано в
разделе 4.4, GLOBAL SETTINGS и в
4.6.1, Подраздел VIRTUAL SERVER.
После настройки сетевых интерфейсов основного узла LVS-маршрутизатора необходимо настроить сетевые интерфейсы резервного узла; при этом стоит обратить внимание на конфликты IP-адресов.
Важно
Необходимо удостовериться, что каждый сетевой интерфейс на резервном узле подключен к той же подсети, что и соответствующий интерфейс активного узла. Например, если на активном узле интерфейс eth0 подключен к публичной сети, то и на резервном узле тот же интерфейс должен быть подключен к публичной сети.
3.1.2. Маршрутизация на реальных серверах
При настройке сетевых интерфейсов на реальных серверах необходимо помнить о том, что в качестве шлюза нужно указывать плавающий IP LVS-маршрутизатора. В этом примере плавающий IP - 10.11.12.10.
Замечание
После старта сетевых интерфейсов на реальных серверах, те не смогут подключаться к ресурсам внешней сети. Это нормально.
Пример скрипта /etc/sysconfig/network-scripts/ifcfg-eth0
сетевого интерфейса реального сервера:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.11.12.1
NETMASK=255.255.255.0
GATEWAY=10.11.12.10
Внимание
Если у реального сервера имеется несколько интерфейсов и в скрипте для каждого интерфейса прописана строка GATEWAY=
, то маршрут по умолчанию будет сконфигурирован с использованием строки из скрипта первого интерфейса. Значит, если в сервере имеются настроенные интерфейсы eth0
и eth1
и для LVS используется eth1
, то реальный сервер не сможет корректно отвечать на запросы.
Лучшим решением будет отключение лишних сетевых интерфейсов установкой значения ONBOOT=no
в конфигурационных скриптах, расположенных в каталоге /etc/sysconfig/network-scripts/
или же корректно прописать адрес шлюза в конфигурационном файле сетевого интерфейса, стартующего первым.
3.1.3. Настройка NAT-маршрутизации на LVS-маршрутизаторах
В простой конфигурации LVS с использованием NAT, где каждый кластерный сервис использует только один порт, как, например, HTTP на 80 порту, администратуру нужно всего лишь включить packet forwarding на LVS-маршрутизаторах для маршрутизации пакетов между публичной сетью и реальными серверами. Подробнее о включении packet forwarding рассказывается в
разделе 2.5, Включение Packet Forwarding. Тем не менее, когда для работы кластерных сервисов необходим доступ к различным портам одного и того же реального сервера в течение одной пользовательской сессии, потребуется дополнительная настройка. Подробнее о создании мультипортовых сервисов с помощью меток сетевого экрана рассказывается в
разделе 3.4. Мультипортовые сервисы и LVS.
После завершения настройки необходимо запустить сервис
pulse
как это оприсывается в
разделе 4.8, Запуск LVS. После запуска
pulse
активный LVS-маршрутизатор начнет направлять поступающие запросы в пул реальных серверов.