我一直在研究Keepalived的高可用性的目的。
当Keepalived到位时,我有一些关于TCP / IP行为的基本问题。
通过Keepalived,客户端可以通过虚拟IP地址访问服务器。 这是由于MAC翻译实现的。 但在一天结束的时候,主机服务器会收到不同目标IP的软件包,而不是自己的IP。 起初我以为一个主机会拒绝一个与自己的IP不同的包,但是那没问题。
让我困惑的是,主机服务器也通过使用虚拟IP地址来响应请求,而虚拟IP地址并没有出现在它的任何接口上 。
TCP / IP协议栈如何从networking接口构造一个具有不同源IP的包? 对TCP / IP协议栈中的包结构执行keepalived操作吗? 我虽然Keepalived只会在应用层。
预先感谢您的澄清。
虚拟IP存在于一个接口上。 您可以使用ip addr list eth0命令轻松检查它。 一个接口可以有多个IP地址。 所以,实际上所有的IP地址都是“ 虚拟的 ”,即使你只有一个。 我们称之为“ 真正的IP ”第一个默认的。