如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情
对于一名合格的运维工程师而言,网络相关知识是必不可少的。尽管在实际工作中,不一定需要对网络设备(如交换机、路由器等)进行配置,但对于 IP 地址、子网掩码、网关、OSI 七层模型、DNS 解析流程以及 TCP 的三次握手和四次挥手等相关知识,还是需要有所了解的。接下来,上一篇文章咱们介绍了OSI七层模型,DNS解析流程,TCP3次握手,四次回收,接下来咱们学习一下IP地址的分类,子网掩码,网关等知识,把这些融会贯通,运维工程师需要储备的网络知识就差不多啦~~~
目录
💬欢迎交流:在学习过程中如果你有任何疑问或想法,欢迎在评论区留言,我们可以共同探讨学习的内容。你的支持是我持续创作的动力!
👍点赞、收藏与推荐:如果你觉得这篇文章对你有所帮助,请不要忘记点赞、收藏,并分享给更多的小伙伴!你们的鼓励是我不断进步的源泉!
🚀推广给更多人:如果你认为这篇文章对你有帮助,欢迎分享给更多对Linux感兴趣的朋友,让我们一起进步,共同提升!
一、IP地址常见分类:
#A类IP地址
一个A类IP地址是指, 在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。如果用二进制表示IP地址的话,A类IP地址就由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”。A类IP地址中网络的标识长度为8位,主机标识的长度为24位,A类网络地址数量较少,有126个网络,每个网络可以容纳主机数达1600多万台。
11111111 00000000 00000000 00000000
A类IP地址,前8位为网络号码,后24位为主机号码,每个网络大约共计1600万个IP可用,即255*255*255-2=16777212位;二进制表示为(00000001 00000000 00000000 00000001 - 01111111 11111111 11111111 11111110)(最后1位为广播地址)
#B类IP地址
一个B类IP地址是指,在IP地址的四段号码中,前两段号码为网络号码。如果用二进制表示IP地址的话,B类IP地址就由2字节的网络地址和2字节主机地址组成,网络地址的最高位必须是“10”。B类IP地址中网络的标识长度为16位,主机标识的长度为16位,B类网络地址适用于中等规模的网络,有16384个网络,每个网络所能容纳的计算机数为6万多台。
11111111 11111111 00000000 00000000
B类IP地址,前16位为网络号码,后16位为主机号码,每个网络最多支持255*255-2=65534位最后一个是广播地址(二进制表示为:10000000 00000000 00000000 00000001----10111111 11111111 11111111 11111110);最后一个是广播地址。
#C类IP地址
一个C类IP地址是指,在IP地址的四段号码中,前三段号码为网络号码,剩下的一段号码为本地计算机的号码。如果用二进制表示IP地址的话,C类IP地址就由3字节的网络地址和1字节主机地址组成,网络地址的最高位必须是“110”。C类IP地址中网络的标识长度为24位,主机标识的长度为8位,C类网络地址数量较多,有209万余个网络。适用于小规模的局域网络,每个网络最多只能包含254台计算机。192.168.16.X/24
C类IP地址,前24位为网络号码,后8位为主机位,每个网络最多支持255-1=254位最后一个是广播地址二进制表示为: (11000000 00000000 00000000 00000001 - 11011111 11111111 11111111 11111110)
#D类地址用于多点广播(Multicast)。
D类IP地址在历史上被叫做多播地址(multicast address),即组播地址。在以太网中,多播地址命名了一组应该在这个网络中应用接收
到一个分组的站点。多播地址的最高位必须是“1110”,范围从224.0.0.0到239.255.255.255。
#E类IP地址
以“llll0”开始,为将来使用保留
局域网使用c类网络最多
企业服务器使用子网划分最多
A类IP地址有最多可容纳1600万个IP
B类IP地址有最多可容纳6万多个IP
C类IP地址有最多可容纳254个IP
二、特殊的IP地址:
1.每一个字节都为0的地址(“0.0.0.0”)对应于当前主机;
2.IP地址中的每一个字节都为1的IP地址(“255.255.255.255”)是当前子网的广播地址;
3.IP地址中凡是以“11110”开头的E类IP地址都保留用于将来和实验使用。
4.IP地址中不能以十进制“127”作为开头,该类地址中数字127.0.0.1到127.255.255.255用于回路测试,如:127.0.0.1可以代表本机
IP地址,用“http://127.0.0.1”就可以测试本机中配置的Web服务器。
5.169.254.0.0~169.254.255.255,是开启了dhcp服务的设备但又无法获取到dhcp的会随机使用这个网段的ip
三、子网掩码:
子网掩码又叫网络掩码、地址掩码
上面我们说到IP地址分为网络号与主机号,但是路由如何区分网络号与主机号呢?就需要通过子网掩码。子网掩码必须与IP地址结合使用,A、B、C类的子网掩码分别为255.0.0.0,255.255.0.0与255.255.255.0(网络号字节为255,主机号字节为0)
也就是说给你一个IP地址,那么怎么知道它的网络号和主机号各是多少位呢?
如果不指定,就不知道哪些位是网络号、哪些是主机号,这就需要通过子网掩码来实现
子网掩码的重要作用:就是将某个IP地址划分成网络地址和主机地址两部分。
子网掩码的位数就是网络的位数。A类网络的网络位数是8位,子网掩码就是255.0.0.0,B类网络的网络位数是16位,子网掩码是255.255.0.0,C类是24位,255.255.255.0。
#不同子网下的主机是否能直接通信(是否在一个网段下)
假设两个IP地址分别是172.20.0.18和172.20.1.16,子网掩码都是255.255.0.0。
我们可以知道两者的网络标识分别是172.20.0(/16)和172.20.1(/8)无法直接通信,也就无法PING通。要想能相互通信,需要将子网掩码改成255.255.0.0(相当于将c类IP改为B类)
#如何理解172.20.1.0/18
11111111 11111111 11000000 00000000
255 255 128+64 0
子网掩码: 255.255.192.0
#为什么要进行子网划分?
一个大的地址范围区域,你不进行划分的时候,会造成地址浪费
一个大的地址范围区域,可能会产生大量广播风暴,影响主机性能
一个大的地址访问区域,可能会造成网关路由器负载过高
将一个大的网段切割成一个一个小的局域网段,就称为子网划分
一个网段中可以有多少个地址=2的n次方-2 n表示的就是这个网段中有多少个主机位
-2 表示网络地址不能用 表示广播地址不能用
一个局域网中的地址在使用时要预留一个作为网关地址
192.168.16.1-192.168.16.254 1或者254作为网关DHCP: 192.168.16.10-192.168.240
#子网掩码借位:
网络位向右移动,占用主机位,即向主机位借位,生成新的网络位
其中/16就表示了子网掩码所指定的网络位个数,A类一般是/8 B类一般是/16 C类/24
#计算可配置IP地址范围
运营商或者领导给我们一个IP地址加子网掩码我们必须要知道可配置的IP地址范围
116.63.0.10/29
子网掩码:
11111111 11111111 11111111 11111000
255 255 255 255-1-2-4=248
共7位可用,排除1位广播位
1作为网关
每7位为一组2-8,9-15,
116.63.0.9-116.63.0.14
网关: 116.63.0.9
这是一个超牛的换算网站,可以换算子网掩码有多少位
https://www.sojson.com/convert/subnetmask.html
四、子网掩码可用IP地址位数
可用 IP 地址位数:这是指在一个子网中,除去网络地址和广播地址后,可用于分配给主机的 IP 地址的数量。在 IP 地址的主机位部分,其位数决定了可用 IP 地址的数量。
关系推导
假设子网掩码中主机位的位数为,那么可用 IP 地址的数量为。这是因为主机位全为 0 时表示网络地址,主机位全为 1 时表示广播地址,这两个地址不能分配给主机使用。
例如,子网掩码为 255.255.255.0(二进制为 11111111.11111111.11111111.00000000),主机位有 8 位,那么可用 IP 地址数量为个。其中,网络地址是一个子网中的第一个 IP 地址,如对于子网 192.168.1.0/24(/24 表示子网掩码中前 24 位是网络位),192.168.1.0 是网络地址;广播地址是子网中的最后一个 IP 地址,这里是 192.168.1.255。
不同子网掩码下的可用 IP 地址情况
/24 子网掩码(255.255.255.0):主机位有 8 位,如前面所计算,可用 IP 地址数量为 254 个。这种子网掩码常用于小型局域网络,如家庭网络或小型办公室网络。在这样的网络中,一般有足够的 IP 地址分配给计算机、打印机等设备。
/23 子网掩码(255.255.254.0):主机位有 9 位,可用 IP 地址数量为个。这种子网掩码适用于稍大一些的网络,可能是一个中型企业的部门网络,需要更多的 IP 地址来容纳更多的设备。
/16 子网掩码(255.255.0.0):主机位有 16 位,可用 IP 地址数量为个。通常用于大型企业网络或者园区网络,能够为众多的子网和主机提供足够的 IP 地址空间。
子网掩码的网络位和主机位划分直接决定了可用 IP 地址的数量,在网络规划和 IP 地址分配过程中,需要根据实际的网络规模和需求来选择合适的子网掩码。
五、网关
网关(Gateway)又称网间连接器,就是一个网络连接到另一个网络的“关口”。
网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机(如附图所示)。网络B向网络A转发数据包的过程。
所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。
路由器: 华为 H3C cisco 锐捷 中兴 TPLINK(家用路由器).. 配置网关
三层交换: 开启路由功能 类似是一个路由器 访问控制ACL DHCP 配置网关
ROS: route OS 互联网公司路由器 网吧路由器
centos服务器作为路由器使用 安装iptables实现路由功能
六、网络相关命令:
ip add linux
ifconfig linux contos需要安装: net-tools,麒麟不需要
ping linux windows
nslookup linux
telnet
tracert -d www.baidu.com windows
[root@yunzhongziedu ~]# route -n #查看网关
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0
[root@yunzhongziedu ~]# ip route
default via 10.0.0.2 dev eth0
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.200
169.254.0.0/16 dev eth0 scope link metric 1002
给网卡配置多个IP地址: 临时重启失效 笔记
[root@yunzhongzi ~]# ip add add 10.0.0.201/24 dev eth0
删除临时IP:
[root@yunzhongzi ~]# ip address del 10.0.0.201/24 dev eth0
临时删除网关:
[root@yunzhongzi ~]# ip route del 0/0 via 10.0.0.2
配置临时的网关:
[root@yunzhongzi ~]# ip route add 0/0 via 10.0.0.2
配置临时的默认网关: 重启系统或者网卡配置失效
[root@db01 ~]# route add default gw 10.0.0.2
面试题: 如果上不网如何排查?给思路
1.ping
2.tracert
3.dns解析 nslookup www.baidu.com
1、tcpdump抓包
*抓包方式:wireshark抓包软件在Windows中使用*
*Linux抓包命令tcpdump是一个抓包工具,用于抓取互联网上传输的数据包*
tcpdump是一个用于截取网络分组,并输出分组内容的工具。凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具
tcpdump 支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息
tcpdump参数
-i #监听哪一个网卡
-n #不把ip解析成主机名
-nn #不把端口解析成应用层协议
-c #指定抓包的数量
-S #不把随机序列和确认序列解析成绝对值
-w #将流量保存到文件中,文件中的信息是无法直接查看的
-r #读取文件中的内容
-v #输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息。
-vv #输出详细的报文信息。
1、默认启动
tcpdump -vv #普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包。
2、过滤主机
tcpdump -i eth0 host 10.0.0.2 #抓取所有经过eth1,目的或源地址是192.168.1.1的网络数据
tcpdump -i eth1 src host 192.168.1.1 #指定源地址,192.168.1.1
tcpdump -i eth1 dst host 192.168.1.1 #指定目的地址,192.168.1.1
3、过滤端口
tcpdump -i eth1 port 80 #抓取所有经过eth1,目的或源端口是80的网络数据
tcpdump -i eth1 src port 80 #指定源端口
tcpdump -i eth1 dst port 80 #指定目的端口
4、协议过滤
tcpdump -i eth1 arp
tcpdump -i eth1 ip
tcpdump -i eth1 tcp
tcpdump -i eth1 udp
tcpdump -i eth1 icmp
tcpdump -i eth0 tcp port 21 -nn #抓tcp某端口的数据包
5、常用表达式
非 : ! or "not" (去掉双引号)
且 : && or "and"
或 : || or "or"
#抓取所有经过eth1,目的地址是192.168.1.254或192.168.1.200端口是80的TCP数
tcpdump -i eth1 '((tcp) and (port 80) and ((dst host 192.168.1.254) or (dst host 192.168.1.200)))'
#抓取所有经过eth1,目标MAC地址是00:01:02:03:04:05的ICMP数据
tcpdump -i eth1 '((icmp) and ((ether dst host 00:01:02:03:04:05)))'
#抓取所有经过eth1,目的网络是192.168,但目的主机不是192.168.1.200的TCP数据
tcpdump -i eth1 '((tcp) and ((dst net 192.168) and (not dst host 192.168.1.200)))'
xshell无法远程连接服务器如何排查:
[root@yunzhongzi ~]# tcpdump -nni eth0 port 2222
2、Linxu常用网络命令
更改网卡配置文件:
CentOS-7
默认内核参数(biosdevname=0(dell服务器默认是1),net.ifnames=1): 网卡名 "enp5s2"
biosdevname=1,net.ifnames=0:网卡名 "em1"
biosdevname=0,net.ifnames=0:网卡名 "eth0" (最传统的方式,eth0 eth1)
#定义网卡命令规则
在安装系统时,选择安装选项,按tab键,在跳出的一行内容后面添加net.ifnames=0 biosdevname=0
#命令行设置网卡名称规则(安装系统时已经更改,早晚能用上)
[root@yunzhongziedu ~]# cd /etc/sysconfig/network-scripts/ #修改网卡配置文件
[root@yunzhongziedu network-scripts]# mv ifcfg-ens33 ifcfg-eth0
[root@yunzhongziedu network-scripts]# sed -i "s#ens33#eth0#g" ifcfg-eth0
[root@yunzhongziedu ~]# vim /etc/sysconfig/grub #GRUB添加kernel参数
GRUB_CMDLINE_LINUX="...net.ifnames=0 biosdevname=0 quiet"
[root@yunzhongziedu ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
[root@yunzhongziedu ~]# reboot #重启系统生效
自动化Ansible eth0 ens33 自动化-->规范 标准
3、网络管理命令
1.ping
ping命令主要的功能是用来检测网络的连通情况和分析网络速度。
#常用选项
-t #持续ping,不中断。不加该选项只ping4个包。
-c #ping的包数,默认是4个。
-W1 #多长时间ping一次。
-f #极速ping
[root@yunzhongziedu ~]#ping -c2 -W1 www.baidu.com
PING www.a.shifen.com (110.242.68.4) 56(84) bytes of data.
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=1 ttl=128 time=16.3 ms
64 bytes from 110.242.68.4 (110.242.68.4): icmp_seq=2 ttl=128 time=11.1 ms
Linux系统ping: -c ping的个数-W1 延时1秒返回请求
[root@db01 ~]# ping -c1 -W1 www.baidu.com
2.nc
nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具
#常用选项
-l #用于指定nc将处于侦听模式。
-u #指定nc使用UDP协议,默认为TCP
-v #输出交互或出错信息,新手调试时尤为有用
-w #超时秒数,后面跟数字
-z #表示zero,表示扫描时不发送任何数据
3.nmap
Nmap即网络映射器对Linux系统/网络管理员来说是一个开源且非常通用的工具。Nmap用于在远程机器上探测网络,执行安全扫描,网络审计和
搜寻开放端口。
#常用选项
-p #指定端口号
-p22 #单个端口
-p22,80 #多个端口
-p1-1000 #1到1000之间的端口
企业案例:
写一个脚本 探测自己所有的服务器上开放的服务以及端口 并且计算一些每个服务占用所有服务的百分比
70台服务器
每台运行的服务
并且计算服务所占用所有服务的百分比
4.telnet
一种远程登录的工具。同样可以检查某个主机是否开启某个端口
#用法
[C:\~]$ telnet 10.0.0.200 22
Connecting to 10.0.0.99:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
SSH-2.0-OpenSSH_7.4
5.netstat
打印网络连接、路由表、tcp11种状态。
#常用选项
-l #只显示监听套接字。
-n #不做名字解析
-t #显示tcp端口
-u #显示udp端口
-p #显示pid和程序名字
-r #显示路由表
-a #显示所有的套接字
[root@db01 ~]# netstat -tnulp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 114456/nginx: maste
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 114426/sshd
tcp6 0 0 :::80 :::* LISTEN 114456/nginx: maste
tcp6 0 0 :::22 :::* LISTEN
6.ss
跟netstat命令差不多。
#常用选项
-l #只显示监听套接字。
-n #不做名字解析
-t #显示tcp端口
-u #显示udp端口
-p #显示pid和程序名字
-r #解析主机名
-a #显示所有的套接字
7.tracert
(windows) 路由跟踪(检查你与目标之间每个路口是否畅通)
#常用选项
-d #禁止把IP解析为对应的域名(主机名)
C:\Users\yunzhongzi-lidao996>tracert -d www.baidu.com
通过最多 30 个跃点跟踪
到 www.a.shifen.com [110.242.68.3] 的路由:
1 1 ms 1 ms 2 ms 192.168.11.1
2 2 ms <1 毫秒 5 ms 192.168.1.1
3 4 ms 3 ms 3 ms 221.218.208.1
4 2 ms 8 ms 6 ms 61.148.162.57
5 3 ms 7 ms 4 ms 202.106.34.1
6 4 ms 3 ms 3 ms 202.96.12.1
C:\Users\yunzhongzi-lidao996>ipconfig/flushdns
Windows IP 配置
已成功刷新 DNS 解析缓存。
cmd---->mstsc 调出远程桌面
8.traceroute
路由跟踪(检查你与目标之间每个路口是否畅通)
#常用选项
-n 禁止把IP解析为对应的域名(主机名)
在Linux系统中使用:
[root@yunzhongziedu ~]#traceroute -n -I www.baidu.com
traceroute to www.baidu.com (110.242.68.4), 30 hops max, 60 byte packets
1 10.0.0.2 0.216 ms 0.176 ms 0.100 ms
2 192.168.11.1 25.034 ms 24.795 ms 24.615 ms
3 192.168.1.1 22.107 ms 21.941 ms 21.748 ms
9.iftop
iftop界面说明:
[root@yunzhongzi ~]# yum -y install iftop
界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。
中间的<= =>这两个左右箭头,表示的是流量的方向。
TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量
#常用选项-i #设定监测的网卡-B #以bytes为单位显示流量(默认是bits)-n #使host信息默认直接都显示IP-P #使host信息及端口信息默认就都显示-m #设置界面最上边的刻度的最大值,刻度分五个大段显示
按q退出监控。
yum -y install dstat
dstat -nf
4、网络重点小结
1.网线 水晶头 光纤 网线种类
2.交换机
3.路由器 网关 静态路由 动态路由 不同网段如何通信
4.数据封装解封装 七层模型
5.OSI七层模型 TCP/IP四层 重点
6.TCP三次握手 重点
7.TCP四次挥手 重点
8.UDP和TCP特点
9.IP地址分类
10.子网掩码
11.子网划分 给一个IP+掩码 可以计算出可用的IP地址 重点
12.DNS解析流程 重点
13.TCP11种状态
14.常用网络命令 重点
ip a
ifconfig
ping
traceroute
nslookup
netstat
iftop
route -n
ip route
route add default gw 10.0.0.2 # 笔试题
ip route add 0/0 via 10.0.0.2
ip add add 10.0.0.201/24 dev eth0 # 企业中用到
tcpdump
ss
dstat
telnet
windows:
ping
nslookup
tracert
ipconfig
ipconfig/flushdns
运维必备的网络知识的分享到此结束,下次给大家带来点好玩的东西~~~~
想成为大佬,就要从小白开始,从0开始,一点一点的积累,慢慢成长,明天你就是大佬!!想学习更多麒麟操作系统的知识,关注小屁,让你成为运维老鸟~~~~~