• 虚拟化云计算-linux网桥及vlan实现交换机


      linux bridge(网桥)是linux上用来做tcp/ip做二层协议交换的设备,就是为了狙击绝虚拟机网卡连接问题。创建网桥后,就像网络交换机具有物理网络接口一样你,可以进一步在网桥上创建多个虚拟的物理接口,然后再将每个接口与虚拟机的网卡连接。

    image.png

    一、安装与使用bridge-utils

        centos系统下的网桥管理工具是bridge-utils包。安装该工具后,可以使用brctl命令创建、查看与管理网

    yum install brige-utils
     

    命令brctl显示相关命令:

    image.png

    相关命令说明:

    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

    在没有使用创建网桥之前,可以看到网卡信息,只有一个网卡eth0和本地环回网卡

    image.png

    使用brctl命令创建网桥br1,并将eth0接口加入此网桥

    brctl addbr br1
    brctl addif  br1 eth0 
    ifconfig eth0 0.0.0.0 #去除eth0的ip地址               
    ifconfig br1 172.31.208.60 netmask 255.255.255.0 #创建网桥的Ip地址,可以通过这个网桥的地址进行远程登录
    route add default gw  172.31.208.1 dev br1 #增加网关
     

    完成后,显示网卡信息,可以看到网桥已经创建

    image.png

    查看路由,可以看到默认网关已经配置在网桥上

    image.png

    网桥信息如下所示:

    brctl show br1
     

    image.png

        网桥的地址就是为了可以方面进行ssh登录宿主机。与网桥连接的虚拟机IP地址可以设置为网桥处于同一个ip地址网段,也可是设置为不相同的ip地址

    brctl命令对网桥的配置需以文件的形似保存下来,这样系统再次启动后所有的配置依旧可以生效,ifcfg-br1的信息如下所示:

    image.png

    注意这里修改ONBOOT=yes,即开机生效

    BOOTPROTO=static静态地址

    DNS1=233.5.5.5保证配置网桥后可以使用yum

    而此时,eth0网卡的配置文件ifcfg-eth0,需要删除ip地址信息,如下所示:

    image.png

    二、VLAN和虚拟交换机

        vlan的定义不再多说,只需记住将数据包打上vlan标签的端口叫做access,而将不处理标签转发数据包的端口叫做trunk.

    linux的vlan就是由不同的网桥实现,如下所示“

    image.png

    说明:

    eth0是物理机的物理网卡,有两个eth0.10和eth0.20两个子设备

    eth0.10就是vlan设备vlanid 就是vlan10

    eth0.10挂载在brvlan10的网桥上,虚拟机vm1通过vnet0的网卡挂载在网桥brvlan10上

    这里eth0.10,vmnet,brvlan10相当于access接口,eth0就相当于trunk接口

    这样,就相当于形成了一个虚拟交换机,使用软交换方式

    在linux系统下,VLAN的管理工具是vconfig。

    yum install epel-release #不安装epel源找不到vconfig
    yum install vconfig
    modpeobe 8021q
     

    创建VLAN接口与网关ip地址

    linux的vlan机制是,如果物理机器只有一个网卡,我们可以在这个网卡上创建多个vlan,也就是说多个vlan的数据可以通过这个物理网卡对外进行转发。而每个VLAN以独立的接口

    (interface)体现。比如需要在eth0上创建10,20的VLAN,则需要创建eth0.10和eth0.20这两个不同的接口。

    同时,我们也可以为每个vlan接口分配不同的ip地址,让每个IP地址成为每个VLAN内部的对外访问网关,如我们可以将eth0.10设置为192.168.10.1/24,以此作为VLAN内的网关地址。

        下面举例,在eth0上创建10,20的vlan接口,分别赋予这些接口ip地址,并加入到主机路由表中。

    vconfig add eth0 10
    vconfig add eth0 20
    ifconfig eth0.10 192.168.10.1 netmask 255.255.255.0 up
    ifconfig eth0.20 192.168.20.1 netmask 255.255.255.0 up
    ip route add 192.168.10.0/24 dev eth0.10
    ip route add 192.168.20.0/24 dev eth0.20
     

    image.png

    完成配置后,查看路由表

    image.png

    查看网卡信息

    image.png

    如果需要删除已经创建的VLAN10接口eth0.10,则如下:

    vconfig rem eth0.10
     

    在虚虚拟化环境下,虚拟机连接在不同的网桥接口上,而如果将已经创建好的各个vlan接口加入到不同的网桥中,则不同的网桥流量会进入不同的vlan中。

    如果我们创建brvlan10网桥,且br10网桥将eth0.10 VLAN接口加进来,这样brvlan10上所有的虚拟机都处于VLAN10中。

    brctl addbr brvlan10
    brctl addif brvlan10 eth0.10
     

    image.png

    另外,在centos7中,我们可以使用network-manger的nmtui命令来创建和查看vlan接口,更加方便

    nmtui
     

     image.png

    image.png

    三、总结

    (1)linux的vlan设备实现的是隔离功能,但是没有交换功能

    一个vlan母设备(如eth0)不能拥有两个相同的id vlan子设备,因此不能实现交换

    (2)linux bridge专门实现交换功能

    将同一个vlan子设备都挂载在一个bridge上,设备之间就可以实现交换功能

    总体来说,vlan+bridge在功能层面完整模拟交换机,实现软件二层交换

    转自:https://blog.51cto.com/11555417/2162026

  • 相关阅读:
    Linux Shell tr 命令详解
    Shell统计每个单词出现的个数
    启明4-29团队进度博客
    启明4-28团队进度博客
    启明4-27团队进度博客
    启明4-26团队进度博客
    启明4-25团队进度博客
    启明4-24团队博客
    每日总结8
    启明4-23团队进度博客
  • 原文地址:https://www.cnblogs.com/pipci/p/13020894.html
Copyright © 2020-2023  润新知