Linux之网络的风采——以后也能做网管了

理论基础

1、先说说这个IP:

    IP是一种协议,计算机与计算机通信协议,是一种底层通信协议,分为IPv4与IPv6,现在使用的还是IPv4

    IPv4由32位二进制组成,也就是由32位0或者1组成,通过排列组合也能算出来这个世界一共有多少个IP了,有2^32个IP约42.9亿个IP,但是据说现在地球人口已经80来亿了,可以想像一下,IP资源比较溃乏,还好IPv6快要出现了,这个ip几乎可以说是用之不净的IP有2^128个IP,据说可以给世界上的每一粒砂子配置一个IP,可以想像一下,IPv6的数量是恐怖的

2、说说这个IP的分类吧

   先按照这个IP前八位数字的型式分一下类,分为五类,分别是A,B,C,D,E

        A:1.0.0.0~127.255.255.255

        B:128.0.0.0~191.255.255.255

        C:192.0.0.0~223.255.255.255

        D:224.0.0.0~239.255.255.255(组播地址)

        E:240.0.0.0~255.255.255.255(供给研究使用的预留IP)

    再按这个使用用途分一下类,这个就是公有IP与私有IP啦,下面说说这些IP中的私有IP,每一个类别中有一段IP划分成私有IP

        A:10.0.0.0~10.255.255.255

        B:172.16.0.0~172.31.255.255

        C:192.168.0.0~192.168.255.255

      D和E没有私有IP是不是有点讨厌呢。。。

    注:公有IP和私有IP默认是不能通信的,大家明白,据一些老前辈说他们在年轻的时候办公电脑用的IP是公有IP,这种情况我是没有见过。。。。

3、说一下VLSM吧:(可变长子网掩码)

    这里要小说几个术语了:

        网段:就像A,B,C,D,E分类一样,只不过是不知名的分类,例如把A类地址又分为十份,这十份中的每一份都是一个网段

        网络位:评定两个IP是不是同一个网段的标准

        主机位:确定一个网段中可以容纳多少台设备,有的人一说这个设备就是计算机,我觉的现在不应该这么狭隘了,现在马桶都快变成智能化了,所以就没有必要在这么局限了

        与运算:是一种算法,就是对位做乘法,就是0与1做乘法,这个答案比较明了,不是1就是0,但是有很多人就是不会算,我想你是一个聪明人,应该会算的喽;记住是对位相乘,不要跑偏了

    我预计有很大一部分人是不会做进制转化的,咱专业点好不好,做为半个IT界人,居然不会进制转化,我有点不淡定了,其实进制蛮多的,比如我们生活中经常用到的十进制,一小时60分,一天24小时,这都能算是一种进制,我们即然会算时间,为什么不会算这些个二进制、八进制、十进制呢

    先说说十进制转化为二进制吧,使用短除法进行转化

        例:将1382转化为二进制

            1382/2=691 余0

            691/2=345  余1

            345/2=172 余1

            172/2=86 余0

            86/2=43 余0

            43/2=21 余1

            21/2=10 余1

            10/2=5 余0

            5/2=2 余1

            2/2=0 余0

            1

        倒着写下去,从下往上写就是10101100110,这一串数就是1382转化成二进制的结果

    上面说了十转二,下面来看看二转二

        例:将10001011111011001转化为十进制

            10001011111011001=1*2^0+0*2^1+0*2^2+1*2^3+1*2^4+0*2^5+1*2^6+1*2^7+1*2^8+1*2^9+1*2^10+0*2^11+1*2^12+0*^2^13+0*2^14+0*2^+15+1*2^16

                                       =1+0+0+8+16+0+64+128+256+512+1024+0+4096+0+0+0+65535

                                       =71641

            所以这个二进制转化为十进制的结果就是71641

            用二进制转化八进制与十六进制的简单方法,这种方法叫”八四二一码“,如下图

                Linux之网络的风采——以后也能做网管了

             这就是八四二一码的核心思想,分片,补0,其中要将二进制转化为八进制,将二进制分为三个一组(从未位到首位分割),如果首位不够三位可心借0,同样的,如果是转化为十六进制,那么就是将四个二进制分成一组,不够可心补0,还是容比较容易与方便的

        

        这个进制转化的中介是十进制,如果要将八进制或都十六进制转化为二进制,需要将八进制或都十六进制转化为十进制,然后再转化为二进制

            例:将八进制转化为十进制:将八进制数66转化为十进制

                66=6*8^0+6*8^1

                   =6+48

                   =54

            例:将十六进制转化为十进制:将十六进制数8E65转化为十进制

                8E65=5*16^0+6*16^1+14*16^2+8*16^3

                      =5+96+3584+32768

                      =36453

            例:将十进制转化为十六进制:将十进制数12306转化为十六进制

                12306/16=769 余2

                769/16=48 余1

                48/16=3 余0

                3

                所以结果十六进制为3012

    

    现在说说IP与子网掩码的与运算:

        与运算就是将IP与子网掩码转化成二进制后,对位相乘,如下图

               Linux之网络的风采——以后也能做网管了

            上图就是IP与子网掩码做与运算,并得出网络位为192.168.1.0

            而主机位就是二进制网络俺码中的0即为主机位,由排列组合可以看出一类子网掩码可以包含多少个主机,但是在主机中,有两个特别的存在,那就是主机位与网络位即这一个网络中最大的一个IP与最小的一个IP,这两个不可以给设备分配,同时192.168.1.0表示这个网段,192.168.1.255就是这个网段的广播地址。

    VLSM:可变长子网掩码

        向主机位借位,借位后的IP就是无类的IP,比如说192.168.1.0/24借两位就表示成192.168.1.0/26,当然,即然借了,广播地址就不为255,比如这个网段192.168.1.0/26的广播地址就是192.168.1.63

    下面说下相关公式吧:

        计算一个网段下的主机数:2^n-2(其中n为主机位0的个数)

        计算一个网段分的子网段数:2^m(其中m为借位的个数)

        子网的边界:256-N(N为借位后二进制数值转化为十进制的值,例192.168.1.0/26中借位两位由原来的八个0变为11000000,那么11000000转化为十制就是192,那么公式就是256-192,结果为64,那么,这个子网段就是以64分割的,第一个网段就是192.168.1.0~192.168.1.63、第二个就是192.168.1.64~192.168.1.127、……)

