Blog25@linux 网络桥接

来源:互联网 发布:电信宽带刷新端口 编辑:程序博客网 时间:2024/06/10 00:53

网络桥接


一、网桥的基本知识

网桥是一种工作在链路层的中继。可以对数据进行转发,跟路由器的功能相差无几,都是进行数据包的转发,只不过路由器工作在网络层罢了。网桥可以把两个LAN连接起来,根据MAC地址转发数据。在网桥上每个以太网连接可以对应一个物理接口,这些以太网接口组成一个大的逻辑接口。可以这样认为,网桥就是将几个LAN整合到一起的一种方法。可以用brctl命令来管理网桥。


1、概念:linux网桥是一种以同种协议连接两个局域网的产品。可以把它看成是一个决定发送的包是到自己的局域网还是到另一个局域网的设备。linux网桥检查局域网上所有的包,在同一个局域网中传送它,如果不是同一个网中的,就将它发到别的网上。

2、原理:网桥工作在数据链路层,将两个LAN连起来,根据MAC地址来转发帧,可以看作一个“低层的路由器”(路由器工作在网络层,根据网络地址如IP地址进行转发)。 远程网桥通过一个通常较慢的链路(如电话线)连接两个远程LAN,对本地网桥而言,性能比较重要,而对远程网桥而言,在长距离上可正常运行是更重要的。

3、功能:网桥的功能在延长网络跨度上类似于中继器,然而它能提供智能化连接服务, 即根据帧的终点地址处于哪一网段来进行转发和滤除。网桥对站点所处网段的了 解是靠“自学习”实现的。而且网桥在一定程度上有增大网络带宽的作用。

4、工作流程:

(1) 检查收到的信号,解释0和1的含义,并找出帧中的目的MAC地址。

(2) 如果具有该目的的MAC地址的帧能够通过网桥上不同的接口到达目的地(不是帧到达网桥的那个接口),则通过重新生成信号来传输这帧。(这个过程叫做转发。)

(3)如果该帧到达的接口就是目的地址可达到的端口,则丢弃该帧。(这个过程叫做过滤。)                                  


二、网桥的配置

在linux系统中,网桥主要是用来完成主机与虚拟机之间的互相访问以及网络传输,若没有网桥,则真机无法访问虚拟机


由此可以看出,虽然真机网卡的IP与虚拟机IP在同一网段,但仍然无法进行通信,此时就需要网桥来进行连接!


1、配置网卡

注意:网卡的名称每台主机都各不相同,需要自己在网络配置中查找名称

配置网卡:

> vim /etc/sysconfig/network-scripts/ifcfg-enp0s25

DEVICE=enp0s25
ONBOOT=yes
BOOTPROTO=none
BRIDGE=br0

配置网桥:

> vim /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.25.254.93
NETMASK=255.255.255.0
TYPE=Bridge
> systemctl restart network


结果如下:


如上除了编辑配置文件进行网桥的配置以外,也可以通过网络桥接的控制命令进行


三、网络桥接的配置

brctl
### 桥接管理命令
  show ### 显示
  addbr ### 添加网桥
  delbr ### 删除网桥
  addif ### 添加网桥连接
  delif ### 删除网桥连接


原始环境如下:

(其网卡上无IP)


其操作过程如图所示:



ping不通说明网卡有问题


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

众所周知,网卡是一种物理设备,可能会被损坏。为了避免因网卡在使用过程中出现问题而造成网络无法访问,我们接下来将通过对多块网卡绑定来进行服务。接下来我们将对其中两种绑定模式及其网卡服务过程进行介绍~


四、Linux以太网绑定模式


1、介绍
• Red Hat Enterprise Linux 允许管理员使用
bonding 内核模块和称为通道绑定接口的特殊网络接口将多个网络接口绑定到一个通道。根据选择的绑定模式 , 通道绑定使两个或更多个网络接口作为一个网络接口 , 从而增加带宽和 / 提供冗余性

2、选择 Linux 以太网绑定模式
• 模式 0 ( 平衡轮循 ) - 轮循策略 , 所有接口都使用采用轮循方式在所有 Slave 中传输封包 ; 任何Slave 都可以接收
• 模式 1 ( 主动备份 ) - 容错。一次只能使用一个Slave 接口 , 但是如果该接口出现故障 , 另一个Slave 将接替它
• 模式 3 ( 广播 ) - 容错。所有封包都通过所有Slave 接口广播

3、bond 命令管理

开启Network Manager:


开启bond接口:

nmcli connection add con-name bond0 type bond mode active-backup ip4 172.25.254.118/24

注:以上nmcli connection为绑定的命令,add为添加,con-name为设备名称,type为类型,mod为模式,active-backup表示主动备份模式,ip4为网络IP,该命令均可用TAB键补齐并查看各种类型。下同

连接bond网卡:

nmcli connection add con-name eth0 ifname eth0 type bond-slave master bond0
nmcli connection add con-name eth1 ifname eth1 type bond-slave master bond0


关闭bond接口及删除bond网卡:
nmcli connection delete bond0
nmcli connection delete eth0
nmcli connection delete eth1


网卡的关闭与开启:
ifconfig eth0 down
ifconfig eth0 up


实时观测命令
watch -n 1 cat /proc/net/bonding/bond0

五、Team 接口


1)特点
• Team 和 bond0 功能类似
• Team 不需要手动加载相应内核模块
• Team 有更强的拓展性
– 支持 8 快网卡

2)team种类
•broadcast 广播容错
•roundrobin 轮询
•activebackup 主备
•loadbalance 负载均衡

3)team 命令管理

开启team接口:

• nmcli connection add con-name team0 ifname team0 type team config '{"runner": {"name":"loadbalance"}}' ip4 172.25.254.118/24

命令与bond设定大致相似,只有type和Mode不一样,需注意mode的格式!


连接team网卡:
• nmcli connection add con-name eth0 ifname eth0 type team-slave master team0
• nmcli connection add con-name eth1 ifname eth1 type team-slave master team0


关闭team接口并删除team网卡:
nmcli connection delete team0
nmcli connection delete eth0

nmcli connection delete eth1


实时观测命令

watch -n 1 teamdctl team0 state


除了相对资料的查阅,关于网络桥接的理解大家还可以参考如下文献:

http://blog.csdn.net/xiaoliuliu2050/article/details/53485753