美文网首页
六、网络基础知识

六、网络基础知识

作者: 么一凹喵6666 | 来源:发表于2020-02-06 10:54 被阅读0次

一、总结IP地址规划

  1. IP地址是一个32位的二进制数,书写时一般写成4段十进制,方便阅读
    例如 192.168.39.101 转换为二进制 :
    192 -> 11000000
    168 -> 10101000
    39 -> 00100111
    101 -> 01100101
    因此合并在一起: 11000000101010000010011101100101
    将上面的二进制数进而转换为10进制: 3232245605
    遇到ping 后面跟一个十进制数字的写法不要觉得奇怪:
    ping 3232245605 就等价于 ping 192.168.39.101

    image.png
  2. IP地址按照最早期的分类方法分为A B C D E 五类,分别是:
    A : 网络位是高8位,低24位为主机位,并且最高位固定为0
    网络位范围: 1 - 126 包含了126个网段 1600万个主机地址
    B : 网络位是高16位,低16位为主机位, 并且高2位固定为10
    网络位范围:128-191 包含64个网段 65534个主机位
    C : 网络位是高24位,低8位为主机位,并且高3位固定为 110
    网络位范围: 192-223 包含了32个网段 62个主机位
    D : 范围 224 - 239 一般作为组播地址使用
    E : 保留用作科学计算使用 240-254

3 IP地址划分子网
就是把一个大的网段 根据网络中的实际机器的数量,切分成若干个小的网段,是通过网络位向主机位借位实现:
案例: 10.0.0.0/8 给31个省份公司划分各自的子网
第一步:31省各占一个子网,向主机位借5位:
10.00000 000.0.0/13 山东
10.00001 000.0.0/13 广东
10.00010 000.0.0/13 河南
...
10.11111 000.0.0/13 云南
一共有32个子网,每个省的主机数 2^(32-13) - 2 = 2^19 -2

第二步:每个省份再根据本省地市,继续划分子网,例如广东21个地市:
比如广东分得的网段是 10.8.0.0/13
根据21个地市在10.8.0.0/13 此子网的基础上再向主机位借5位 :
10.00001 000.00 000000.0/18 广州
10.00001 000.01 000000.0/18 深圳
10.00001 000.10 000000.0/18 东莞
10.00001 000.11 000000.0/18 佛山
...
10.00001 101.01 000000.0/18 揭阳 --21个地市21个子网

第三步:每个地市再根据本地市的区进一步划分,比如深圳有6个区:
根据深圳的网段 10.00001 000.01 000000.0/18 向主机位借3位
10.8.01 000 000.0/21 南山区
10.8.01 001 000.0/21 罗湖区
10.8.01 010 000.0/21 福田区
10.8.01 011 000.0/21 宝安区
10.8.01 100 000.0/21 龙岗区
10.8.01 101 000.0/21 盐田区

第四步:深圳罗湖区在根据区内管辖的是个街道进一步划分子网:
罗湖区又划分为10个街道, 那么再向主机位借4位:
10.8.01 001 000.0 0000000/25 罗湖区桂园街道
10.8.01 001 000.1 0000000/25 罗湖区黄贝街道
10.8.01 001 001.0 0000000/25 罗湖区东门街道
...
10.8.01 001 101.0 0000000/25 罗湖区清水河街道

总结一下: 子网划分,通过不断向主机位借位,从省到地市到区到街道到办公大楼,层层往下划分

2、总结常见网络管理命令

ifconfig :

fconfig --> 默认什么选项也不加,会显示所有网卡的配置信息 
ifconfig eth1 down --> 在数据链路层 禁用eth1 , ip也自然没有了。看不见eht1 的信息,但是ping没问题  
ifconfig eth1 up --> 启用网卡 eth1 
ifconfig -a --> 显示所有的网卡信息,包括禁用的 ,但是看不到地址 

临时配置和清空地址:
ifconfig eth1 1.1.1.1/24  ---> 临时配置ip地址
ifconfig eth1 0.0.0.0 --> 临时清除地址 

对网卡增加多个子接口(配置多个ip地址)
ifconfig eth1:123 1.1.1.1/24 --> 网卡别名 eth1:123
ifconfig eth1:321 2.2.2.2/24 --> 网卡别名 eth1:321 
ifconfig eth1:123 down --> 禁用网卡,因为是临时设置的,相当于这个ip就永远取消了

ifdown eth1 -->  网络层down 但在链路层不会down,使用 ip a 查看仍然是UP 
ifup eth1 --> 启用 依赖于配置文件 

