network

编程知识 更新时间:2023-04-18 03:28:28

network

防火墙

EL7

  • 查看状态

    • systemctl status firewalld
  • 立即关闭

    • systemctl stop firewalld
  • 开机不启动

    • systemctl disable firewalld

EL6

  • 查看状态

    • /etc/init.d/iptables status
  • 立即关闭

    • /etc/init.d/iptables stop
  • 开机不启动

    • chkconfig iptables off

SELINUX

介绍

  • selinux(security enhanced linux)安全增强型linux系统,它是一个linux内核模块,也是linux的一个安全子系统
  • selinux的主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)

查看状态

  • getenforce

状态

  • Enforcing

    • 强制拦截

      • setenforce 1
  • Permessive

    • 提醒不拦截

      • setenforce 0
  • Disabled

    • 禁用

开机禁用

  • vim /etc/selinux/config

    • 将SELINUX=enforcing改为SELINUX=disabled
  • sed -i ‘/^SELINUX=/c SELINUX=disabled’ /etc/selinux/config

Linux网络

主机名

  • 查看

    • hostname
  • 配置

    • 临时,立即生效

      • hostname 主机名
    • 永久
      开机生效

      • EL7

        • vim /etc/hostname

        • hostnamectl set-hostname 主机名
          #立即生效

          • 相当于
            hostname 主机名
            hostname > /etc/hostname
      • EL6

        • vim /etc/sysconfig/network
  • 解析

    • DNS

      • 把域名解析成IP

      • 全域名

        • 主机名.域名

          • localhost.localdomain
          • www.baidu
    • 本地解析文件

      • Linux

        • /etc/hosts

          • 创建IP与主机名的映射关系
            192.168.116.10 name1 name2 …
      • Windows

        • Windows c:\windows\system32\dirvers\etc\hosts

IP、网关、DNS

  • 查看

    • 查看IP

      • 所有网卡

        • ip a #查看所有网络接口的信息

          • ip address show
        • ifconfig

      • 指定网卡

        • ip addr show dev eth0
        • ifconfig eth0
      • 网卡类型

        • lo

          • 本地回环网卡 127.0.0.1
        • veth3511e9a@if6

          • 容器的网卡名
        • vmnet1

          • vmware虚拟机的网卡名
      • hostname -I #仅查看物理网卡的IP地址

    • 查看网关

      • route -n

        • 访问外网的大门
    • 查看DNS

      • cat /etc/resolv.conf
      • 若网卡配置DNS则会自动替换成网卡中指定的DNS地址
  • 配置

    • 修改配置文件

      • vim /etc/sysconfig/network-scripts/ifcfg-ens33
    • 配置IP

      • 动态IP

        • TYPE=Ethernet # 以太网
          BOOTPROTO=dhcp # dhcp:自动获取
          DEVICE=ens33 # 网卡设备名称
          ONBOOT=yes # 是否开机激活
      • 静态IP

        • TYPE=Ethernet
          BOOTPROTO=none # none/static手动配置
          DEVICE=ens33
          ONBOOT=yes
          IPADDR=192.168.10.11 # IP地址
          GATEWAY=192.168.10.2 # 网关
          DNS1=114.114.114.114 # 主DNS
          #223.5.5.5-阿里 8.8.8.8-谷歌 114.114.114.114-电信
    • 关闭NetworkManager

      • systemctl stop NetworkManager;systemctl disable NetworkManager
    • 重启网络

      • systemctl restart network # 重启网络服务(不推荐,将重启所有网卡)
      • ifdown ens33; ifup ens33 # 重启ens33网卡(推荐,重启单个网卡)
    • 临时修改

      • ifconfig eth0 192.168.2.250/24 #覆盖原IP
      • ip a a 192.168.2.250/24 dev eth0 #增加IP a可写成addr
      • ip a d 192.168.2.8/24 dev enp0s25 #删除IP d可写成del

常见网络接口

  • enp3s0

    • 以太网接口 eth0,em1,ens33…
  • wlan0

    • 无线接口
  • lo

    • 本地回环接口 127.0.0.1 localhost。127开头的都是本机地址
  • virbr0

    • 桥接接口
  • vmnet1

    • vmware提供的
  • vmnet8

    • vmware提供的

