zoukankan      html  css  js  c++  java
  • 自学网络 arp_ignore/arp_announce

    1)机器上有好几个IP地址,如何让网卡只接收自己IP地址的数据包;

     如何只接收自己网卡的数据包

    http://www.cnblogs.com/honpey/p/8447819.html

    相关的配置arp_filter和arp_ignore这两个参数是干嘛的?

    设置arp_ignore就好,这里控制的如果IP地址发给我网卡绑定的IP地址,那么我是否要回复对端发给自己的mac地址。但是如果对端的arp缓存中保存着我们的IP地址的话,那么这些数据包在短时间内还是会发给我的,这个时候我仍然可能收到数据包的,此时就需要rp_filter来帮忙的了,如果把rp_filter设置成1就可以对IP数据包进行检查了,会丢掉这样的数据包了,保证不收此类数据包。  

    此时涉及到一件事情,arp缓存的生存周期是啥?

    网络数据包如何过滤掉!如果收到的网络数据包的目的地址并不是接收网卡的数据包,如何过滤掉这样的数据包,如何过滤掉这样的数据包?

    arp_filter是干嘛的?

    rp_filter是在IP层面转不转发包,对源地址和端口号进行检查的,但是

    在IP层没有过滤机制去过滤掉不是从我本网卡上IP地址分配的数据包,这也是不合理的,这是因为比如一个服务器有两张网卡A和B,

    其中A的地址是192.168.0.110

    B的地址是10.111.112.3

    服务器一般是不会有这样的情况吧,两张网卡一般是公网的路由器,服务器一般就是一张网卡

    试着从协议层去理解一下把,arp是在一个局域网内找寻地址,那为啥不在我的入口的网卡上而是找我别的网卡呢?这在局域网上是很可疑的;但是这种情况倒是也存在;然后进入了网络层IP层之后,如果数据包的返回包不是按照原路返回的,这个是和组网相关的,如果数据包的返回包都出不了局域网,那么这就非常之可疑了,所以rp_filter就是在ip层的一个过滤了,这种是最可疑的数据包了;arp_filter又是干了啥事呢?

    https://www.cnblogs.com/lipengxiang2009/p/7446388.html

    然后就是arp_filter了

    https://www.cnblogs.com/lipengxiang2009/p/7451050.html

     这几篇帖子不错

     ========

    这篇文章把arp_ignore和arp_announce说得很清楚,以LVS为例,大家肯定能看明白,在这里我就啰嗦

    http://www.bubuko.com/infodetail-1946561.html

    A(client)192.168.0.111 边界路由器

    B(direct) eth0:192.168.0.110s到

    C(relServer) lo:1: 192.168.0.110 设置arp_ignore=1

    A发送arp请求192.168.0.110的地址,此时C是不会回应的,因为设置了arp_ignore=1,只有B回应,B 接收到数据包之后,根据负载均衡算法,不改源和目的ip地址,将目的mac地址转变成了C的mac地址,C收到了数据包之后就开始处理了,然后是返回数据包,问题就来了,然后请问边界路由器的地址,边界路由器收到了来自C的arp请求,会导致C将mac地址和ip地址重新映射,咋重新映射的呢?不对啊,在LVS模式下目的IP地址并不会是出口的IP地址,而是vip的地址呀!!这样客户端才不知道自己的ip地址是啥子嘛,否则如果被客户端知道了,那么发起洪泛攻击岂不是很容易咯!!!!所以这里一定要返回vip的,那么这样问题就来了呢,由于C和A做了arp的请求,此时A中的对于vip和mac地址的映射就变掉了,A上的对vip会被c1,c2,c3,c4不断地换来换去,也就是说B段没有流量了。。。。。director的作用没有了,怎么解决呢?

    1)解决方法1:只有自己主动请求的才会更新arp,别人问我的我不跟新

    2)解决方法2:发送端的mac还是使用dicrector的;

    现在有一个数据包要发送,源地址不确定【比如】,用哪个ip地址来发送arp的请求,【数据包中的源ip地址和接口的ip地址不一致时】用什么地址来发送arp请求?完美的解决方法,

    端口ip VS 数据包IP

    端口ip  VS 数据包iP

    端口ip VS 数据包IP

    做这个决定的是arp_anounce参数

    arp_anounce=0: 默认情况

    arp_anounce=1:使用该网口的ip地址

    arp_anounce=2

    但是LVS中有个一个DR模式:域的边界不是路由器而是一些交换机

    lvs-DR模式是和lvs-NAT模式对应的,nat也可以做转发嘛;

    DR模式就是更改MAC地址的方法,arp表什么时候更新呢?arp表什么时候更新呢?我发出请求的时候更新,比如谁有192.168.0.110的时候,192.168.0.110向我回复时更新,还有就是当别人向我请求的时候,我也可以更新啊,在树莓牌上试验下咯

    树莓派 --- 主机

    清空树莓派上的所有的arp的缓存:arp -d 192.168.0.110

    然后从主机ping树莓派的IP地址,发现树莓派上多了主机的IP地址的缓存。

    【这些好玩的linux用户态工具】

  • 相关阅读:
    Vue 基础篇一
    ES6常用语法
    Django的认证系统
    Django中的Form表单
    AJAX
    Django中的中间件
    Django ORM操作__聚合,分组查询
    Django ORM操作
    Luogu1382 楼房 (线段树 扫描线)
    Luogu2251 质量检测 (ST表)
  • 原文地址:https://www.cnblogs.com/honpey/p/9058512.html
Copyright © 2011-2022 走看看