如何在 Ubuntu 上搭建网桥

系统 Linux 系统运维
网桥的作用是通过物理接口连接内部和外部网络。对于虚拟端口或者 LXC/KVM/Xen/容器来说,这非常有用。网桥虚拟端口看起来是网络上的一个常规设备。在这个教程中,我将会介绍如何在 Ubuntu 服务器上通过 bridge-utils (brctl) 命令行来配置 Linux 网桥。

[[169093]]

作为一个 Ubuntu 16.04 LTS 的初学者。如何在 Ubuntu 14.04 和 16.04 的主机上搭建网桥呢?

顾名思义,网桥的作用是通过物理接口连接内部和外部网络。对于虚拟端口或者 LXC/KVM/Xen/容器来说,这非常有用。网桥虚拟端口看起来是网络上的一个常规设备。在这个教程中,我将会介绍如何在 Ubuntu 服务器上通过 bridge-utils (brctl) 命令行来配置 Linux 网桥。

网桥化的网络示例

 

图 01: Kvm/Xen/LXC 容器网桥示例 (br0)

 图 01: Kvm/Xen/LXC 容器网桥示例 (br0)

在这个例子中,eth0 和 eth1 是物理网络接口。eth0 连接着局域网,eth1 连接着上游路由器和互联网。

安装 bridge-utils

使用 apt-get 命令 安装 bridge-utils:

 

  1. $ sudo apt-get install bridge-utils 

或者

 

  1. $ sudo apt install bridge-utils 

样例输出:

 图 02: Ubuntu 安装 bridge-utils 包

在 Ubuntu 服务器上创建网桥

使用你熟悉的文本编辑器修改 /etc/network/interfaces ,例如 vi 或者 nano :

 

  1. $ sudo cp /etc/network/interfaces /etc/network/interfaces.bakup-1-july-2016 
  2. $ sudo vi /etc/network/interfaces 

接下来设置 eth1 并且将它映射到 br1 ,输入如下(删除或者注释所有 eth1 相关配置):

 

  1. ### br1 使用静态公网 IP 地址,并以 ISP 的路由器作为网关 
  2. auto br1 
  3. iface br1 inet static 
  4. address 208.43.222.51 
  5. network 255.255.255.248 
  6. netmask 255.255.255.0 
  7. broadcast 208.43.222.55 
  8. gateway 208.43.222.49 
  9. bridge_ports eth1 
  10. bridge_stp off 
  11. bridge_fd 0 
  12. bridge_maxwait 0 

接下来设置 eth0 并将它映射到 br0,输入如下(删除或者注释所有 eth0 相关配置):

 

  1. auto br0 
  2. iface br0 inet static 
  3.         address 10.18.44.26 
  4.         netmask 255.255.255.192 
  5.         broadcast 10.18.44.63 
  6.         dns-nameservers 10.0.80.11 10.0.80.12 
  7.         # set static route for LAN 
  8.         post-up route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.18.44.1 
  9.         post-up route add -net 161.26.0.0 netmask 255.255.0.0 gw 10.18.44.1 
  10.         bridge_ports eth0 
  11.         bridge_stp off 
  12.         bridge_fd 0 
  13.         bridge_maxwait 0 

关于 br0 和 DHCP 的一点说明

如果使用 DHCP ,配置选项是这样的:

 

  1. auto br0 
  2. iface br0 inet dhcp 
  3.         bridge_ports eth0 
  4.         bridge_stp off 
  5.         bridge_fd 0 
  6.         bridge_maxwait 0 

保存并且关闭文件。

重启服务器或者网络服务

你需要重启服务器或者输入下列命令来重启网络服务(在 SSH 登录的会话中这可能不管用):

 

  1. $ sudo systemctl restart networking 

如果你证使用 Ubuntu 14.04 LTS 或者更老的没有 systemd 的系统,输入:

 

  1. $ sudo /etc/init.d/restart networking 

验证网络配置成功

使用 ping/ip 命令来验证 LAN 和 WAN 网络接口运行正常:

 

  1. ### 查看 br0 和 br1 
  2. ip a show 
  3. ### 查看路由信息 
  4. ip r 
  5. ### ping 外部站点 
  6. ping -c 2 cyberciti.biz 
  7. ### ping 局域网服务器 
  8. ping -c 2 10.0.80.12 

样例输出:

 

图 03: 验证网桥的以太网连接

 图 03: 验证网桥的以太网连接

现在,你就可以配置 br0 和 br1 来让 XEN/KVM/LXC 容器访问因特网或者私有局域网了。再也没有必要去设置特定路由或者 iptables 的 SNAT 规则了。

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2014-04-15 15:14:49

UbuntuGhost博客平台

2018-03-29 15:21:03

LinuxDebian网桥

2019-08-02 15:30:42

UbuntuMongoDB命令

2019-08-30 11:20:28

UbuntuVirtualBoxLinux

2018-10-15 15:23:50

UbuntupipPython

2024-01-04 11:50:00

UbuntuDocker

2023-08-08 12:38:52

2015-10-16 10:07:22

Justniffer安装Ubuntu

2014-06-30 09:27:17

UbuntuTomcat集群

2013-07-25 10:00:30

UbuntuVirtualBox

2017-03-29 16:18:11

LinuxUbuntuRedmine

2019-08-13 16:10:38

UbuntuLinux时间同步

2021-09-11 15:41:55

UbuntuDropbox云服务

2021-07-12 14:47:16

UbuntuZlib代码

2015-08-04 14:04:28

UbuntuPDF文件

2019-10-21 13:28:38

UbuntuPostgreSQL命令

2016-11-03 20:06:53

UbuntuGrafanaDocker

2017-08-02 15:15:55

UbuntuNoSQLOrientDB

2018-05-25 11:55:41

2018-09-30 10:35:29

UbuntuCinnamon桌面环境
点赞
收藏

51CTO技术栈公众号