Skip to content Skip to main navigation Skip to footer

Ubuntu 16.04 系统下网桥(br0,br1)配置教程

本文将会讲述如何在Ubuntu 16.04 LTS 系统下基于现有的以太网接口配置Linux网桥. 当我们在创建虚拟化环境(比如说LXC,KVM,Xen等)的时候,都需要配置网桥,让宿主机里的虚拟机通过配好的网桥接口和外部通信。

1# 安装bridge-utils

执行下面的apt-get 命令:

$ sudo apt-get install bridge-utils

命令输出如下:

正在读取软件包列表... 完成
 正在分析软件包的依赖关系树
 正在读取状态信息... 完成
 下列软件包是自动安装的并且现在不需要了:
 gyp javascript-common libjs-inherits libjs-jquery libjs-node-uuid libjs-underscore libnvpair1linux libssl-dev libssl-doc libuutil1linux libuv1-dev
 libzfs2linux libzpool2linux python-pkg-resources zfs-doc zlib1g-dev
 使用'apt autoremove'来卸载它(它们)。
 下列【新】软件包将被安装:
 bridge-utils
 升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 5 个软件包未被升级。
 需要下载 28.6 kB 的归档。
 解压缩后会消耗 102 kB 的额外空间。
 获取:1 http://archive.ubuntu.com/ubuntu xenial/main amd64 bridge-utils amd64 1.5-9ubuntu1 [28.6 kB]
 已下载 28.6 kB,耗时 0秒 (39.9 kB/s)
 正在选中未选择的软件包 bridge-utils。
 (正在读取数据库 ... 系统当前共安装有 67725 个文件和目录。)
 正准备解包 .../bridge-utils_1.5-9ubuntu1_amd64.deb  ...
 正在解包 bridge-utils (1.5-9ubuntu1) ...
 正在处理用于 man-db (2.7.5-1) 的触发器 ...
 正在设置 bridge-utils (1.5-9ubuntu1) ...

2# 编辑网络配置文件增加网桥接口

首先有备份现有的网络接口配置文件/etc/network/interface, 执行命令:

$ cp /etc/network/interface /etc/network/interface.bak

编辑/etc/network/interface文件

Vi /etc/network/interface

删除或注释掉跟eth0 相关的行,参照下面的配置:

auto br0
 iface br0 inet static
 address 192.168.1.58
 network 255.255.255.248
 netmask 255.255.255.0
 gateway 192.168.1.1
 bridge_ports eth0
 bridge_stp off
 bridge_fd 0
 bridge_maxwait 0

保存退出。
如果是通过DHCP获取ip地址,则可以参照下面的配置:

auto br0
 iface br0 inet dhcp
 bridge_ports eth0
 bridge_stp off
 bridge_fd 0
 bridge_maxwait 0

3# 重启网络服务

执行下面命令:

$ sudo /etc/init.d/network restart

$ sudo  systemctl restart network

如果需要临时创建网桥也可以使用brctl 命令,通过该命令创建的网桥,会在系统重启后消失。
查看brctl命令的选项:

$ brctl
root@ubuntutest:~# brctl
 Usage: brctl [commands]
 commands:
 addbr           <bridge>                add bridge
 delbr           <bridge>                delete bridge
 addif           <bridge> <device>       add interface to bridge
 delif           <bridge> <device>       delete interface from bridge
 hairpin         <bridge> <port> {on|off}        turn hairpin on/off
 setageing       <bridge> <time>         set ageing time
 setbridgeprio   <bridge> <prio>         set bridge priority
 setfd           <bridge> <time>         set bridge forward delay
 sethello        <bridge> <time>         set hello time
 setmaxage       <bridge> <time>         set max message age
 setpathcost     <bridge> <port> <cost>  set path cost
 setportprio     <bridge> <port> <prio>  set port priority
 show            [ <bridge> ]            show a list of bridges
 showmacs        <bridge>                show a list of mac addrs
 showstp         <bridge>                show bridge stp info
 stp             <bridge> {on|off}       turn stp on/off

查看网桥状态

$ sudo brctl show

更多阅读:
1. Ubuntu 16.4 系统基于bond(bond0)接口的网桥(br0)配置教程
搞定!