扩展

  • 一个网卡绑定多个ip

    • 永久

      • 修改网卡配置,使用IPADDR1,IPADDR2…
    • 临时增加接口并设置IP

      • ifconfig ens33:0 192.168.1.12
      • ifconfig ens33:1 192.168.1.13
  • 临时配置ip地址

    • 添加网卡

      • 设置-添加-网络适配器
    • 设置IP

      • ifconfig ens34 192.168.1.14
  • 诊断工具

    • mii-tool

      • mii-tool ens33 # 查看物理连接,看是否出现link ok
    • ethtool

      • ethtool ens33 #网卡详细信息

网络模型

OSI七层(参考)模型

  • 应用层

    • 通过应用进程间的交互来完成特定网络应用
    • 应用层协议定义的是应用进程间通信和交互的规则
  • 表示层

    • 约束数据格式,负责格式转化,压缩和加密解密等
  • 会话层

    • 与其他接点建立、维护、解除会话
  • 传输层

    • 约定数据传递的方式(TCP/UDP),提供端对端的接口
  • 网络层

    • 为分组交换网上的不同主机提供通信服务

    • 提供逻辑地址(IP地址)、选路、数据从源端到目的端的传输

    • 主要设备

      • 路由器router

        • 隔离广播域,连接不同的网络实现跨网络通信。路由选择
        • 一个广播域就是一个网络,对应一个网络号
  • 数据链路层

    • 将上层数据封装成帧,用MAC地址访问媒介,错误的检测和修正

    • 主要设备

      • 交换机switch

        • 隔离冲突域,实现同一网络中不同设备间独立通信
        • 广播信息会在所有端口上转发
  • 物理层

    • 提供设备之间的比特流传输

    • 约定接口类型、传输速度、线缆针脚等

    • 主要设备

      • 集线器HUB

        • 有多个标准接口,里面是一根总线,解决设备接入网络困难的情况
        • CSMA/CD载波侦听多路访问/冲突检测

TCP/IP模型(实际使用)

  • 应用层

    • 应用层
    • 表示层
    • 会话层
  • 传输层

  • 网络层

  • 网络接口层

    • 数据链路层
    • 物理层

TCP/IP协议族

  • 应用层

    • HTTP超文本传输协议,HTTPS安全的超文本传输协议
    • SMTP/POP3邮件传输协议
    • TFTP,SNMP,FTP,DNS,Telent远程协议
  • 传输层

    • TCP

      • 传输控制协议
      • 面向连接,通过重传机制提供可靠的传输服务
    • UDP

      • 用户数据报协议
      • 非面向连接,提供不可靠的传输服务
      • 无需建立连接,一台服务器可向多台终端同时传输
  • 网络层

    • IP,RIP,OSPF,BGP,IGMP

    • ICMP

      • Internet控制报文协议

      • 用于在IP主机、路由器之间传递控制消息(PING)

      • 禁用PING

        • 临时

          • echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
        • 永久

          • vim /etc/sysctl.conf 添加net.ipv4.icmp_echo_ignore_all = 1
        • 解除

          • echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
  • 数据链路层

    • SLIP,CSLIP,PPP,ARP,RARP,MTU
  • 物理层

    • ISO2110,IEEE802,IEEE802.2

网络通信

网络名词

  • MAC地址

    • 物理地址,烧写在网卡,全球唯一,有效范围仅限于本网络
    • arping -I ens33 10.3.147.73 #查看IP地址对应设备的MAC地址
    • arp -a #arp缓存表
  • IP地址

    • 用于在网络中唯一的标识一台设备,作用于网络与网络间的通信
  • 网关

    • 网络的出口(去到另一个网络),即路由器的地址
  • DNS

    • 域名系统,保存域名和IP地址之间的对应关系的一个数据库
  • 端口号

    • 0-65535,实际可用1-65534,用来区分不同的应用层序,位于传输层

