用策略路由构造隔离环境解决同网段通信

发布时间:2024年01月12日

引子

以前对一个主机内几张网卡上出现同网段地址挺不以为然,因为在默认状态下,Linux会出现路由的二义性,从而影响ping过程,虽然抓包上arp过程是对的,但就是在三层路由时出现了问题!

后来,经过交流,发现由于某些产品形态的限制,以及可能需要在已有网络环境上部署,不一定能够满足在一台主机上用不同网段进行隔离的简单部署模型要求,所以,一台主机不同网卡出现同网段的配置,几乎是不可避免的。

但如何解决呢?

同网段通信的网络隔离手段

以笔者现在掌握的知识,进行会汇总,可以有如下技术可以考虑:

种类粒度侵入性说明
命名空间不需要感知牛刀杀鸡命名空间可以隔离更多的资源,粒度比较大
VRF需要感知VRF虚拟路由功能,但不建议使用,对于同网段通信并不友好,即使是ping流程
IP rule不需要感知策略路由
iptables using set-mark不需要感知数据包过滤规则加策略路由

推荐使用策略路由

  • ip rule的策略路由
  • iptables using set-mark + ip rule usging fwmark

RAW socket with IP_HDRINCL 由于Linux OS平台限制,可能会绕过纯粹的ip rule策略路由设置

结合iptables set-mark功能修改数据包标记,并辅助策略路由处理,就可以将数据包隔离开

结束语

利用策略路由构造了一个隔离网络环境,而且对于主体程序是非侵入性的,对于复杂的同网段通信非常优必要 😃

文章来源:https://blog.csdn.net/jkler_doyourself/article/details/135560651
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。