智汇华云 | Openvswitch 防火墙是如何防止IP地址欺骗的

2019-08-29    来源:IT运维网

容器云强势上线!快速搭建集群,上万Linux镜像随意使用


随着信息技术的飞速发展,网络业务迅速兴起,然而由于网络自身固有的脆弱使网络安全存在很多潜在的威胁,其中之一就是IP地址欺骗。本期华云数据“智汇华云”专栏将为您奉上“Openvswitch 防火墙是如何防止IP地址欺骗的”。
IP 地址欺骗 (IP Spoofing):
正常情况下,二层数据帧的源IP 地址就是发出数据的机器的 IP 地址,对方计算机接收到以后,向该 IP 地址发出回复数据帧:


图一
 

(图一例子中,vm1 发往 vm2 的帧的 IP 地址就是 vm1 的地址,因此 vm2 能够通过  ARP 获取 vm1 的 MAC,并将回复将发回到vm1)

如果源计算机的数据帧的源 IP 地址不是它自己的IP地址而是一个不存在的地址或者另外一台机器的地址,目的计算机接受到数据帧后,它就会一直不停的发出 ARP 广播,最终也无法获取到MAC地址,或者发送返回帧到另一台的计算机。这就是所谓的(源) IP 地址欺骗。


图二

(图二例子中,vm1 将它发往 vm2 的数据帧的源IP设置为 vm3 的IP,导致 vm2 的回复发到了vm3)


如果大量的计算机使用另外一台计算机的 IP 作为源 IP 向很多的计算机发出 ping 命令,那么那一台计算机将会收到很多的 ping 回复。这将导致它的网络带宽被塞满而不能对外提供网络服务。

Openvswitch 防火墙是如何防止IP欺骗的呢?

Openvswitch 防火墙基本原理:
Ovs通过br-int桥上的流表规则控制连接在桥上的端口(ovs port)的进出方向的网络流量。


图三

(图三 tap口 及 patch-port 均为ovs port)


ovs流表规则:

每条流规则由一系列字段组成,分为基本字段、条件字段和动作字段三部分。

基本字段包括生效时间duration_sec、所属表项table_id、优先级priority、处理的数据包数n_packets,空闲超时时间idle_timeout等。

条件字段包括输入端口号in_port(ovs port)、源目的mac地址dl_src/dl_dst、源目的ip地址nw_src/nw_dst、数据包类型dl_type、网络层协议类型nw_proto等,可以为这些字段的任意组合。
动作字段包括正常转发normal、定向到某交换机端口output:port、丢弃drop、更改源目的mac地址mod_dl_src/mod_dl_dst等,一条流规则可有多个动作,动作执行按指定的先后顺序依次完成。
 
ovs防火墙具体规则流表如下:


图四
 

vm 出方向流量由tap口到达br-int网桥时,首先会经过table 0 表分流至table 3
table 0:



 

Vm tap 对应 ovs port 为port1,匹配in_port=1流表,跳转至table 71出方向基础规则表
table 3:



 

由table 71 规则表对转发IP报文做合法性校验,要求必须匹配条件为 in_port,  dl_src(源mac),nw_src(源IP)
table 71:



 

如无法匹配上述流表,则会命中默认丢包流表。
 
当使用ovs防火墙后, 再次发生图二例子时,vm1 将它发往 vm2 的数据帧的源IP设置为 vm3 的IP,当前数据包ip与mac 无法与vm1 tap port 71号表记录的真实ip mac匹配,将无法命中table 71号表,数据包被丢包,因为IP欺诈被ovs防火墙有效拦截。

标签: 防火墙 IP地址欺骗 

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:安芯网盾:以内存保护技术实现真正的主机安全

下一篇:隐私保护护航数字创新:华为分享隐私保护治理框架与实践经验