ip

ip是官方推荐的新的关于配置网络的命令,它的语法是调用具体的子命令实现具体某一功能的配置
ip 命令在CentOS 6 系统中默认是无法补全子命令的,可安装 bash-completion 包解决:
1 配置epel源: 
2 yum search bash -> bash-completion.noarch
3 yum install bash-completion.noarch  
4 exit 重新登录shell 
5 ip tab键 就能出来对应的补全命令

ip 常见用法: 
1 ip 在数据链路层的操作: 
    ip link   --> 显示链路层的信息
    ip link set eth1 down --> 数据链路层down 
2  ip 在网络层的操作
    ip addr -> 查看网络层信息 
    ip a --> addr简写为 a 
    ip addr add 192.168.39.100/24 dev eth0   --> 增加ip地址  
    注意: 每增加一个ip,都会新增ip对应的网络路由到路由表中
    ip a a 192.168.39.100/24 dev eth1 --> 简写形式  注意通过ip addr add 增加的地址 使用ifconfig是查看不到的,只能用ip a 命令查看
    给网卡起别名绑定新的ip地址: ifconfig 1.1.1.1/24 eth0:123
    ip addr del 192.168.39.100/24 dev eth0  --> 删除ip地址
    ip a del 192.168.39.100/24 dev eth0  --> 删除ip地址的简写形式 
3 如果一个网卡上设置了多个地址,通过flush全部清除:
    ip addr flush eth0 
    ip addr show eth0 :
            inet 192.168.34.100/24 scope global eth0
            inet 192.168.34.1/24 scope global secondary eth0
            inet 192.168.34.2/24 scope global secondary eth0
            inet 192.168.34.3/24 scope global secondary eth0
            secondary 是辅助地址,优先级没有 全局地址的高
    ip addr flush eth0 --> 清空eth0上的所有ip地址,包括使用配置文件配置的地址
4 指定IP的工作范围:
    网卡的ip默认情况下是工作在内核级别,在全局中有效, 换言之,如果一台主机有两个ip(ipa、ip2) ,C主机和ip1网段,但是同样也能ping的通主机的ip2 
    工作在全局 scope global 
    工作在链路层 scope link  --> ip地址在某块网卡上有效, 数据包如果从主机的其它网卡发来不会接收,因为地址不是在全局内有效 
    工作在主机侧: 数据包只能在自己本机上自己发送给自己才会有效 
5 加卷标 Label 
    ip a a 192.168.34.101/24 dev eth0 label eth0:2 
6 ip route 管理路由 
    ip route add 192.168.34.0/24 via 0.0.0.0 dev eth1 
    --> 为 eth1 添加网络路由 192.168.34.0/24  指向网关 0.0.0.0      
    ip route add default via 192.168.80.2  --> 删除默认路由 
    ip route del 192.168.34.0/24 via 0.0.0.0 dev eth1 --> 删除直连路由
    指定metric (相当于优先值)
    ip route add default via 192.168.80.2 metric 200  --> 配置网关,指定metric值为200 
 7 ip route flish dev eth0   ->     清空路由表

如果是物理上断开连接,即虚拟机右下角的网卡连接图标选断开连接:
那么ip地址会消失 ,链路层也处于down的状态

nmcli

centos 7 中推荐使用nmcli 工具管理网络的配置: 
nmcli device  --> 显示device 的状态 device对应数据链路层
nmcli device show eth0  --> 显示某一块网卡的详细信息 
nmcli connection  ---> 管理连接的 , 对应网络层,连接可以理解为配置文件,一个连接对应一套配置文件 
nmcli connection modify eth1 connection.id eth1-office  --> 修改配置文件中的NAME 字段

给网卡eth1新增一套配置,对应配置文件 ifcfg-eht1-home, 在企业的测试环境下用的比较多,必要时切换网络配置
nmcli connection add con-name eth1-home type ethernet ifname eth1 --> 多一套配置文件 ifcfg-eth1-home 
nmcli connection modify eth1-home ipv4.method manual connection.autoconnec yes  ipv4.addresses 10.0.0.100/8 ipv4.gateway 10.0.0.200 ipv4.dns 8.8.8.8 
    -->  配置文件中添加ip gw dns onboot选项等
nmcli connection up eth1-home  --> 启用NAME为eth1-home的网卡配置
nmcli connection show eth1-home--> 查看网卡的详细信息 包括dhcp的地址 用NAME字段调用  

