如何在 Ubuntu 上搭建网桥

简介:

顾名思义,网桥的作用是通过物理接口连接内部和外部网络。对于虚拟端口或者 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 包

图 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 规则了。

原文发布时间为:2016-07-22

本文来自云栖社区合作伙伴“Linux中国”

相关文章
|
存储 Ubuntu
Ubuntu用Apache2快速搭建一个HTTP文件服务器
Ubuntu用Apache2快速搭建一个HTTP文件服务器
417 0
|
Ubuntu 安全
Ubuntu 20.04 搭建NFS文件系统
Ubuntu 20.04 搭建NFS文件系统
233 0
|
Ubuntu Java 应用服务中间件
自己买的服务器Ubuntu上搭建tomcat详细步骤
一、选购服务器 1.这一步就不说了,主要是以下步骤; 2.登录服务器 我选用的登陆方式为FinalShell,你也可以用MobaXterm;
234 0
自己买的服务器Ubuntu上搭建tomcat详细步骤
|
编解码 Kubernetes Ubuntu
VirtualBox 仅主机网络配置,搭建Ubuntu系统
需要系统同时支持 x86_64 和 arm64。我们选择 Ubuntu 22.04 Jammy Jellyfish 桌面版(https://ubuntu.com/download/desktop),非常适合运行 Kubernetes,方便调试和测试。
359 0
VirtualBox 仅主机网络配置,搭建Ubuntu系统
|
负载均衡 NoSQL 算法
Ubuntu搭建Redis集群
Ubuntu搭建Redis集群
318 0
Ubuntu搭建Redis集群
|
存储 Ubuntu Linux
基于Ubuntu搭建个人网盘-8
基于Ubuntu搭建个人网盘-8
405 0
基于Ubuntu搭建个人网盘-8
|
Ubuntu Apache 数据库
基于Ubuntu搭建个人网盘-7
基于Ubuntu搭建个人网盘-7
157 0
基于Ubuntu搭建个人网盘-7
|
Ubuntu 关系型数据库 MySQL
基于Ubuntu搭建个人网盘-6
基于Ubuntu搭建个人网盘-6
151 0
基于Ubuntu搭建个人网盘-6
|
Ubuntu 关系型数据库 MySQL
基于Ubuntu搭建个人网盘-5
基于Ubuntu搭建个人网盘-5
410 0
基于Ubuntu搭建个人网盘-5
|
存储 Ubuntu 关系型数据库
基于Ubuntu搭建个人网盘-4
基于Ubuntu搭建个人网盘-4
130 0
基于Ubuntu搭建个人网盘-4