数据通信过程

  • 判断是否同一网段

    • 用掩码分别与源IP和目的IP相与,看得到的网络地址是否相同
  • ARP获取MAC

    • 同网段则直接获取目的主机MAC

    • 不同网段则获取网关MAC

    • ARP地址解析协议

      • 1、主机1携带自身IP1+MAC1广播发送ARP request请求(目标MAC为广播MAC:FF-FF-FF-FF-FF-FF)
      • 2、主机2收到request后将IP1+MAC1添加至ARP2缓存,再将自身IP2+MAC2单播响应主机1(目标MAC为ARP2中缓存的MAC1)
      • 3、主机1将IP2+MAC2缓存至ARP1 #步骤2中其他主机收到广播请求会丢弃,ARP欺骗则是攻击主机把自身MAC3回应给主机1伪造成IP2的MAC
  • 封装

    • PDU

      • 应用层产生数据data
    • 数据段

      • 传输层添加TCP/UDP头,SPORT+DPORT
    • 数据报文

      • 网络层添加IP包头,SIP+DIP
    • 数据帧

      • 数据链路层添加帧头和帧尾FCS,帧头包含SMAC+DMAC
    • 比特流

      • 物理层转化为二进制数从网卡接口发出
  • 传输

  • 解封装

    • 封装逆过程

通信安全

  • 加密

    • 单向加密

      • 又称为不可逆加密算法,在加密过程中不使用密钥,明文由算法处理成密文,密文无法解密
      • 一般适合于验证,在验证时重新输入明文,并经过同样的加密算法处理,得到相同的密文则认证
      • 通常用来传输类似用户名和密码,直接将加密后的数据提交到后台,后台不需要知道用户名和密码,直接将收到的加密后的数据存储到数据库
      • 常见的单向加密有:MD5, SHA, HMAC,CRYPT等
    • 双向加密

      • 对称加密

        • 加密和解密都是使用的同一个密钥,不区分公钥和私钥

        • 密钥,一般就是一个字符串或数字,在加密或者解密时传递给加密/解密算法

        • 优点

          • 算法公开、计算量小、加密速度快、加密效率高
        • 缺点

          • 在数据传送前,发送方和接收方必须商定好秘钥,双方都能保存好秘钥
          • 每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收发双方所拥有的钥匙数量巨大,密钥管理成为负担
        • 常用算法

          • DES、3DES、AES、 RC4、RC5、IDEA
      • 非对称加密

        • 需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公钥与私钥是一对
        • 公钥进行加密,只有私钥能解密;私钥进行加密,只有公钥能解密
        • 常用的非对称加密有:RSA, DH, DSA, ECC等
    • 公钥密码体制

      • 分为三个部分:公钥、私钥、加密解密算法。公钥和算法是公开的,私钥是保密的

      • 加密

        • 通过加密算法和公钥对明文进行加密,得到密文
      • 解密

        • 通过解密算法和私钥对密文进行解密,得到明文
    • 哈希算法

      • 将任意长度的信息转换为较短的固定长度的值,通常其长度要比信息小得多,且算法不可逆
      • 例如:MD5、SHA-1、SHA-2、SHA-256 等
    • 签名

      • 对信息做hash计算得到hash值(即指纹),再将指纹和指纹算法以私钥加密得到签名
      • 将信息和签名一起发送,收信方用公钥解密获得签名,再用签名中的指纹算法计算信息验证指纹是否正确,从而判断出信息是否被篡改
  • 数字证书

    • 构成

      • Issuer (证书的发布机构)

        • 指出是什么机构发布的这个证书(只是创建证书,不是证书的使用者)
      • Valid from , Valid to (证书的有效期)

        • 过了有效期限,证书就会作废,不能使用了
      • Public key (公钥)

        • 用来对消息进行加密
      • Subject (主题)

        • 证书的所有者,个人或者公司名称、机构的名称、公司网站的网址等
      • Signature algorithm (签名所使用的算法)

        • 使用证书发布机构的证书里面的公钥,根据这个算法对指纹进行解密。指纹的加密结果就是数字签名
      • Thumbprint, Thumbprint algorithm (指纹以及指纹算法)

        • 用来保证证书的完整性
    • 原理

      • 证书发布机构自己本身也有证书,由自己生成,内置在操作系统中并设为信任的数字证书
      • 证书发布机构用本身证书对应的私钥,加密所有他发布的证书的指纹,作为数字签名
      • server向证书发布机构申请证书,发布机构将带有签名的证书发布给server,并发送证书的私钥
      • server收到证书后投入使用,在通信过程开始时将证书发给client
      • client收到server证书后,在系统信任的数字证书中查找server证书的发布机构的证书,若无则说明server证书非法,若有则用发布机构的公钥解密获得签名,验证指纹正确则说明server证书未被篡改,server的公钥可用
  • 加密通信过程

    • client向server发送一个通信请求
    • server向client发送自己的数字证书。证书中包含server的公钥,私钥由server持有
    • client收到证书后,先验证数字证书,再发送一个随机的字符串给server让其用私钥去加密
    • server把密文返回给client,client用公钥解密得到明文,若明文与随机字符串一致,则server身份确认
    • 确认server身份后,client生成一个对称加密算法和密钥,用公钥加密发给server
    • server解密获得对称加密算法和密钥,后续通信过程均使用对称加密

