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

Как сервер может ответить другим IP (виртуальным IP) при использовании Keepalived?

Я изучаю Keepalived для обеспечения высокой доступности.

У меня есть несколько фундаментальных вопросов относительно поведения TCP / IP при наличии Keepalived.

С Keepalived клиенты могут получить доступ к серверам через свой виртуальный IP-адрес. Это достигается благодаря трансляции MAC. Но в конце концов хост-сервер получает пакеты с другим IP-адресом назначения, а не с собственным IP-адресом. Сначала я думал, что хост отклонит пакет с IP-адресом, отличным от его собственного, но это нормально.

Что меня озадачило, так это то, что хост-сервер тоже отвечает на запросы. с помощью виртуального IP-адреса, которого нет ни на одном из его интерфейсов.

Как стек TCP / IP может создать пакет с IP-адресом источника, отличным от его сетевого интерфейса? Действует ли keepalived на конструкции пакетов внутри стека TCP / IP? Я думал, Keepalived будет действовать только на уровне приложения.

Заранее благодарим за любые разъяснения.

Виртуальный ip присутствует на одном интерфейсе. Вы можете легко проверить это с помощью ip addr list eth0 команда. Один интерфейс может иметь несколько IP-адресов. Итак, на самом деле все IP-адреса являются "виртуальный", даже если у вас только один. И мы звоним"настоящий ip"первый дефолтный.