自学网络
Posted honpey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自学网络相关的知识,希望对你有一定的参考价值。
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用户态工具】
以上是关于自学网络的主要内容,如果未能解决你的问题,请参考以下文章
Kubernetes网络自学系列 | 终于等到你:Kubernetes网络
Kubernetes网络自学系列 | 前方高能:Kubernetes网络故障定位指南
Kubernetes网络自学系列 | Linux隧道网络的代表:VXLAN