linux网桥的简单理解和配置

Linux网桥是linux虚拟网络设备之一。网上很多分析linux网桥的文章,例如代码层面的分析。这里不牵扯复杂的分析和配置,主要是面向虚拟机链接一个用途,小白我的备忘。

1.Linux的网桥是什么

最初的网桥就是一个两口的交换机,经过网桥的数据包会原封不动的转发。与hub不同的是网桥会检查mac地址,不在当前端口的mac地址就过滤掉了。而hub是工作在物理层的设备,一个口收到的信号原封不动的发送到所有的接口。早期的交换机,可以看成是很多网桥的集成。简单来说,桥接就是把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。

现在的Linux 网桥可以看做是(三层的)虚拟交换机,功能和物理交换机一样,最常用的功能是链接虚拟机和容器--为虚拟机和容器提供一个虚拟交换机。

创建一个bridge后(br0),可以把其他的网络设备(比如eth0)attach到br0上,eth0称作br0的从设备。需要注意的是,eth0 attach到br0上,不是对应的将eth0插接到“交换机”br0上,而是eth0编程了br0的一个端口(网线插口)。那什么什么时候才是插入网线呢?

通常的网桥是二层设备,不需要有IP地址。但是linux网桥是虚拟网络设备,是有ip和mac的(br设备的MAC地址是它所有从设备中最小的MAC地址)。从设备(eth0)被attach到br上之后,它的IP及MAC都不再可用了(退化为一个端口了)且它们被设置为接收任何包(工作在链路层,且是混杂模式,不需要ip),最终由bridge设备来决定数据包的去向:接收到本机、转发、丢弃。

2.生成树

一般在讲解交换机的文章里都会提到生成树协议。网桥“类似”交换机,也会有这个问题。简单来说,在复杂且有冗余的网络配置中,可能会形成网络风暴。生成树协议就是为了避免这个问题。简单的网桥或者交换机应用(例如只有一个交换机)没这个问题,但是启用生成树也没什么不好。

关于生成树的具体内容见:https://www.cnblogs.com/morphling/p/3458546.html

3.主要作用:连接虚拟机

目前,虚拟网桥最主要的作用是为虚拟机提供一种网络链接的方式。

如图所示,是最常用的链接方式。主机上创建tap设备(理解为虚拟网卡),bridge1设备attach eth0和tap0、tap1,此时bridge1可以视作交换机,eth0\tap0\tap1都是这个交换机的网口。虚拟机通过tap网口链接,虚拟机和主机、外部局域网主机是同一个局域网内的机器,可以设置成同一个网段的IP。

这里比较别扭的就是主机的eth0,退化成网口,bridge1接替它成为主机的上网设备。

linux的网桥实际上是个新设备,和网桥、交换机、三层交换机都是有所不同的。

4.配置

配置网桥可用工具挺多的,可以看后面的引用文章。命令工具个人建议iproute2。命令配置的重启后就不起作用了。要保存修改,需要修改配置文件,最好是使用netplan。

先安装bridge-utils,bridge-utils也是iproute2的一部分

apt-get install bridge-utils

以下操作都需要管理权限。

Create a new bridge and change its state to up:

# ip link add name br1 type bridge

# ip link set br1 up

brctl show命令查看当前桥设备的状态

To add an interface (e.g. eth0) into the bridge, its state must be up:

# ip link set eth0 up

Adding the interface into the bridge is done by setting its master to br1:

# ip link set eth0 master br1

这个时候就不能上网了。

To show the existing bridges and associated interfaces, use the bridge utility (also part of iproute2). See bridge(8) for details.

通过bridge link命令可以看到br0上连接了哪些设备

# bridge link

如果查看br1的mac,会发现就是eth0的mac。

然后给网桥设置ip:

# ip addr add dev br1 192.168.31.66/24

设置ip可以ping网关了,但是不能ping 8.8.8.8这样的公网ip。

# route -n  或者 ip route show 都会发现这个网桥的网关没设置。

添加一条默认路由:

#route add default gw 192.168.31.1 dev br1

注意 dev 参数是必须设置的。强制路由关联到指定的设备接口,否则的话内核会其自身的相应规则决定选用那个设备接口。