增加一个地址:
nmcli connection modify eth1-home +ipv4.addresses 6.6.6.6/24  --> 是在eth1这一套配置上增加多一个ip地址,在配置文件 ifcfg-eth1中会多出来一行 IPADDR1=xx.xx.xx.xx 
nmcli connection up eth1 

nmcli connection reload  --> 重新加载connection 在 nmcli connection 中将重新读取增加的配置文件 
    cp /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-scripts/ifcfg-eth1-test 
    nmcli connection --> 新增的配置文件 ifcfg-eth1-test 并没有生效
    nmcli connection reload --> 重新加载后 ,新增的配置文件就会显示出来了
    nmcli connection up eth1-test1 

删除网卡的某一套配置:
nmcli connection delete  eth1-home     


利用上述方法,可以针对一块网卡配置多套配置文件,想切换到哪一套可以随时进行切换

管理路由的命令route

route -n  -->显示路由表, 所有地址用数字形式显示
1 添加主机路由:
   route add -host host_ip gw gw_ip dev device_name  
   网关的地址和主机的网卡应在同一个网段 
   route del  -host host_ip gw gw_ip
   主机路由 > 网络路由 > 默认路由

2 添加网络路由:
   route add -net host_ip/netmask [gw gw_ip] dev dev_name 
   注意,如果是添加直连同网段路由,则不用写 gw gw_ip 
   删除主机网卡所在网络路由会如何:
       
3 添加默认路由:
   route add defaultgw gw_ip  
   如果有多个默认路由, 会走优先级高的一条路由(即metric值较小的路由)     
   生产中,同一个网段中的主机如果没有路由信息,昭阳不能通信
   调整优先级 metric的值:
   route add -net host_ip/netmask gw gw_ip dev dev_name metric number 

netstat 命令, 用于查看网络的连接状态, 来自net-tools 是比较老的网络工具

常用选项: 
netstat -ntulp
-n 以数字显示IP和端口  
    命令有两部分内容组成,一部分是通过TCP/UDP网络协议建立的连接。还有一部分是走本地UNIX系统的套接字文件建立的连接
-t  列出和tcp协议相关的
-l 处于监听状态的  默认情况下,不加此选项显示的是所有已经建立的连接 
-u 列出udp协议相关的
-p 显示相关的进程以及PID 
-a 显示所有状态 (连接和监听)

查看端口号对应的应用程序:
    1 lsof -i :PID  
    2 netstat -ntupa 

查看网卡的统计信息:
netstat -i --> 显示所有网卡的接收和发送数据包的统计信息
netstat -I=eth0 --> 指定特定的某一块网卡的统计信息
watch -n1 netstat -Ieth0   --> 每隔1秒观察一次 
ifconfig -s eth0 --> statistics  网卡的统计信息
ping -f 192.168.34..100 -s 65507 

ss : 套接字统计信息

ss命令的常见用法和优势(socket statistics 套接字统计信息)
ss 命令 显示连接的状态信息 比 netstat 速度快
-n ip地址显示为数字格式
-t 指定tcp协议
-l 本地打开的所有端口  local 
-o state established 指定处在连接状态的
-pl 显示每个进程和端口号信息
-s 显示详细信息
常见用法:
ss -o state Established -npt
ss -nt  默认情况下就是正处于连接状态下的

3、给定IP地址167.77.88.99和掩码255.255.255.192,子网号是什么?广播地址是什么?有效IP地址是什么?

子网掩码 255.255.255.192 换成二进制: 11111111.11111111.11111111.11000000
因此可知道掩码为26位,用掩码和给定的IP地址做与运算后

    1. 88.0110 0011
      255.255.255.1100 0000
      167.77.88.01 000000/26 ==> 子网号: 167.77.88.64/26

广播地址, 即主机位全为0 :167.77.88.01 111111
得:167.77.88.127

有效的ip地址:
167.77.88.65 - 167.77.88.126

4、添加IP地址192.168.2.2/24到eth0网卡上

方法一:
ifconfig eth0 192.168.2.2/24 --> 临时有效
方法二:
ip addr add dev eth0 192.168.2.2/24
方法三:
nmcli conn modify eth0 +ipv4.address 192.168.2.2/24
nmcli conn up eth0

5、top,iostat,vmstat命令总结

6、找出CPU占用最多的前10个进程

7、crontab实现,在12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次 /usr/bin/backup

相关文章

网友评论

      本文标题:六、网络基础知识

      本文链接:https://www.haomeiwen.com/subject/mxjyxhtx.html