IP

ipv4地址组成

  • 由4部分数字组成,用小数点隔开

    • 点分二进制

      • 每部分数字对应8位二进制
      • 11000000.10101000.00001010.00010100
    • 点分十进制

      • 将二进制数字换算成十进制
      • 192.168.10.20
  • 每个ip地址分为两部分

    • 网络位(NetID)

      • 表示其属于互联网中的哪一个网络
    • 主机位(HostID)

      • 表示其属于该网络中的哪一台主机

子网掩码

  • 为了区分IP地址中的网络位和主机位

  • 网络地址

    • IP的主机位全部取0
  • 广播地址

    • IP的主机位全部取1

IP地址划分

  • A类

    • 范围

      • 0.0.0.0–127.255.255.255
    • 掩码

      • 255.0.0.0
    • 保留地址

      • 0.0.0.0–0.255.255.255

        • 表示所有IP地址

        • 0.0.0.0

          • 当主机尚未被分配IP的时候,用于表示主机本身
          • 用作默认路由,表示”任意IPV4主机”
          • 用来表示目标机器不可用
          • 用作服务端,表示本机上的任意IPV4地址
      • 127.0.0.0–127.255.255.255

        • 环回地址loop back,只能由本机访问,外部无法访问
    • 私有地址

      • 10.0.0.0–10.255.255.255

        • 只能在局域网中使用
  • B类

    • 范围

      • 128.0.0.0–191.255.255.255
    • 掩码

      • 255.255.0.0
    • 保留地址

      • 169.254.0.0–169.254.255.255

        • 自动获取IP但又未找到可用DHCP时会从其中获得一个临时IP
    • 私有地址

      • 172.16.0.0–172.31.255.255
  • C类

    • 范围

      • 192.0.0.0-223.255.255.255
    • 掩码

      • 255.255.255.0
    • 私有地址

      • 192.168.0.0–192.168.255.255
  • D类

    • 范围

      • 224.0.0.0–239.255.255.255
      • 多播地址,不指向特定的网络
    • 多点广播地址

      • 用来一次寻址一组计算机,它标识共享同一协议的一组计算机
  • E类

    • 范围

      • 240.0.0.0–255.255.255.255
      • 保留为今后使用
    • 受限广播地址

      • 255.255.255.255
      • 不被路由发送,但会被送到相同物理网络段上的所有主机

网络类型

  • 有类网络

    • 也叫主类网络或标准网络
    • 指把IP地址能归结到的A类、B类、C类IP,使用的是标准的默认子网掩码
  • 无类网络

    • 相对于有类网络,无类网络IP地址的掩码是变长的
    • 在有类网络的基础上,拿出一部分主机ID作为子网ID
  • 子网

    • 有类网络划分成更小后的网络

    • 子网掩码长度大于相对应的有类网络

    • 子网划分

      • 子网数量

        • 2^n,n为掩码比相应有类网络多的位数
      • 每个子网可容纳主机数

        • 2^m-2,m为主机位数
  • 超网

    • 把多个小网络组合成一个大网络,称为超网
    • 子网掩码长度小于相对应的有类网络

路由

路由概念

  • 指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程

  • 基本动作

    • 通过网络传输信息
    • 确定最佳路径