(linux 路由等参考:

https://ivanzz1001.github.io/records/post/linuxops/2018/11/14/linux-route)

(route是老旧的net-tools的命令,iproute2的路由操作是ip route系列,这里还是用用的route)

也可以让网桥自己获得ip

dhclient br1    #将br0的网络配置好

This is how to remove an interface from a bridge:

# ip link set eth0 nomaster

The interface will still be up, so you may also want to bring it down:

# ip link set eth0 down

To delete a bridge issue the following command:

# ip link delete br1 type bridge

This will automatically remove all interfaces from the bridge. The slave interfaces will still be up, though, so you may also want to bring them down after.

参考

https://segmentfault.com/a/1190000009491002

https://blog.csdn.net/CloudXli/article/details/78877253

https://www.cnblogs.com/clpszpp/p/linux_bridge.html

https://www.cnblogs.com/morphling/p/3458546.html

https://www.tecmint.com/create-network-bridge-in-ubuntu/

https://www.ubuntupit.com/how-to-configure-and-use-network-bridge-in-ubuntu-linux/

https://blog.51cto.com/13465487/2374960

https://wiki.archlinux.org/index.php/Network_bridge

linux网桥的简单理解和配置相关推荐

  1. Linux网桥简介、入门与配置

    本文目录 1.通常的局域网络结构 2.Linux网桥的功能 3.在ubuntu下如何使用netplan配置一个网桥 4.最后构建出如下网络: 5.Linux网桥的作用 开始之前先得介绍一下什么是网桥, ...

  2. linux对文件的描述,对Linux文件系统的简单理解

    姓名:邝念君 学号:14020150024 [嵌牛导读]:EXT3,EXT4,BTRFS和XFS是现在最常见的四个Linux文件系统.为了便于理解,本文以相对简单的EXT2为切入点,介绍其原理.便不难 ...

  3. java三个环境变量_java基础(一):我对java的三个环境变量的简单理解和配置

    首先说说java的三个环境变量:java_home,classpath,path java_home:jdk的安装路径[你一层一层点开安装路径,直到当前目录有一个bin目录,然后在地址栏里面右键单击复 ...

  4. linux 路由表解析,简单理解Linux路由表

    很多网络问题都跟路由有关,那么首先必须学会看懂路由表,本文将讲述如何读懂路由及如何决策. 在命令行下输入route -n 或 netstat -rn,就可以打印本机的路由表,我的如下: Destina ...

  5. linux网桥简单理解和持久化配置

    文章目录 前言 一.Linux 网桥是什么? 二.网桥主要作用 三.网桥配置命令及安装(CentOS系统) 1 网桥配置命令 2.持久化网桥配置 前言 linux bridge是网络虚拟化中非常重要的 ...

  6. Linux 网桥配置br-lan、eth0、eth1、ra0、rai0

    Linux网关模式下将有线LAN和无线LAN共享网段实现局域网内互联: 思路其实很简单:就是将虚拟出一个bridge口,将对应的有线LAN和无线LAN都绑定在这个虚拟bridge口上,并给这个brid ...

  7. linux 网桥br0配置

    网桥 桥接:把一台机器上的若干个网络接口"连接"起来.其结果是,其中一个网 口收到的报文会被复制给其他网口并发送出去.以使得网口之间的报文能够互 相转发.网桥就是这样一个设备,它有 ...

  8. linux 网桥迁移命令,Linux 网桥配置命令: brctl

    Linux网关模式下将有线LAN和无线LAN共享网段实现局域网内互联: brctl addbr bridge brctl addif bridge eth0 brctl addif bridge at ...

  9. linux 虚拟机大量udp请求失败_理解 Linux 网络栈:Linux 网络协议栈简单总结分析...

    1. Linux 网络路径 1.1 发送端 1.1.1 应用层 (1) Socket 应用层的各种网络应用程序基本上都是通过 Linux Socket 编程接口来和内核空间的网络协议栈通信的.Linu ...

最新文章

  1. 全面认识一下.NET 4.0的缓存功能
  2. Centos6/7下静默安装oracle10g
  3. 论文返修与校对的经验教训
  4. python opencv调节图片亮度与对比度
  5. 关于ACCESS的事务与存储过程的调用
  6. 【Codeforces Round #507 (Div. 2, based on Olympiad of Metropolises) A】Palindrome Dance
  7. 语音识别2:CTC对齐的算法
  8. Bash 中的特殊字符大全
  9. spring mvc学习(16)Could not publish server configuration for Tomcat v8.0 Server at localhost.
  10. java参数后面跟三个点是什么意思
  11. PowerShell正则替换+批量修改文件名
  12. JS基础--Date.parse(),Date.UTC()和Date.now()
  13. MySQL 6.子查询
  14. html php插入百度地图定位
  15. html设置桌面背景win7,win7系统设置默认桌面背景的还原方案
  16. 前端面试官经验总结 | 前端面试小技巧
  17. Office word中去掉首页的页眉
  18. 用Java创建一副扑克牌
  19. 双活数据中心存储问题梳理
  20. java 圆角窗口_JAVA实现圆角窗体 .

热门文章

  1. 手机端,h5,获取位置,经度纬度
  2. abacus 基本操作
  3. 工作两周年记------今晚和三个兄弟一起痛快地喝了一次, 在《祝你一路顺风》的旋律中!
  4. 一顿饭的时间,教你怎样快速使用 动态代理ip 做一个获取Steam 热销商品 的方法
  5. 独热码状态机、SR锁存器延迟模型、移位除法器模型
  6. Harvard Dataverse 数据批量下载
  7. 关于《数据仓库知识体系》的超全指南(建议收藏)
  8. 部署Kubernetes kube-apiserver启动失败
  9. PAT 1080. Graduate Admission (30) 模拟高考志愿录取规则
  10. IBM MessageBroker笔记系列(一)