linux day25(特殊ip地址,子网划分,vlan,网络相关操作与配置)

今日内容:

 1,特殊ip地址

 2,子网划分(借网络位给主机位用)、

 3,vlan(一种基于端口的,一个基于标签的)

 4,实际部位

 4.1 修改网卡名

 4.2 网卡的丢包问题以及如何解决

 4.3 网卡的详细信息

 4.4 路由配置

 

一,特殊的ip地址

  .0 代表本网段的网络地址。

  .1 代表本网段网关的网络地。

  .255  代表本网段的广播地址。

  255.255.255.255 代表全网广播地址。

  lo  代表本地回环地址。

     lo:就是把一个数据包从应用层,层层包装,到物理层打散成二进制位,到网卡,没有从网卡往外送,直接又一次次解到应用层,没有走到交换机,发包解包都是网络网卡完成的

     lo:这个地址不光开发要用,运维人员也要用,作用就是,它直接杜绝了网络对你的影响,无论开发cs架构还是bs架构,它都是基于网络通信的软件,一端是客户端,一端是服务端,一端发包一端收包,一定会涉及到网络的问题,那么如果一个软件出现了问题,可能是软件的问题,也可能是网络环境出现的问题,所以第一步应该先定位软件问题,看看是网络环境问题,还是软件的问题,这时候就使用ol地址,先在本地回环,如果没问题,就证明软件本身没有问题,那么发包的ip是ol地址,如127.0.0.1 收包也是ol地址,127.0.0.1那么如何不冲突?首先想要寄快递(发包),需要知道对方在哪,就需要知道对方的ip地址,mak地址(可以忽略,因为arp协议可以帮助拿到),还有端口号,这三个,其实只需要ip和端口号,就可以标识全世界独一无二的一个软件,有了这个地址,就可以把数据送给对方,现在本地回环,ip地址都是ol,127.0.0.1,如何做到不冲突,就是设定他们不同的端口号,这样就可以互相通信地址还不冲突,做到都是独一无二的。

     lo地址,除了开发要使用,运维也要使用,比如部署一个很庞大的集群架构,先在自己的机器上部署,假如涉及大量的软件,就要一边搭一边修改配置文件,软件之间要互相找到,这时候如果基于tcp协议的时候,服务端要先启动,服务端应该绑定一个ip和端口,如使用ol,127.0.0.1加个端口号,先在本机把各个软件组件部署完之后,先保证软件可以运行,证明自己的配置文件没有问题。有可能部署软件涉及7个组件,再把组件在一台机器上部署完,它能跑起来,证明自己的配置文件没有问题。接下来有可能这7个组件,要配置到7个机器上,把7个组件分到7个机器上运行,无非就是把ip地址改改就行,这个时候再出问题,就是网络出现的问题。就可以准确排错,不然出现问题,有可能是配置文件有问题,也有可能是网络有问题,很难知道到底是怎么出错。所以部署集群,先在本机部署一下。

  在公司部署软件的时候

  1,是通过rpm安装,相当于一个安装程序,定制好了安装配置,版本通常比较老

  2,yum安装,需要解决一个依赖性问题,要对应一个yum仓库。yum源需要自定义,现在都是用阿里云,华为云,但是在公司不应该用这些,运维图稳,不图软件最新,不是致命漏洞,不要升级。在公司里,假如需要部署一个软件,先在一台机器自己部署一下,首先拿到一个镜像,然后用镜像安装操作系统,在刚安装完操作系统就应该打开yum缓存,然后配好阿里云,华为云,然后更新内核,然后部署庞大的集群架构,用yum安装,直到本地存了一份最完整的rpm包,依赖性都解决了,把这些rpm包放到一个目录里面,做成一个yum源,找一个机器,可以是管理机,把yum源放上去,配了一个自己的yum源,好处就是其他机器再下载软件包,就不需要去网上下载了。以后在线上部署,使用的rpm包都用自己本地的。每台机器使用的软件包都是一模一样,就不会出现乱七八糟的各种问题。阿里源和华为源也是如此。

  总结:由本地回环讲到架构思想,先在本机部署,把该准备好的软件包,配置文件准备好,调试好,然后到集群部署时,不要再手动部署,全都用本地的准备好的配置文件复制粘贴。不要上来就集群架构部署,先在本机全部部署完,再慢慢向其他延伸。但是如果是比较简单的组件,就客户端,服务端,就不需要这么复杂。

  3,源码安装,自己定制化,要安装最新,用源码安装。

 

  私有地址:

    1,10.0.0.0~10.255.255.255 表示一个A类地址

    2,172.16.0.0~172.31.255.255 表示B类地址     公司选择B类的原因:一个网络包含的主机位多,以后公司做大了,就不用改。考虑到扩展性。

    3,192.168.0.0~192168.255.255 表示c类地址   办公室特别多。

    拓展:如果不想连接外网,可以不按照这个规定。

  0.0.0.0 服务端需要ip端口,客户端也需要ip端口,但是服务端应该固定ip端口,首先服务端想被别人访问,别人需要知道它在哪,所以需要公网地址,外界需要知道的也是公网ip地址,公网ip和私网ip应该有映射关系(网络工程师的工作)。假如公网地址是:101.206.30.24/24:80 ,私网ip是:172.16.10.11/24:80 ,用户使用域名访问,在dns里域名对应公网ip地址,然后公网ip又对应和它有映射关系的私网ip,用户就可以访问到。

    重点:自己在启动服务端端口的时候,不能是公网ip,因为自己的机器是看不到公网ip地址的,也不能是172.16.10.11因为,绑定之后,就只有172.16.10.0这个网段的用户可以访问到,所以服务端应该绑定0.0.0.0/24:80,代表只要是客户端,能和服务端联通的,都可以访问。

    课后:买一个阿里云服务器,会对应一个公网ip,私网ip,服务端但凡要启动一个端口号,都是绑定0.0.0.0对应一个端口号。阿里云会自动关联一个公网ip,外界只有访问公网ip,就会映射到0.0.0.0

    