路由分类

  • 静态路由

    • 手动配置的到目标网络的唯一路径
    • 网络结构发生变化后需手动修改
    • 合理的使用静态路由可以改进网络的性能
  • 缺省路由

    • 默认路由,即网关
    • 可以将所有找不到匹配路由的报文转发到指定的缺省网关
  • 动态路由

    • 由动态路由协议从其他路由器学到的到达目标网络的发送路径
    • 可以根据网络结构的变化动态地更新路由信息

路由表

  • 存储到达特定网络终端的路径

  • 若有相同条目

    • 掩码长度一样

      • 路由表中谁在上面用谁
    • 掩码长度不一样

      • 哪个掩码长用谁

路由操作

  • 查看

    • ip r
    • route -n
  • 临时

    • 添加路由

      • 静态

        • route add -net 192.168.10.0/24 gw 192.168.20.12
          添加 目标网络 掩码 下一跳
      • 缺省

        • route add default gw 192.168.10.12
    • 删除路由

      • 静态

        • route del -net 192.168.10.0/24
      • 缺省

        • route del default
    • 开启路由转发

      • echo 1 > /proc/sys/net/ipv4/ip_forward
  • 永久

    • 开启路由转发

      • vim /etc/sysctl.conf

    net.ipv4.ip_forward = 1

sysctl -p #重新加载配置文件

- 添加静态路由

	- el6

		- # vim /etc/sysconfig/static-routes
any  net 192.168.100.0/24  gw 192.168.10.12

	- el7

		- # vim /etc/sysconfig/network-scripts/route-网卡名称
192.168.10.0/24 via 192.168.20.1 

实验

  • 目标

    • 设计路由使得A和B相通
  • 规划

    • A

      • 192.168.10.11

        • route add -net 192.168.30.0/24 gw 192.168.10.20
    • R1

      • 192.168.10.20
        192.168.20.20

        • route add -net 192.168.30.0/24 gw 192.168.20.30
        • echo 1 > /proc/sys/net/ipv4/ip_forward
    • R2

      • 192.168.20.30
        192.168.30.30

        • route add -net 192.168.10.0/24 gw 192.168.20.20
        • echo 1 > /proc/sys/net/ipv4/ip_forward
    • B

      • 192.168.30.11

        • route add -net 192.168.10.0/24 gw 192.168.30.30
  • 测试

    • AB互ping

网络协议

TCP

  • 介绍

    • TCP(Transmission Control Protocol)传输控制协议
    • 提供面向连接的可靠的数据传输、适合传输大数据、速度慢
  • 报文

    • Seq

      • (Sequence Number)序列号,对报文编号,保障传输过程可靠
    • SYN

      • 值为1表示连接请求
    • ACK

      • (Acknowledgment Number)确认报文,值为Seq+1
    • FIN

      • 值为1表示断开连接请求
  • 建立连接3次握手

    • 第一次握手

      • 客户端发送SYN连接请求报文给服务器,SYN位置为1,Seq为x
      • 客户端进入SYN_SENT状态,等待服务器的确认
    • 第二次握手

      • 服务器收到SYN报文段,设置Ack为x+1对其进行确认
      • 同时,服务器还要发送SYN请求信息,将SYN位置为1,Seq为y
      • 服务器将SYN+ACK放到一个报文段发送给客户端,进入SYN_RCVD状态
    • 第三次握手

      • 客户端收到SYN+ACK报文段,将Ack设置为y+1发送给服务器对其进行确认
      • 客户端和服务器都进入ESTABLISHED状态
  • 断开连接4次挥手

    • 第一次挥手

      • 主机1设置Seq向主机2发送一个FIN报文段, 主机1进入FIN_WAIT_1状态
      • 主机1告诉主机2: 我没有数据要发送了,请求关闭连接
    • 第二次挥手

      • 主机2收到FIN报文段,向其回应ACK报文段,值为Seq+1;进入FIN_WAIT_2状态
      • 主机2回复主机1,我收到你的关闭请求了。此时主机2仍可发送数据
    • 第三次挥手

      • 主机2向主机1发送FIN报文段,请求关闭连接,同时主机2进入LAST_ACK状态
      • 主机2告诉主机1: 我也没有数据要发送了,请求关闭连接
    • 第四次挥手

      • 主机1收到FIN报文段,向其发送ACK报文段,进入TIME_WAIT状态
      • 主机2收到主机1的ACK报文段以后,就关闭连接
      • 主机1等待2MSL后依然没有收到回复,则证明主机2已正常关闭,主机1也关闭连接
  • TCP连接状态

    • LISTEN

      • 监听状态,侦听来自TCP端口的连接请求
    • SYN_SENT

      • 在发送连接请求后等待匹配的连接请求
    • SYN-RECEIVED

      • 在收到和发送一个连接请求后等待对连接请求的确认
    • ESTABLISHED

      • 代表一个打开的连接,数据可以传送给用户
    • FIN_WAIT_1

      • 等待远程TCP的连接中断请求,或先前的连接中断请求的确认
    • FIN_WAIT_2

      • 从远程TCP等待连接中断请求
    • CLOSE_WAITA

      • 等待从本地用户发来的连接中断请求
    • CLOSING

      • 等待远程TCP对连接中断的确认
    • LAST_ACK

      • 等待原来发向远程TCP的连接中断请求的确认
    • TIME_WAIT

      • 等待足够的时间以确保远程TCP接收到连接中断请求的确认
    • CLOSED

      • 没有任何连接状态

