zoukankan      html  css  js  c++  java
  • Linux网桥

    linux网桥的功能

    转发数据包

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

    当使用网桥连接两段LAN 时,网桥对来自网段1的MAC帧,首先要检查其终点地址。如果该帧是发往网段1 上某一站的,网桥则不将帧转发到网段2 ,而将其滤除;如果该帧是发往网段2上某一站的,网桥则将它转发到网段2。这表明, 如果LAN1和LAN2上各有一对用户在本网段上同时进行通信,显然是可以实现的。 因为网桥起到了隔离作用。可以看出,网桥在一定条件下具有增加网络带宽的作用。

    linux网桥的使用

      要配置网桥,要网桥的配置工具bridge-utils。源代码可以在http://bridge.sourceforge.net/bridge-utils/ 下载。编译成功之后,生成网桥配置的工具名称为brctl。

      配置说明:

      有五台主机。其中一台主机装有linux ,安装了网桥模块,而且有四块物理网卡,分别连接同一网段的其他主机。我们希望其成为一个网桥,为其他四台主机(IP分别为192.168.1.2 ,192.168.1.3,192.168.1.4,192.168.1.5) 之间转发数据包。同时,为了方便管理,希望网桥能够有一个IP(192.168.1.1),那样管理员就可以在192.168.1.0/24网段内的主机上telnet到网桥,对其进行配置,实现远程管理。

      我们为这个逻辑网段一个名称,br_192。首先需要配置这样一个逻辑网段。

      # brctl addbr br_192            (建立一个逻辑网段,名称为br_192)

      实际上,我们可以把逻辑网段192.168.1.0/24看作使一个VLAN ,而br_192则是这个VLAN的名称。

      建立一个逻辑网段之后,我们还需要为这个网段分配特定的端口。在Linux中,一个端口实际上就是一个物理网卡。而每个物理网卡的名称则分别为 eth0,eth1,eth2,eth3。我们需要把每个网卡一一和br_192这个网段联系起来,作为br_192中的一个端口。

    # brctl addif br_192 eth0            (让eth0成为br_192的一个端口)
    # brctl addif br_192 eth1            (让eth1成为br_192的一个端口)
    # brctl addif br_192 eth2            (让eth2成为br_192的一个端口)
    # brctl addif br_192 eth3            (让eth3成为br_192的一个端口)

      网桥的每个物理网卡作为一个端口,运行于混杂模式,而且是在链路层工作,所以就不需要IP了。

    # ifconfig eth0 0.0.0.0
    # ifconfig eth1 0.0.0.0
    # ifconfig eth2 0.0.0.0
    # ifconfig eth3 0.0.0.0

      然后给br_192的虚拟网卡配置IP:192.168.1.1。那样就能远程管理网桥。

      # ifconfig br_192 192.168.1.1

      给br_192配置了IP之后,网桥就能够工作了。192.168.1.0/24网段内的主机都可以telnet到网桥上对其进行配置。

      以上配置的是一个逻辑网段,实际上Linux网桥也能配置成多个逻辑网段(相当于交换机中划分多个VLAN)。具体的方法可以参考bridge-util中的HOWTO

    linux网桥的工作流程

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

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

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

    网桥的配置工具bridge-utils

    Docker桥接

  • 相关阅读:
    Go的50坑:新Golang开发者要注意的陷阱、技巧和常见错误[2]
    Go的50坑:新Golang开发者要注意的陷阱、技巧和常见错误[1]
    进程和线程
    Linux 技巧:让进程在后台可靠运行的几种方法
    Linux 网络命令必知必会之 tcpdump,一份完整的抓包指南请查收!
    这些好用的 Chrome 插件,提升你的工作效率
    golang学习笔记-go mod的使用
    性能监控和分析工具---nmon
    Jenkins
    程序员画图工具总结
  • 原文地址:https://www.cnblogs.com/toone/p/6150132.html
Copyright © 2011-2022 走看看