ipvsadm
ipvsadm 是用来管理 LVS 集群配置的,运行在用户态空间,而 LVS 是运行在内核态的。ipvsadm 通过调用 libipvs
库,以 raw socket
或 netlink
的通信方式向 LVS 下发配置信息的,功能与 keepalived 对 LVS 的配置管理功能是完全一样的。ipvsadm 之与 LVS 的关系,就像 iptables 之与 netfilter 的关系。
static int route_add_lcore(struct in_addr* dest,uint8_t netmask, uint32_t flag, struct in_addr* gw, struct netif_port *port, struct in_addr* src, unsigned long mtu,short metric) { if((flag & RTF_LOCALIN) || (flag & RTF_KNI)) return route_local_add(dest, netmask, flag, gw, port, src, mtu, metric); if((flag & RTF_FORWARD) || (flag & RTF_DEFAULT)) return route_net_add(dest, netmask, flag, gw, port, src, mtu, metric); return EDPVS_INVAL; }