今日内容:
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图:
123端口是连电脑的,而4号端口是用来连接另一台交换机广播的,所以给1发广播包,会在自己交换机里划分好的1234广播,没个端口号都有标记,标记自己是哪个vlan,它只会在和1一样vlan里广播,到了4,会把包发到和4连接的第二台交换机的端口,然后进行第二次广播,只会在同样的vlan里广播。
基于端口的弊端是,如果不跨交互机无所谓,可以各自在各自的vlan里广播,如果跨交换机,那么每一个vlan就需要预留一个端口,就会很乱,多了端口也需要预留很多。
基于tag标签的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个主机位能用。
注:网络位就是能划分多少局域网,主机位是一个局域网有多少个机器可以连接使用。
四,网络相关操作与配置
网卡名字
查看主板上连接的网卡。(lspci | grep -i eth)
查看是否连接网线,link ok,代表连接 (mii-tool eth0),排除网线是否有问题。
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就够了,如果是光纤模块,也就是万兆网卡,可以调大。
网卡详细的配置信息分别代表什么意思:
第一行: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
第一行,类型,是不是以太网协议。
第四行,none,就是如果写了按写的来,没写的话就是dhcp自动获取
nm_controlled=no 通常改为no 这个进程在的时候网卡配置容易出问题。
也可以通过命令关闭这个进程。
倒数第6行,onboot=yes 启动网络服务的时候网卡是否被激活
然后是ip地址
子网掩码
网关地址
运营商dns地址,可以配多个,不过需要在配置文件里加上peerdns=yes,然后dns2=8.8.8.8当辅助dns
ipv6地址
拓展(cat /etc/resolv.conf 查看运营商地址,可以修改,也可以在网卡配置文件里修改。)
修改完配置文件,systemctl restart network,重启网络配置服务
五,路由
每键一个虚拟机,相当于机器,每建一个虚拟网络,会生成一个虚拟网卡,都相当于一台交换机。