Centos7#网络协议、IP、MAC、路由

网络协议基础知识

1、 OSI七层模型
  应用层:针对于应用约定的标准
    HTTP:超文本传输协议 Telnet:远程协议 OICQ:qq的协议
    HTTPS:安全超文本传输协议 SMTP\POP3:简单邮件传输协议(发)\邮局协议(收)
  表示层:约束数据格式,负责格式转化,加密以及解密
  会话层:建立、维护、解除会话,数据的传输通道
  传输层:约定数据采用何种方式进行传递
    TCP:传输控制协议,实现数据的可靠传输
    UDP:用户数据报协议,实现数据的快速传输,不可靠
    传输控制协议TCP (Transmission Control Protocol):一种面向连接的协议,提供可靠的传输服务,通过重传机制,实现数据的可靠传输。
    用户数据报协议 UDP (User Datagram protocol):一种非面向连接的协议,提供不可靠的传输服务
    网络协议是网络上所有设备(网络服务器、计算机及交换机、路由器、防火墙等)之间通信规则的集合
  网络层:提供ip地址(ip地址,用于在网络中唯一的标识一台设备,作用于网络与网络间的通信,提供路由和选路)
  数据链路层:提供MAC(物理)地址,用于在一条链路上唯一的标识一台设备,作用于网络内的通信。MAC(物理地址):烧写在网卡,全球唯一。MAC地址的有效范围仅限于本网络。
  物理层:约定接口类型,传输速度,线缆针脚等。

交换机:位于OSI的第二层(数据链路层) ,交换机RJ45接口特别多,局域网内部通讯
  路由器:位于OSI的第三层(网络层),路由器RJ45接口特别少,因特网通讯,隔离广播域
  网关:网络的出口

2、TCP\IP四层模型
  应用层:将OSI上三层融合,用于产生需要传递的数据
  传输层
  网络层
  网络接口层:将OSI下两层融合

