Я изучаю 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"первый дефолтный.