HTTP

  • 介绍

    • 超文本传输协议(Hypertext transfer protocol)是通过因特网传送万维网文档的数据传送协议
    • 不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等
    • HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型
    • HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上(HTTPS)
  • 特点

    • 无连接

      • 限制每次连接只处理一个请求。采用这种方式可以节省传输时间
      • 服务器处理完客户的请求,并收到客户的应答后,即断开连接
    • 媒体独立

      • 只要客户端和服务器知道如何处理,任何类型的数据都可以通过HTTP发送
      • 客户端以及服务器指定使用适合的MIME-type内容类型
    • 无状态

      • 对于事务处理没有记忆能力
      • 如果后续处理需要前面的信息,它必须重传,可能会导致传送的数据量增大
      • 另一方面,服务器如果不需要先前信息时, 它的应答会较快,效率较高
  • 请求报文(Request)

    • 请求行(request line)

      • 请求方法 空格 URL 空格 协议版本 回车符 换行符
    • 请求头部(header)

      • 头部字段名 :值 回车符 换行符
      • …(键值对组成)
    • 空行

      • 回车符 换行符
    • 请求数据

  • 响应报文(Response)

    • 状态行

      • 协议版本 状态码
    • 响应头

    • 空行

    • 响应体

  • 状态码

    • 1xx

      • 指示信息,表示请求已接收,继续处理
    • 2xx

      • 成功,表示请求已被成功接收、理解、接受

      • 200

        • 请求成功
    • 3xx

      • 重定向,要完成请求必须进行更进一步的操作

      • 301

        • 永久重定向。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
      • 302

        • 临时重定向。资源只是临时被移动,客户端应继续使用原有URI
    • 4xx

      • 客户端错误,请求有语法错误或请求无法实现

      • 403

        • 服务器理解请求客户端的请求,但是拒绝执行此请求.可能是没有权限访问或是人为设置不允许访问.
      • 404

        • 需要访问的文件不存在
    • 5xx

      • 服务器端错误,服务器在处理请求的过程中发生了错误

      • 500

        • 服务端代码异常,代码语法错误,连接不上数据库等
      • 502

        • 代理情况下会出现,一般是后端服务器出现问题,如PHP-FPM挂掉
      • 504

        • 后端服务器响应超时.如PHP-FPM的执行时间大于超时时间就会出现504
  • 请求方法

    • GET

      • 请求指定的页面信息,并返回实体主体。
      • GET请求会把请求的参数拼接在URL后面,以?分隔,多个参数之间用&连接
      • 如果是英文或数字,原样发送,如果是空格或中文,则用Base64编码
    • HEAD

      • 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
    • POST

      • 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中
      • POST请求会把提交的数据放在请求体中,不会在URL中显示出来
    • PUT

      • 从客户端向服务器传送的数据取代指定的文档的内容
    • DELETE

      • 请求服务器删除指定的页面。
    • CONNECT

      • HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
    • OPTIONS

      • 允许客户端查看服务器的性能
    • TRACE

      • 回显服务器收到的请求,主要用于测试或诊断
  • URL

    • 介绍

      • URL(Universal Resource Locator): 统一资源定位符. 用于定位资源
      • http://www.qf:8080/news/index.asp?boardID=5&ID=24618&page=1#name
    • 组成

      • 协议

        • url起始位置,本例"http"。"//"为分隔符
      • 域名

        • 从"//“到”:“,若无“:”,则到第一个”/“。本例"www.qf”。也可以是IP地址
      • 端口

        • 从":“到第一个”/“,若无”:“则采用默认端口。本例"8080”
      • 虚拟目录

        • 从第一个"/“到最后一个”/“。本例"news”
      • 文件名

        • 从最后一个"/“到”?“,若无”?“,则到”#“,若无”#“,则到url结束。本例"index.asp”
      • 参数

        • 从"?“到”#“,又称搜索/查询部分,”&“分隔多个参数。本例"boardID=5&ID=24618&page=1”
        • 从"#“到最后。本例"name”