4、CIDR(超网)
    超网是一种减少路由条目的技术,可以将多个网段合并为一个网段
    例如三个网段分别为192.168.128.0/24、192.168.192.0/24、192.168.224.0/24在写入路由条目的时候就可以合并为一条路由192.168.128.0/17

    

5、说说静态路由与动态路由吧:

    静态路由顾名思义就是固定的,一个缺点,当然也有优点了,缺点是需要一条一条的配置,面全球有十三万条路由,好不容易配置好了十三万条路由了,路由器崩溃了,这是必然的,能存十三万条路由的路由器一般单位还买不起,所以,这个静态路由适合小环境中使用,一般公司都公使用静态路由,因为还有一个技术叫NAT(有兴趣可以上网查下),而且又有几个公司有超过5台路由器的,况且五台路由器才配置几条路由啊,简单实惠,何乐而不为呢,所以说,动态路由对大部分地方就是一个复杂而无用的技术,当然,动态路由的优点是静态所不能比的,如果用静态路由写5000条路由,用动态也就那么几条,动态路由的路由主要是靠自动获取,性能也要比静态好的多(大型网络中)。所以在Linux中静态路由就是必不可少的了,当然,如果你要用Linux当个路由器,也是可以的,可以装个quagga软件包,这个包里有OSPF与RIP协议,用这个软件的,应该就是做软路由了,那你也可以创业了,做个联通的宽带代理商了,成本价也就几百块。。。。闲扯结束,继续写吧。。


实例1
    静态路由
        路由拓扑

            Linux之网络的风采——以后也能做网管了

            步骤:
                1、配置IP
                    (临时)ifconfig 网卡名 IP/PREFIX
                    (非临时)写入配置文件/etc/sysconfig/network-scripts/ifcfg-网卡名
                2、在路由器上配置
                    echo 1 > /proc/sys/net/ipv4/ip_forward
                3、配置路由与网关
                    (网关)route add default gw 网关
                    (路由)route add -net 要去的网段 gw 下一跳近端口IP
            配置过程
                S1:ifconfig eth0 192.168.35.2/24
                    route add default gw 192.168.35.1
                S2:ifconfig eth0 172.31.1.2/24
                    route add default gw 172.31.1.1
                R1:ifconfig eth0 192.168.35.1/24
                    ifconfig eth1 10.1.1.1/24
                    route add -net 172.31.1.0/24 gw 10.1.1.2
                    echo 1 > /proc/sys/net/ipv4/ip_forward
                R2:ifconfig eth0 172.31.1.1/24
                    ifconfig eth1 10.1.1.2/24
                    route add -net 192.168.35.0/24 gw 10.1.1.1
                    echo 1 > /proc/sys/net/ipv4/ip_forward
            配置结束
                注:各种网卡的协调性