二,子网划分(增加子网掩码)

  子网掩码,通过和ip按位与运算,来标识出来ip的网络位和主机位,网段。

  而子网划分,就是把子网掩码的位数改动一下。原来默认c类的24位,可以借主机位给网络位,子网掩码改变,会影响网络地址。

  例如:192.168.11.1/24和192.168.11.6/24,通过arp协议,算出来是一个局域网,用mak通信,如果不在一个局域网,源mak是自己mak,目标mak是网关mak地址,把包在局域网内送给网关,通过网卡往外发,由网关通过路由协议把包发出去。

  所以ip地址在不在一个局域网内,直接决定数据包往哪发。

  192.168.11.1/25  把子网掩码由24改成25,这时候还是192.168.11.0

  192.168.11.128/25 时 网络地址就变成了,192.168.11.128

  本来24的子网掩码,是同一个网段里,现在253个网络地址,划分成了俩个网络地址,

 总结:24位子网掩码,192.168.11.(0-127)的网络地址是192.168.11.0

    25位子网掩码,192.168.11.(128-255)的网络地址是192.168.11.128

    一般起始位置的网络地址,都是本网段的网络地址。

    24位的 .0是本网段的网络地址,.1是本网关的网络地址,127是本网段的广播地址,25也一样。    

    课下试验:用俩个虚拟机,桥接模式,使用这俩个网络地址,就发现ping不通。路由条目上也没有,就ping不通。ping就是发包收包。

    为什么要子网划分?

      优点:1,缩小广播域,提升传输效率。

         2,减少ip地址的浪费。

    拓展:在公司中,默认就好,一般不会子网划分,因为可能会增加集群,而子网划分是压缩了主机个数。

 