HTTPS

  • 介绍

    • HTTPS:HyperText Transfer Protocol over Secure Socket Layer,可以理解为HTTP+SSL/TLS
    • SSL(Secure Socket Layer安全套接字层):位于 TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持
    • TLS(Transport Layer Security传输层安全):其前身是 SSL,目前使用最广泛的是TLS 1.1、TLS 1.2
  • HTTP缺陷

    • HTTP请求过程中,客户端与服务器之间没有任何身份确认的过程,数据全部明文传输,很容易遭到黑客的攻击

    • 传输风险

      • 窃听风险

        • 黑客可以获知通信内容
      • 篡改风险

        • 黑客可以修改通信内容
      • 冒充风险

        • 黑客可以冒充他人身份参与通信
  • 优点

    • 所有信息都是加密传播,黑客无法窃听
    • 具有校验机制,一旦被篡改,通信双方会立刻发现
    • 配备身份证书,防止身份被冒充
  • 缺点

    • SSL证书费用很高,以及其在服务器上的部署、更新维护非常繁琐
    • HTTPS降低用户访问速度(多次握手)
    • 网站改用HTTPS以后,由HTTP跳转到HTTPS 的方式增加了用户访问耗时(多数网站采用302跳转)
    • HTTPS涉及到的安全算法会消耗CPU资源,需要增加大量机器(https访问过程需要加解密)
  • 服务器部署

    • 准备证书文件

      • 经过CA中心签署好的证书文件

        • certs/www.qf.ctr
      • 申请签署的私钥文件

        • certs/www.qf.key
    • 修改配置文件

      • nginx

        • server {
          

      listen 443 ssl;
      server_name www.qf;

      ssl_certificate certs/www.qf.ctr;
      ssl_certificate_key certs/www.qf.key;

      }

      • apache

        • SSLCertificateFile   certs/www.qf.ctr
          

    SSLCertificateKeyFile certs/www.qf.key

网络工具

思科模拟器

  • 模拟路由实验

