linux 多块网卡 bridge,理解linux虚拟网络设备bridge
原标题:理解linux虚拟网络设备bridge
上一节我们介绍了Linux veth设备,了解了如何把多个独立网络命名空间(下面开始简称NS)与主机互通,并且多个NS间也能相互通信,在这一节我们将介绍另一种方式,用linux bridge。
linux bridge
Linux bridge即linux虚拟网桥,工作方式类似于物理的网络交换机,工作在二层时,能够转发以太网报文,能够学习MAC地址与端口的映射关系,下面通过一些示例来了解一下。
我们将通过linux bridge连接两个NS,通过下面的命令可以创建一个linux bridge并启动:
接下来我们创建两个新的NS和两对linux veth网卡:
接下来就是把主机这边的两个端都插到bridge上:
就这样两个NS就可以相互PING通了,因为是相同网段,所以暂不需要默认网关,又因为linux bridge会广播ARP请求,NS1的协议栈能通过ARP广播拿到NS2中网卡的MAC地址。
但是此时在主机上ping两个ns反而是ping不通的,因为主机不知道怎么去192.168.10.0/24网段,所以先给主机加条路由:
注意主机的这条路由针对的是整个网段192.168.10.0/24,就是说后面如果继续加新的NS,只要IP还在这个段内,就不用再增加主机路由了。
来看一下现状:
主机加了路由后,从主机ping ns1还是不行,应该是ns1缺默认网关,所以不知道怎么回这个包,看一下当前NS1中的路由信息:
这条路由是我们在给veth0设置ip的时候由系统自动生成的。
我们给ns1和ns2都加个默认路由,然后打开br0的arp代答:
这时候应该就ping得通了。
为什么给ns1和ns2设置的默认网关是169.2.2.2?这个在上一章有解释过了,想了解的话请看回上一章的内容
区别
到目前为止我们介绍了两种在同个主机连接多个ns的方法,现在来介绍一下两种方法异同点:如果只是用veth连接,就是单纯地把主机当成路由器,两个ns之间的通信数据包都是要走主机协议栈的三层转发流程的,如图1所示:
(图1)
而用bridge的方式,则在二层直接把数据包就从ns1转到了ns2,没有再走主机协议栈的三层,如图2所示:
(图2)
这个我们可以用如下方式求证,用bridge的情况下,关掉主机的路由转发功能:
然后你会发现ns1中ping ns2其实还是可以ping通的。
那这样一来,主机的防火墙策略岂不是没用了?k8s的网络策略就是在主机的iptables规则中来控制的,为了让这个规则生效,还是有办法的,可以让经过linux bridge的数据包也过一遍iptabls规则:
开启了这个参数,数据包还是没有经过主机的协议栈的三层处理,只是linux bridge的__br_forward方法中显式地调用了NF_HOOK(NFPROTO_BRIDGE, NF_BR_FORWARD,net, NULL, skb, indev, skb->dev,br_forward_finish)代码在:/net/bridge/br_forward.c
这时候在主机的iptables防火墙里增加一个过滤规则,把数据包全拦截掉:
然后ns1就ping不通ns2了。
总结
前面介绍的linux veth和linux bridge主要是用于完成同主机容器的相互通信,下一章我们来介绍一下如何配置跨主机的容器通信。
linux bridge 不能跨网络命名空间,所以不要尝试把br0转到ns1中,下面的命令会报错ip link set br0 netns ns1RTNETLINK answers: Invalid argument凡是netns-local为on的设备都不能跨网络命名空间,像loopback/vxlan/bridge,用下面的命名可以查看eth0的netns-local的值ethtool -k eth0|grep netns-local
更多信息欢迎关注滴普科技官网 http://datasink-sensors.deepexi.top/t/ua
end
责任编辑:
linux 多块网卡 bridge,理解linux虚拟网络设备bridge相关推荐
- 理解linux虚拟网络设备bridge
上一节我们介绍了Linux veth设备,知道了如何把多个彼此隔离的网络命名空间(下面开始简称NS)与主机通过VETH连接起来,并且多个NS间也能相互通信,在这一节我们将介绍另一种方式,用linux ...
- Linux - 虚拟网络设备 - bridge,veth,namespace
引用 轻松理解 Docker 网络虚拟化基础之网络 namespace! 轻松理解 Docker 网络虚拟化基础之 veth 设备! 深入理解 Linux 上软件实现的"交换机" ...
- linux两块网卡不通,由安装两块网卡的linux系统中引起网络不通想到的
由安装两块网卡的linux系统中引起网络不通想到的 由安装两块网卡的linux系统中引起网络不通想到的 一天,小王突然急匆匆的来找我,他说:"我在机子上刚装的redhat怎么老也ping不通 ...
- linux单块网卡绑定多个ip及网卡聚合绑定多个ip方法
单块网卡绑定多个ip,网上介绍的太多了.方法如下 1.复制虚拟网卡配置文件 cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/n ...
- linux查看双网卡绑定模式,Linux中双网卡绑定实现的各种模式
一.Linux中双网卡绑定实现的原理 Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡;linux设置bond网卡绑定---有些用. Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡, ...
- linux启动某个网卡命令行,linux下启动和关闭网卡命令及DHCP上网
ifup.ifdown:如果在 /etc/sysconfig/network-scripts里面的ifcfg-ethx等文件存在的话,就可以通过ifdown或ifup来实现网卡的开和关,例如:ifup ...
- Linux/Centos7系统管理之深入理解Linux文件系统与日志分析
前言:inode(文件节点)与block(数据块)硬链接与软连接恢复误删除的文件 (即rm-rf 的操作,可以先进行备份的操作,然后可以进行恢复ext4和xfs文件系统皆可)日志文件的分类用户日志与程 ...
- linux文件i节点,深入理解linux中i节点(inode)
对于Unix系列的操作系统,大多都有v节点.但是对于linux来说,只有通用的i节点,却没有v节点. 下面来探讨一下,linux下的i节点. linux中,文件查找不是通过文件名称来查找的.实际上是通 ...
- Linux设置一个网卡IP地址,linux下一块网卡设置多个ip地址(示例代码)
无论是在实际的生产坏境中,还是平时的练习中, 一个网卡设置多个ip地址是非常常见的,也是非常有用的. 我们以centos6.8系统为列, 在一块网卡上设置多个ip地址. 1>. 给一块网卡设置多 ...
- 云计算底层技术-虚拟网络设备(Bridge,VLAN)
openstack底层技术-各种虚拟网络设备一(Bridge,VLAN) openstack底层技术-各种虚拟网络设备二(tun/tap,veth) Linux Bridge Bridge与netf ...
最新文章
- 计算机二级公共基础知识2017,2017年计算机二级公共基础知识基础试题
- 网络推广——网络推广专员从多角度分析网站关键词排名受影响因素
- LeetCode Insert Delete GetRandom O(1)
- 读了几篇boosting文献的收获
- 大数据 清华 覃征_2021年清华(清华大学)大数据工程考研难度解析、考研经验分享...
- 微信公众平台开发——问题篇
- MySQL_DBA整理
- HTTP服务器项目详解
- 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_05-vuejs研究-vuejs基础-v-text指令...
- 苹果电脑win10蓝牙音响卡顿_Macbook Pro 2017安装win10以后蓝牙鼠标卡顿
- C++ 自定义String类
- 背包客旅行札记-html
- TortoiseSVN安装使用教程(超详细)
- 高项 案例分析重点知识 进度成本质量
- 手机数据线种类有哪些
- Codeforces Round #829E 1753E. N Machines
- 原腾讯QQ空间负责人,T13专家,黄希彤被爆近期被裁员,裁员原因令人唏嘘。。...
- 关于SQL 与 NoSQL的区别
- ipad部分截屏方法
- 共享的快捷方式会经常突然不见_突然爆红的共享自习室,会是一个新风口吗?...