3、数据的发送和接收
  发出数据是对数据进行封装,从应用层穿衣服(衣服穿完,从物理层的线路发出去)
  接收数据是对数据进行解封装,从物理层脱衣服
  http client ——————>Router ——————> http server
  (http://www.baidu.com) 因为数据为http 所以数据要求为可靠的传输 ,由传输层对数据封装TCP形成数据包
  应用层产生一个数据,向外发送一个请求百度的指令(DATA→(到达传输层,加一个 tcp)TCP+DATA→形成数据段→IP+TCP+DATA(到达网络层,+IP,IP地址包含源ip地址和目的ip地址)→形成数据包→帧头+IP+TCP+DATA+帧尾(到达数据链路层 +帧头、帧尾,进一步形成数据帧,帧头里有源MAC和目的MAC{通过ARP获取})→形成数据帧(数据链路层对数据包进一步封装帧头和帧尾,形成数据帧)→(物理层将数据帧转化为比特流(到达物理层,一串二进制数),从网卡接口发出)

应用层(表示层、会话层)产生一个数据
  到了传输层+tcp或者udp传输方式,形成数据段
  到了网络层+IP头,形成数据包
  到了数据链路层+MAC帧头帧尾,形成数据帧
  到了物理层将数据帧转化成比特流

4、服务端口
  DNS:域名服务器(保存域名和IP地址之间的对应关系) 数据库
  端口号:0-65535 (在传输层中) 实际可用1-65534
  ftp 20、21 ssh 22 Telnet 23 DNS 53 HTTP、Niginx 80 NTP 123/udp HTTPS 443 rsyslog 514 NFS 2049/tcp mysql 3306 redis 6379 Weblogic 7001 php 9000 tomcat 8080(8005、8009) zabbix 10050 10051
  用来区分不同的应用程序。

5、获取mac地址
  如何获取目的MAC:先发送一个ARP 请求(ARP地址解析协议 ARP relay→ARP应答)通过IP地址获得目标设备的MAC,获得后再次访问不需要再次广播获取。
  ARP工作原理:ARP request 请求的目标MAC是FF-FF-FF-FF-FF-FF(广播MAC),源MAC 是自己的MAC ;收到ARP request 将自己的MAC封装到ARP relay 中,以单播的形式返回。
  ARP伪造网关

ARP是通过IP地址来获得目标设备的MAC协议,源设备以广播的形式发送ARP request 目标设备收到后,把自己的MAC封装到ARP relay中,以单播的形式返回。
arping -I 网卡 + 当前主机在一个局域网的对方的IP地址
[[email protected] ~]# arping -I ens33 10.11.67.102
Unicast reply from 10.11.67.102 [00:21:CC:65:81:F1] 1.021ms

6、TCP建立连接三次握手
Centos7#网络协议、IP、MAC、路由

TCP断开连接四次挥手
Centos7#网络协议、IP、MAC、路由

7、ICMP协议,侦测远程主机是否存在
禁用ping功能:echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
启用ping功能:echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

IP、MAC、路由基础知识

我常用的命令格式

临时添加ip:ip a a 10.11.67.31/24 dev ens33
删除临时ip:ip a d 10.11.67.31/24 dev ens33

添加临时默认路由:ip route add default via 10.11.67.31 dev ens33
删除临时默认路由:ip route del default via 10.11.67.31 dev ens33

反正也是临时添加ip和路由,删不删除的无所谓了

========================================================

1、查看ip和mac
  [[email protected] ~]# yum -y install net-tools
  [[email protected] ~]# ifconfig
  [[email protected] ~]# ip a(=ip addr)

查询mac地址和ip地址的对应关系,只能在同一个网段内
  [[email protected] ~]# arping -I 网卡 + 当前主机在一个局域网的对方的IP地址
  [[email protected] ~]# arping -I ens33 10.11.67.102
  Unicast reply from 10.11.67.102 [00:21:CC:65:81:F1] 1.262ms

[[email protected] ~]# arp -a (显示查看高速缓存中的所有项目)
  ARP(地址解析协议)地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。arp -a是显示查看高速缓存中的所有项目。ARP缓存是个用来储存IP地址和MAC地址的缓冲区,其本质就是一个IP地址 → MAC地址的对应表,表中每一个条目分别记录了网络上其他主机的IP地址和对应的MAC地址。每一个以太网或令牌环网络适配器都有自己单独的表。当地址解析协议被询问一个已知IP地址节点的MAC地址时,先在ARP缓存中查看,若存在,就直接返回与之对应的MAC地址,若不存在,才发送ARP请求向局域网查询。

2、IP配置
  ①、查看ip地址
  [[email protected] ~]# ifconfig //查看所有网卡
  [[email protected] ~]# ifconfig ens33 //单独查看eth0
  [[email protected] ~]# ip a //查看所有网卡
  [[email protected] ~]# ip a s ens33 //单独查看ens33,s=show
  ②、配置IP(临时) 
  [[email protected] ~]# ifconfig ens33 192.168.42.250/24 //写子网掩码,覆盖
  [[email protected] ~]# ifconfig ens33:0 192.168.42.250/24 子网掩码可以不写 ,追加
  [[email protected] ~]# ip a a 10.11.67.31/24 dev ens33 //常用的添加临时ip命令
  [[email protected] ~]# ip a d 10.11.67.31/24 dev ens33 //常用的删除临时ip命令
  追加进去的IP地址也可以用于远程连接
  注意:
  addrIP地址 简写成a
  add 添加IP 简写成a
  del 删除IP 简写成d
  ③、启动网卡:
  [[email protected] ~]# ifconfig ens33 up
  [[email protected] ~]# ifup 网卡配置文件
  ④、关闭网卡:
  [[email protected] ~]# ifconfig ens33 down
  [[email protected] ~]# ifdown 网卡配置文件
  对于NAT模式的VMvare默认网关是2,虚拟机和本机的IP要在同一个网段

如果没有ifconfig和arp命令
  安装net-tools
  yum install net-tools

三种永久更改网卡配置的方法
  1、修改网卡配置文件,静态IP配置,动态IP配置
  2、图形化设置
  3、最小化页面nmtui

网卡配置文件位置 
  [[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
  多块网卡一起使用时,添加一个网卡,还要创建一个网卡配置文件
  重启网络服务: 配置文件修改后必须重起网络服务
  [[email protected] ~]# systemctl restart network

动态更改网卡配置文件
TYPE=“Ethernet”
NAME=“ens33”
DEVICE=“ens33”
BOOTPROTO=“dhcp”
ONBOOT=“yes”

静态更改网卡配置文件
TYPE=“Ethernet”
NAME=“ens33”
DEVICE=“ens33”
BOOTPROTO=“static”
ONBOOT=“yes”
IPADDR=192.168.42.88
NETMASK=255.255.255.0
GATEWAY=192.168.42.2
DNS1=114.114.114.114

3、路由配置
  NAT
  创建一个新的网络(能够跟主机互相通信,可以访问跟宿主机同一网段的所有服务器,除了宿主以外,其他服务器不能访问这个虚拟机,网关是2)
  桥接(vmware安装过程没有安装桥接网卡,网关是1)
  桥接模式的虚拟机的IP地址跟宿主机本身处于同一个网段.
  (10.11.59.110)(10.11.59.111)
  网关:跟宿主机也保持一直
  相当于独立于局域网内的一台机器,可以跟局域网任何的机器进行互相的通讯.
  仅主机
  虚拟机只能跟宿主机进行通讯

①、查看路由表
  [[email protected] ~]# ip r
  [[email protected] ~]# ip route
  路由表中的默认路由下一跳是本机网关10.11.67.1
  default via 10.11.67.1 dev ens33 proto static metric 100

②、添加默认网关
  [[email protected] ~]# ip r a default via 10.11.67.2 dev ens33
  [[email protected] ~]# ip route add default via 10.11.67.2
  路由表中没有的下一跳地址,会从默认网关出去(这个网卡最好写,防止多块网卡的情况)

③、删除默认网关
  [[email protected] ~]# ip r d default
  自己添加添加的默认网关会被删除

④、添加静态路由
  [[email protected] ~]# ip r a 10.18.45.0/24(网段) via 10.18.44.1(本机网关) dev ens33
 
  ⑤、删除静态路由
  [[email protected] ~]# ip r d 10.18.45.0/24

4、网络相关配置文件
  网卡配置文件
  [[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
  开启路由转发功能的主配置文件
  永久开启
  [[email protected] ~]# vim /etc/sysctl.conf
  net.ipv4.ip_forward = 1
  sysctl -p (检验是否成功)
  也可以在子配置文件中配置,效果一样,好处是便于分类
  在/etc/sysctl.d/目录下建一个以.conf为结尾的文件
  [[email protected] ~]# vim /etc/sysctl.d/sunlizhen.conf
  临时开启
  [[email protected]]# echo 1 > /proc/sys/net/ipv4/ip_forward
  此临时开启方法适合所有类似配置

5、LVS中用到的网络配置知识
  开启路由转发模式:
  echo “net.ipv4.ip_forward = 1” >> /etc/sysctl.conf
  sysctl -p → net.ipv4.ip_forward = 1

添加默认网关指向
  ip route add default via 192.168.138.131

添加ip地址和删除ip地址
  ip a a 192.168.138.139/24 dev ens33
  ip a d 192.168.138.139/24 dev ens33

负载均衡器和RS都使用同一个IP对外服务。但只有DR对ARP请求进行响应,所有RS对本身这个IP的ARP请求保持静默。也就是说,网关会把对这个服务IP的请求全部定向给DR,而DR收到数据包后根据调度算法,找出对应的RS,把目的MAC地址改为RS的MAC(因为IP一致)并将请求分发给这台RS

DR添加一个子网掩码长的VIP(模拟公网ip)
  RS需要在lo上绑定VIP,并且忽略arp广播,匹配精装ip地址灰包
  ip addr add dev lo 172.16.147.200/32 //在lo接口上绑定VIP
  echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore //忽略arp广播
  echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 匹配精确ip地址回包

因为:realServer的vip有了,接着就是同一个网段中拥有两个vip, 客户端在网关发送arp广播需找vip时需要让realServer不接受响应.
  解决:
  echo 1 >/proc/sys/net/ipv4/conf/eth0/arp_ignore
  arp_ignore 设置为1,意味着当别人的arp请求过来的时候,如果接收的设备没有这个ip,就不做出响应(这个ip在lo上,lo不是接收设备的进口)
  echo 2 >/proc/sys/net/ipv4/conf/eth0/arp_announce
  使用最好的ip来回应,什么是最好的ip?同一个网段内子网掩码最长的