三,vlan(虚拟,局域网)

   通常来说没有划分过子网,几台机器连接到一个交换机,这个交换机就是一个局域网。

 现在如果想划分不同的局域网,不同的局域网还要可以跨网段通信,就需要通过路由器转发。例如教师里的机器都连接到交换机上,隔壁教师的机器都连在自己教室的交换机上,如果想让着俩个交换机可以通信的话,就需要让这俩个交换机连接在一台路由器上。

  这么做的很多不合理的地方。

    1,因为俩俩局域网就都需要一个路由器,经过的设备就会很多,网络延迟就大,传输速度就低。

     2,ip地址浪费,划分方式也没有把广播域缩小。

  解决方法:

    1,使用三层交换机,以前交换机都是俩层设备,现在有些直接集成了路由器的功能,成为三层交换机。

    2,首先进行子网划分,把ip精简到最合理的范围,即使进行了子网划分,俩台机器在三层上来讲,是不同的广播域,但是由于连接在一个交互机上,交换机广播工作时,就导致俩个广播域的都能接收到,导致了它们二层没有分隔,而三层分隔开,应该只是在自己的网段内广播才对,那怎么统一到一起,现在的交换机不能统一到一起。需要比较强大的交换机,以后去公司里面都是这种类型的交换机。虽然是一个交换机,但是这个交换机可以划分出来多个广播域,一个广播域就称之为一个局域网,只不过不是lan,而是vlan,这是交换机做的事,也就是二层划分好的广播域,1到10是一个局域网,11到20是一个局域网,假如1发一个数据包,发给交换机,交换机只在1到10广播,交换机广播的量就会大幅减少。

 

 为何划分vlan

   vlan是在交换机内划分出多个广播域,一个广播域称之为一个虚拟的局域网。

  vlan是二次 的隔离,ip的子网是三层的隔离

  注意:二层的隔离应该和三层隔离的隔离保持一致。

  vlan的划分的俩种方式:

  1,是基于端口的

  2,是基于标签(tag)的:tag vlan ,它会把数据链路层的进行一些处理。

 

基于端口的vlan图:

  linux day25(特殊ip地址,子网划分,vlan,网络相关操作与配置)

 

 

 123端口是连电脑的,而4号端口是用来连接另一台交换机广播的,所以给1发广播包,会在自己交换机里划分好的1234广播,没个端口号都有标记,标记自己是哪个vlan,它只会在和1一样vlan里广播,到了4,会把包发到和4连接的第二台交换机的端口,然后进行第二次广播,只会在同样的vlan里广播。

   基于端口的弊端是,如果不跨交互机无所谓,可以各自在各自的vlan里广播,如果跨交换机,那么每一个vlan就需要预留一个端口,就会很乱,多了端口也需要预留很多。

  

  基于tag标签的vlan

linux day25(特殊ip地址,子网划分,vlan,网络相关操作与配置)

 

 

    1,数据格式:

    因为802.1Q这个协议的规定,它把以太网的协议的数据帧进行了改动,源mak和目标mak,在这12个字节后加了4个字节的vlan标记,其中4个字节的vlan标记中,有12个比特位专门存vlanID,等于111111111111,等于2的12次方-1,等于一共4095,0到4095是4096个,但是有效值范围是1-4094。即802.1Q协议规定一台交换机最多划分4096个vlan(云计算时代根本不够用。后来出现vxlan)  

    注:802.1Q协议不是计算机内工作的,是交换机学会的协议,是在交换机里工作的。

     2,交互机的端口分为两类

      access口:连接计算机,就是计算机连接交换机的口,收的时候加上vlan标记,发的时候去掉vlan标记。

      trunk口:交换机彼此互连的端口,可以同时划分多个vlan,trunk收到的包,有vlan标记,是accrss口加的,它发的包不会去掉vlan标记,因为它是发给另一个交换机的,另一个交互机是靠vlan标记来知道广播给哪些端口的。(不能用accrss口来代替。)

     根据tag vlan图,假如电脑pc A-1要往外发数据包,个人计算机连接到交换机的access口,交换机accrss口会遵循802.1Q协议,首先物理层汇总,然后到数据链路层,把数据帧12字节后面加上4个字节的vlan标记,其中vlan标记里12个比特位写的是vlan id,假如就写个一,封好之后,转成物理层开始广播,只在属于vlan一里进行广播,和基于端口的目前一样,假如pc A-2收到这个包,首先到2号accrss口,它现在是收包,然后发给pc A-2计算机,accrss口在发包的时候,会把包拆开,看到802.1Q标记,然后看到其中12个比特位的vlan ID,是一,如果不是一,就不要,是一就发给pc A-2,但是发的时候会把这4个字节的vlan标签去除掉,再发给pc A-2,所以从始至终,计算机感觉不到vlan标记的存在。

    总结:accrss口,在收到计算机收到数据包时,会加上4个比特位的vlan标记,在发送包给计算机时,会去掉4个比特位的vlan标记。

     注意:一个accrss口只能划分给一个vlan,而一个trunk口可以同时划分给多个vlan。

     拓展:怎么把两个交换机做成一个交换机,需要各留一个trunk口,还需要各留一个备份线。

 

  A类,划分网络位少,主机位多,但凡划分一个网络位,一个网络里主机数非常多

  B类,适中,公司一般用B类,以后拓展,主机位够用。

  C类,划分的网络位多,主机位少,网络多,但是每个网络位的主机位只有0到255,因为0用来当网络地址,255用来当本网段的广播地址,1用来当网关地址,所以只有253个主机位能用。

  注:网络位就是能划分多少局域网,主机位是一个局域网有多少个机器可以连接使用。

 

 四,网络相关操作与配置

 网卡名字