实例2
    BONDING:

        BONDING的模式:
            mode 0 为balance-rr(轮询模式)
            mode 1 为active-backup(主备模式)
            mode 3 为broadcast(广播策略)

        步骤:
            1、清除原有配置网卡配置文件
            2、新建bonding配置文件
            3、配置bonding虚拟设备文件
                DEVICE= //设备名
                BOOTPROTO= //获取IP方式
                ONBOOT= //是否开机自动启动
                BONDING_OPTS=”mode={0|1|3};miimon=100″ //BONDING模式
                IPADDR= //静态IP地址
                NETWORK= //掩码
                GATEWAY= //网关
                DNS1= //dns
            4、配置实体网卡的配置文件
                DEVICE= //设备名
                SLAVE= //是否为slave{yes|no}
                MASTER= //是否为master{bonding的设备名}

        配置过程:
            ifconfig eth0 down
            ifconfig eth1 down
            rm -rf ifcfg-eth0
            rm -rf ifcfg-eth1
            touch ifcfg-bond0
            touch ifcfg-eth0
            touch ifcfg-eth1
        编辑配置文件:ifcfg-bond0
            DEVICE=bond0
            BOOTPROTO=none
            ONBOOT=yes
            BONDING_OPTS=”mode=1 miimon=100″
            IPADDR=172.16.1.1
            PREFIX=16
            GATEWAY=172.16.0.1
            DNS1=172.16.0.1
        编辑配置文件:ifcfg-eth0
            DEVICE=eth0
            SLAVE=yes
            MASTER=bond0
       编辑配置文件:ifcfg-eth1
            同ifcfg-eth1
       

        可以查看/proc/net/bonding/bond0

    配置完成

实例3

    在CentOS7中的网络组
        Teaming的工作模式:
            broadcast(广播模式)
            roundrobin(轮询)
            activebackup(主备)
            loadbalance(负载均衡)
            lacp(链路聚合控制协议)

        配置步骤:
            1、删除原有网卡相关的配置文件
            2、生成team
            3、将实体网卡加入到team中
            4、启动

        配置过程:
            nmcli con add type team con-name team0 ifname team0 config ‘{“runner”:{“name”:”activebackup”}}’
            nmcli con add type team-slave con-name team0-eth0 ifname eth0 master team0
            nmcli con add type team-slave con-name team0-eth1 ifname eth1 master team0
            nmcli con down team0
            nmcli con up team0
            nmcli con up team0-eth0
            nmcli con up team0-eth1
    配置完成

原创文章,作者:gaomei,如若转载,请注明出处:http://www.178linux.com/71516

(0)
gaomeigaomei
上一篇 2017-03-26
下一篇 2017-03-26

相关推荐

  • 马哥教育网络班21期+第6周课程练习

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@localhost ~]# cp /etc/rc.d/rc.sysinit /tmp [root@localhost tmp]# vim rc.sysin…

    Linux干货 2016-08-02
  • 马哥教育网络班N22期+第4周课程练习

    马哥教育网络班N22期+第4周课程练习 1. 复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 cp -rf /etc/skel /home/tuser1  chmod -R go= tuser1/ 2. 编…

    Linux干货 2016-09-19
  • linux入门第二课

    **linux入门基础** linux 命令类别 内部命令和外部命令 首先我们可以用echo $SHELL 来查询shell 里面会显示我们当前在用的shell 上图是echo $SHELL 也可以用cat /etc/shells来查询系统里面的shell bash其实是一个文件是一个程序 存在于 /bin/bash 目录,这是真是存在的文件,是一个可以执行…

    Linux干货 2017-05-20
  • linux磁盘管理

    硬盘接口类型:         IDE:并口,133M/s;100个IO/s        SCSI:并口,UltraSCSI320,320M/s UltraSCSI640 640M/s 150-200IO/s&nbsp…

    Linux干货 2016-08-29
  • LAMP快速部署及LAMP组合深入讲解-2

      lamp SQL 数据管理模型:层次模型、网状模型、关系模型数据分类:结构化数据、半结构化数据、非结构化数据 关系模型 数据库:一个方案、一个项目 二维关系: 表:row, column 索引:index 视图:view SQL接口:Structured Query Language;类似于OS的shell接口;也提供编程功能; ANSI: S…

    2017-06-04
  • grep、find练习

    1.显示当前系统上root,fedora或user1用户的默认shell [root@study ~]# cat /etc/passwd|grep -E "^(root|fedora|user1)"|cut -d: -f7 /bin/bash /bin/bash /bi…

    Linux干货 2016-11-27