RHCE-brctl 网桥的使用方法

[root@xenserver ~]# brctl --help
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
        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                                    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


=======================================================================================
        addbr bridge的名称  #添加bridge;
        delbr bridge的名称              #删除bridge;
        addif bridge的名称 device的名称 #添加接口到bridge;
        delif bridge的名称 device的名称 #从bridge中删除接口
        setageing bridge的名称 时间     #设置老化时间,即生存周期
        setbridgeprio bridge的名称 优先级 #设置bridge的优先级
        setfd bridge的名称 时间         #设置bridge转发延迟时间
        sethello bridge的名称 时间      #设置hello时间
        setmaxage bridge的名称 时间     #设置消息的最大生命周期
        setpathcost bridge的名称 端口 权重 #设置路径的权值
        setportprio bridge的名称 端口 优先级 #设置端口的优先级
        show     #显示bridge列表
        showmacs bridge的名称  #显示MAC地址
        showstp  bridge的名称           #显示bridge的stp信息
        stp bridge的名称 {on|off}       #开/关stp
 
设置linux让网桥运行    配置网桥
我们需要让linux知道网桥,首先告诉它,我们想要一个虚拟的以太网桥接口:(这将在主机bridge上执行,不清楚的看看测试场景)
root@bridge:~> brctl addbr br0
其次,我们不需要STP(生成树协议)等。因为我们只有一个路由器,是绝对不可能形成一个环的。我们可以关闭这个功能。(这样也可以减少网络环境的数据包污染):
root@bridge:~> brctl stp br0 off
经过这些准备工作后,我们终于可以做一些立竿见影的事了。我们添加两个(或更多)以太网物理接口,意思是:我们将他们附加到刚生成的逻辑(虚拟)网桥接口br0上。
root@bridge:~> brctl addif br0 eth0
root@bridge:~> brctl addif br0 eth1
现在,原来我们的两个以太网物理接口变成了网桥上的两个逻辑端口。那两个物理接口过去存在,未来也不会消失。要不信的话,去看看好了。 .现在他们成了逻辑网桥设备的一部分了,所以不再需要IP地址。下面我们将这些IP地址释放掉
root@bridge:~> ifconfig eth0 down
root@bridge:~> ifconfig eth1 down
root@bridge:~> ifconfig eth0 0.0.0.0 up
root@bridge:~> ifconfig eth1 0.0.0.0 up


好了!我们现在有了一个任何IP地址都没有的box w/o了。 好了,这下如果你想通过TP配置你的防火墙或路由器的话,你就只能通过本地的控制端口了。你不会告诉我你的机器上连串行端口都没有吧?
注:上面红色部分其实是可选的,在试验中,我发现,就算不把原有的网卡地址释放掉,网桥也能工作!但是,为了更规范,或者说为了避免有什幺莫名其妙的问题,最好还是按要求做,执行这四步吧!


最后,启用网桥 root@bridge:~> ifconfig br0 up


可选:    我们给这个新的桥接口分配一个IP地址
root@bridge:~> ifconfig br0 10.0.3.129


或者把最后这两步合成一步:
root@bridge:~> ifconfig br0 10.0.3.129 up
就是多一个up!


这下我们做完了 。
关闭网桥命令


     brctl delif ena eth1;
     brctl delif ena eth0;
     ifconfig ena down;
     brctl delbr ena;


先装好网卡,连上网线,然后开始!

设置linux让网桥运行    配置网桥
我们需要让linux知道网桥,首先告诉它,我们想要一个虚拟的以太网桥接口:(这将在主机bridge上执行,不清楚的看看测试场景)
root@bridge:~> brctl addbr br0
其次,我们不需要STP(生成树协议)等。因为我们只有一个路由器,是绝对不可能形成一个环的。我们可以关闭这个功能。(这样也可以减少网络环境的数据包污染):
root@bridge:~> brctl stp br0 off
经过这些准备工作后,我们终于可以做一些立竿见影的事了。我们添加两个(或更多)以太网物理接口,意思是:我们将他们附加到刚生成的逻辑(虚拟)网桥接口br0上。
root@bridge:~> brctl addif br0 eth0
root@bridge:~> brctl addif br0 eth1
现在,原来我们的两个以太网物理接口变成了网桥上的两个逻辑端口。那两个物理接口过去存在,未来也不会消失。要不信的话,去看看好了。 .现在他们成了逻辑网桥设备的一部分了,所以不再需要IP地址。下面我们将这些IP地址释放掉
root@bridge:~> ifconfig eth0 down
root@bridge:~> ifconfig eth1 down
root@bridge:~> ifconfig eth0 0.0.0.0 up
root@bridge:~> ifconfig eth1 0.0.0.0 up

好了!我们现在有了一个任何IP地址都没有的box w/o了。 好了,这下如果你想通过TP配置你的防火墙或路由器的话,你就只能通过本地的控制端口了。你不会告诉我你的机器上连串行端口都没有吧?
注:上面红色部分其实是可选的,在试验中,我发现,就算不把原有的网卡地址释放掉,网桥也能工作!但是,为了更规范,或者说为了避免有什幺莫名其妙的问题,最好还是按要求做,执行这四步吧!

最后,启用网桥 root@bridge:~> ifconfig br0 up

可选:    我们给这个新的桥接口分配一个IP地址
root@bridge:~> ifconfig br0 10.0.3.129

或者把最后这两步合成一步:
root@bridge:~> ifconfig br0 10.0.3.129 up
就是多一个up!

这下我们做完了 。

关闭网桥命令


     brctl delif ena eth1;
     brctl delif ena eth0;
     ifconfig ena down;
     brctl delbr ena;




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

前一节中提到,网桥在同一个逻辑网段转发数据包。针对上面的拓扑,这个逻辑网段就是192.168.1.0/24 网段。我们为这个逻辑网段一个名称,br0 。首先需要配置这样一个逻辑网段。

 

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

 

# brctl delbr br0

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

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

 

# brctl addif br0 eth0                ( eth0 成为br0 的一个端口)

# brctl addif br0 eth1                ( eth1 成为br0 的一个端口)

# brctl addif br0 eth0                ( eth2 成为br0 的一个端口)

# brctl addif br0 eth3                ( eth3 成为br0 的一个端口)

 

# brctl delif br0 eth0

网桥的每个物理网卡作为一个端口,运行于混杂模式,而且是在链路层工作,所以就不需要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

# ip addr add 127.0.0.1/8 dev lo brd +     

ip 是iproute2 软件包里面的一个强大的网络配置工具,它能够替代一些传统的网络管理工具。例如:ifconfig 、route 等。这个手册将分章节介绍ip 命令及其选项。)    

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

# ifconfig br0 192.168.1.1

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

以上配置的是一个逻辑网段,实际上Linux 网桥也能配置成多个逻辑网段( 相当于交换机中划分多个VLAN) 。 

四、   brctl 命令详细分析

增加桥接过程

brctl addbr br0

brctl addif br0 eth0  

#   ip addr add 172.16.12.43/8 dev br0 brd +

#   ifconfig br0 up

# brctl delif br1 vnet1 #将vnet1网卡从br1网桥上删除

#brctl addif br0 vnet 1 #将vnet1添加到br0网桥上


 

删除桥接过程

 1  ip addr del 172.16.12.43/8 dev br0 brd +

 2  ifconfig br0 down  

 3  brctl delif br0 eth0

 4  brctl delbr br0

 


分割线
感谢打赏
江西数库信息技术有限公司
YWSOS.COM 平台代运维解决方案
 评论
 发表评论
姓   名:

Powered by AKCMS