linux day25(特殊ip地址,子网划分,vlan,网络相关操作与配置)

 

 查看主板上连接的网卡。(lspci | grep -i eth)

linux day25(特殊ip地址,子网划分,vlan,网络相关操作与配置)

 

 查看是否连接网线,link ok,代表连接 (mii-tool eth0),排除网线是否有问题。

linux day25(特殊ip地址,子网划分,vlan,网络相关操作与配置)

 

 ifconfig,查看所有激活的网卡信息。

ifconfig eth1 down 就是指定关闭网卡

ifconfig -a 查看所有的网卡信息,无论是否开启。

ifconfig eth0 查看指定网卡信息

ifconfig eth1 172.16.10.22/24 配置ip信息

ifconfig eth0:0 172.16.13.21/24 配置子端口,可以让一个网卡绑定多个ip地址(但是多个ip走的物理地址都还是一个网卡,正常一个网卡走一个网段的数据包。了解)

ifconfig eth0:0 down 或者ifconfig eth0:0 del,这是删除

ifconfig eth1 up 开启指定网卡

注意:ifconfig eth1 down/up,不会重置配置文件,而ifdown eth1和ifup eth1会重置配置文件。

ifconfig eth1 mtu 2000  修改网卡的mtu值,千兆网卡通常1500就够了,如果是光纤模块,也就是万兆网卡,可以调大。

 

linux day25(特殊ip地址,子网划分,vlan,网络相关操作与配置)

 

 网卡详细的配置信息分别代表什么意思:

第一行:eth0(网卡名),up(网卡开启状态),broadcast(网卡支持广播)running(正在运行)multicast(支持多播),mtu(一次传多少字节数据)

第二行:ipv4地址,本网段地址,全网广播地址

第三行:ipv6地址

第四行:网卡mak地址,网卡传输队列多长,最多1000个包

第五行:开机之后累计收了多少包,总共多少字节,合成多少字节

第六行:开机收包多少错误的包,crc校验不通过的包,溢出的包(缓冲区需要调大),真冲突

第七行:开机之后累计发包多少个

第八行,发包时候和上面收包一样。

 

ls;asdasda;pwd 把多个命令连接在一起,不管中间是否出错,都会执行

ls && sadasd && pwd 如果中间出错,第一个出错执行之后,后面不再执行

while true ;do   echo 123;echo 456;done (do和done中间的地方就是放循环执行的命令的地方)拓展:clear 清屏命令

 

ifconfig命令改的都是临时修改,想永久修改网卡配置文件,需要去修改配置文件。

vim /etc/sysconfig/network-scripts/ifcfg-eth0

linux day25(特殊ip地址,子网划分,vlan,网络相关操作与配置)

 

 第一行,类型,是不是以太网协议。

第四行,none,就是如果写了按写的来,没写的话就是dhcp自动获取

nm_controlled=no 通常改为no   这个进程在的时候网卡配置容易出问题。

linux day25(特殊ip地址,子网划分,vlan,网络相关操作与配置)

 

 也可以通过命令关闭这个进程。

倒数第6行,onboot=yes 启动网络服务的时候网卡是否被激活

然后是ip地址

子网掩码

网关地址

运营商dns地址,可以配多个,不过需要在配置文件里加上peerdns=yes,然后dns2=8.8.8.8当辅助dns

ipv6地址

拓展(cat /etc/resolv.conf 查看运营商地址,可以修改,也可以在网卡配置文件里修改。)

修改完配置文件,systemctl restart network,重启网络配置服务

 

 

五,路由

每键一个虚拟机,相当于机器,每建一个虚拟网络,会生成一个虚拟网卡,都相当于一台交换机。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

上一篇:嵌入式学习DAY25 --- 进程线程开始学习,进程的基本概念以及创建退出


下一篇:细说mysql replace into