tcpdump

  • 语法

    • tcpdump [options]… [ expression ]

      • 抓包
  • 选项

    • -c

      • 指定要抓取的包数量
    • -i

      • 监听的接口。'any’表示所有网络接口

        • el7必须接-i指定网络接口,否则会报错
    • -n

      • 对地址以数字方式显式,否则显式为主机名
    • -nn

      • 除了-n的作用外,还把端口显示为数值,否则显示端口服务名
    • -Q

      • 指定要抓取的包是流入还是流出的包。可以给定的值为"in"、“out"和"inout”,默认为"inout"
    • -D

      • 列出可用于抓包的接口。将会列出接口的数值编号和接口名,它们都可以用于"-i"后
    • -F

      • 从文件中读取抓包的表达式。若使用该选项,则命令行中给定的其他表达式都将失效
    • -w

      • 将抓包数据保存到文件中
    • -r

      • 从给定的数据包文件中读取数据。使用"-"表示从标准输入中读取
    • -XX

      • 输出包的头部数据,会以16进制和ASCII两种方式同时输出,更详细
    • -v

      • 当分析和打印的时候,产生详细的输出
    • -vv

      • 产生比-v更详细的输出
    • -vvv

      • 产生比-vv更详细的输出
  • 表达式

    • 介绍

      • 用于筛选数据包,如果没有给定表达式,所有的数据包都将输出
      • 由一个或多个"单元"组成,每个单元一般包含ID的修饰符和一个ID(数字或名称)
    • 修饰符

      • type

        • 指定ID的类型

          • host

            • 默认值
            • host foo
          • net

            • net 172.16
          • port

            • port 80
          • portrange

            • portrange 6000-6008
      • dir

        • 指定ID的方向

          • src

            • "src foo"表示源主机为foo的数据包
          • dst

            • 目标
            • "dst net 128.3"表示目标网络为128.3的数据包
          • src or dst

            • 默认值
            • "src or dst port 22"表示源或目的端口为22的数据包
          • src and dst

      • proto

        • 通过给定协议限定匹配的数据包类型

        • 常用协议

          • tcp/udp/arp/ip/ether/icmp
        • 若未给定协议类型,则匹配所有可能的类型

          • tcp port 21
          • udp portrange 7000-7009
    • 操作符

      • 表达式单元之间连接
      • and / && / or / || / not / !
  • 示例

    • 抓取流经网卡ens33的所有的数据包

      • tcpdump -i ens33
    • 抓取所有进入或离开desk.qf的数据包

      • tcpdump host desk.qf
    • 抓取host1与host2之间通信的数据包

      • tcpdump host host1 and host2
    • 抓取10个由host1发送出去的包,并保存到send.cap文件中

      • tcpdump -c 10 src host host1 -w send.cap
    • 抓取目标端口为80的包

      • tcpdump -i ens33 tcp dst port 80
    • 抓取3个来源为192.168.10.32的ping包

      • tcpdump -i ens33 -c3 -nnvvv icmp and src 192.168.10.32
      • icmp不支持host这个type,故不能写成 icmp src 192.168.10.32

分析报文

  • wireshark
  • tcpdump抓包保存为文件,用wireshark打开

网卡bond

网卡绑定

  • 将多块网卡逻辑地连接到一起从而允许故障转移或者提高吞吐率的方法

工作模式

  • 0

    • round robin(轮循模式)

    • 特点

      • 所有链路处于负载均衡状态,轮询方式往每条链路发送报文,基于per packet方式发送
      • 增加了带宽,同时支持容错能力,当有链路出问题,会把流量切换到正常的链路上
      • 该模式需要交换机的支持
  • 1

    • active-backup(主备模式)

    • 特点

      • 一个链路处于主状态 ,一个处于从状态,所有流量都在主链路上处理,从不会有任何流量
      • 当主端口down掉时,从端口接手主状态
  • 2

    • load balancing (xor)
  • 3

    • fault-tolerance (broadcast)
  • 4

    • lacp
  • 5

    • transmit load balancing
  • 6

    • adaptive load balancing

实验

  • 添加两张网卡,采用同样的连接方式

  • 加载bonding模块

    • modprobe bonding
  • 配置bonding

    • vim /etc/sysconfig/network-scripts/ifcfg-bond0

TYPE=Bond
BOOTPROTO=static
DEVICE=bond0
BONDING_MASTER=yes
BONDING_OPTS=“mode=1 miimon=100”
ONBOOT=yes
IPADDR=1.1.1.12
GATEWAY=1.1.1.2
DNS=8.8.8.8
- # vim /etc/sysconfig/network-scripts/ifcfg-ens33

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

TYPE=Ethernet
BOOTPROTO=static
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes

  • 重启系统生效

    • 查看bond信息

      • cat /proc/net/bonding/bond0
    • 查看接口带宽

      • ethtool bond0
  • 测试

    • ping网关

    • 断开ens33

      • 观察ping结果
      • 查看bond信息网卡是否切换

更多推荐

network

本文发布于:2023-04-14 07:06:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/d40a3ef40879d74bf9bf6f4fdafc70ea.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:network

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 75120文章数
  • 14阅读数
  • 0评论数