网络并发知识第三天DR模型实现理论
在DR模型中,我们需要确保真实服务器中的VIP实现内部可见,外部不可见的效果。
基于这个目的,来看看怎么实现。
我们要从arp协议入手,通过改变arp的行为来完成隐瞒内部VIP的效果。
linux暴露的内核参数以文件的形式表现,通过修改文件的参数,来完成修改内核参数。
假设一机器有网卡1和网卡2。
针对arp的两个参数
arp_ignore,用来控制当外界来访问时,是否给予响应的行为。
0:(默认)只要本地有配置,就给予响应。当外界通过网卡1,询问是否有网卡2的踪迹时候,给予相应
1:只有访问自身ip的时候,才给予对应mac的响应。
arp_announce:用来控制arp广播行为
0:(默认) 宣告在任意网络接口(网卡1,网卡2,lo)上的任何本地地址
1:只把对应网卡的所有ip地址进行公布
2:一个网卡可能有多个ip,只向ip对应段的网络地址段进行通告。
但即使是限制了arp的探测和广播行为,VIP的网卡如果还是可以被外界直连的话,也没啥意义。
那可不可以把VIP所在网卡不让外界连接的到呢?
此时需要看一下我们的网卡:
观察lo接口,它是本地环绕接口,属于内核虚拟出来的网卡。内核知道有,外界不知道。
网络接口有子接口的概念,因此如果我们在这个本地虚拟网卡中,放一个子接口,也就是我的VIP,是不是就可以对外隐藏,对内可见了呢?