前言:最近面试让我很奔溃,甚至每一次面试前会产生恐惧心理,什么问题都会涉及,技术岗不仅仅是技术问题,还有对业务的更深层次的理解。好在每次结束以后,不断复盘让我发现了自己的不足,并及时修正改进。前途漫漫,什么时候能收到属于我自己的offer!言归正传,我会在接下来的更新运维岗位频繁问到的的问题!路漫漫其修远兮,大家循序渐进慢慢来。
在解读ipv4和ipv6前,先总结一下TCP原理吧,作为人工智能的学生,专业课尽学机器学习,深度学习,数字图像处理了,也不能说没用,对于八股文盛世的时代,本科学历想找工作,这些专业课大概率用不上。没有系统地学习操作系统,数据结构等计算机专业课,在面试过程中也吃了不少亏,在大厂这一方面,基本没戏,所以我还得哼哧哼哧补。
TCP(大部分岗位上面都会写要求了解TCP原理,非常重要):
TCP/IP网络模型是一组四层通信协议,描述如何通过网络在计算机之间打包、寻址、传输、路由和接收数据通信。
以下是TCP/P网络模型的四层 :
应用层:每一应用具有用于通信的规范,以便客户端和服务器可以跨平台通信。常用的协议有SSH、HTTPS(安全Web)、FTP(文件共享),以及SMTP(电子邮件递送)等。
传输层:TCP和UDP是传输层协议。TCP是可靠连接导向型通信,而UDP属于无连接数据报协议。应用协议可以使用TCP或UDP端口。常用和已注册的端口列表位于/etc/services文件中。
当数据包在网络上发送时,服务端口和IP地址组合形成套接字。每个数据包具有一个源套接字和目标套接字。此信息可以在监控和过滤网络流量时使用。
互联网层:互联网层或网络层将数据从源主机传送到目标主机。IPv4和IPv6协议是互联网层协议。每一主机具有IP地址和前缀,用于确定网络地址。路由器用于连接网络。
链路:链路层或介质存取层提供与物理介质的连接。最常见的网络类型是有线以太网(802.3)和Wi-Fi(802.11)。每一物理设备具有一个媒体访问控制(MAC)地址,也称为硬件地址,用于标识局域网络段中数据包的目的地。
网络接口名称以接口类型开头:
以太网接口以en开头
WLAN接口以wl开头
WWAN接口以ww开头
在类型之后,接口名称的其余部分将基于服务器固件所提供的信息,或由PCI拓扑中设备的位置确定。
oN表示板载设备,其唯一索引为N,来自服务器的固件。eno1名称是板载以太网设备1。
sN表示这是一个位于PCI热插拔插槽N中的设备。例如,ens3代表PCI热插拔插槽3中的以太网卡。
pMsN表示这是一个位于插槽N中总线M上的PCl设备。wlp4s0接口是位于插槽0中PCI总线4上的WLAN卡。如果该卡是一个多功能设备(例如配有多个端口的以太网卡,或是具有以太网外加其他功能的设备),也可能会在设备名称中看到fN。enp0s1f0接口是插槽1中总线0上的以太网卡的功能0。可能还有一个名为enpes1f1的接口,它代表了同一设备的功能1。
持久命名意味着为系统上的网络接口设置名称时,即使添加或删除硬件,接口的名称也不会改变。持久命名的一种行为是,具有单一接口的系统将使用硬件信息方案生成设备名称,而不会使用eth0内核命名方案。
IPv4:
IPv4地址是一个32位数字,使用点号分隔的四个十进制八位字节(取值范围从0到255)来表示。此类地址分为两个部分,即网络前缀和主机编号。网络前缀标识唯一的物理或虚拟子网。主机号标识子网上的特定主机。同一子网中的所有主机具有相同的网络前缀,可以无需路由器而直接彼此通信。网络网关连接不同的网络,网络路由器通常充当子网的网关。
在原始的IPv4规范中,允许的网络前缀是具有单一来源和目的地的单播数据包的三种固定大小之网络前缀可以是8位(A类)、16位(B类)或24位(C类)。如今,网络前缀中的位数是可变的,这意味着前缀可以是受支持范围内的任何数字,这种较新的规范称为无类域间路由(CIDR)。虽然不再使用固定地址类,但许多网络专业人员仍然使用原始的A、B或C类名称来指代具有8、16或24位网络前缀的网络。
IPv4子网和子网掩码
子网掩码(netmask)是一个二进制掩码,其长度指示属于标识子网的网络前缀的位数。由于IPv4地址的长度始终为32位,因此网络掩码较长的子网可用于标识主机的位比较少,这意味着可能的主机数也比较少。网络掩码较短的子网将有更多位可用于标识主机,因此可能的主机数更多,子网也更大。
子网掩码以两种形式之一来表示,这两种形式都是常规使用的。第一种形式称为CIDR表示法,它附加一个正斜杠()和一个最大32的整数,表示二进制掩码中的位数。第二种表示法是将二进制掩码
中的位数显示为十进制格式的四个8位八进制数。
IPv4路由
网络数据包在子网中从主机移动到主机,并通过路由器从网络移动到络。每个主机都有一个路由表,它决定哪个网络接口可以正确发送数据包到特定网络。路由表条目列出目的地网络、要使用的网络接口,以及将数据包转发到最终目的地的路由器IP地址。与目标地址匹配的路由表条目用于路由该流量。如果多个条目对目标地址有效,则使用前缀较长的条目。
如果目的地网络不匹配更具体的条目,则数据包将使用0.0.0.0/0默认条目进行路由。此默认路由指向主机可以访问的本地子网上的网关路由器。
当路由器收到并非寻址到自身的数据包时,路由器将根据自己的路由表转发流量。如果此路由器在目的地的子网上,转发可能会直接将数据包发送到目的地主机,或者再次将数据包转发到另一个路由器网络。路由器上的数据包转发将继续,直到数据包到达请求的目的地网络和主机。
IPv4地址和路由配置
服务器可以通过与DHCP服务器通信来自动配置其IPv4网络设置。本地DHCP客户端使用链路层协议查询子网,以查找DHCP服务器或代理,并协商在特定租用期内使用唯一地址和其他设置。客户端必须定期请求租用续订,以继续使用分配到的网络配置。
作为替代方案,可以将服务器配置为使用静态网络配置。静态网络设置读取自本地配置文件。使用的设置必须适合您的子网。请与网络管理员协调,以避免与同一子网中的其他服务器冲突。
IPv6网络
IPv6旨在大幅扩展可用设备地址的总数。IPv6用于企业网络和移动通信。大多数(若非全部)互联网服务提供商(ISP)广泛使用IPv6来给内部设备分配地址,以及用于客户设备动态分配。
IPv6也可以在双栈模式中与IPv4并行使用。一个网络接口可以具有多个IPv4或IPv6地址。红帽企业Linux默认在双栈模式下运行。
IPv6地址
IPv6地址是一个128位数字,通常表示为八组以分号分隔的四个十六进制半字节。每个半字节均表示4位的IPv6地址,因此每个组表示16位的IPv6地址。
2001:0db8:0000:0010:0000:0000:0000:0001
为了简化IPv6地址书写,不需要书写分号分隔的组中的前导零。但是,每个冒号分隔的组中必须至少写入一个十六进制数字。
2001:db8:0:10:0:0:0:1
IPv6子网
普通的IPv6单播地址分为两部分:网络前缀和接口ID。网络前缀标识子网。同一子网上的两个子网接口不可具有相同的接口ID,接口ID可标识子网上的特定接口。
与IPv4不同,IPv6具有一个标准的子网掩码/64,用于几乎所有的普通地址。在此情况下,128位地址的一半是网络前缀,另一半则是接口ID。使用64位主机地址时,单个子网理论上可以包含2^64个主机。
主机名和IP地址
IP地址在日常使用中并不方便。大多数人更喜欢使用主机名而不是数字字符串。Linux具有将主机名映射到IP地址的名称解析机制。
一种方法是在每个系统的**/etc/hosts** 文件中为每个主机名创建静态条目。使用此方法时,必须手动更新每台服务器的hosts文件副本。
配置后,可以利用域名系统(DNS)网络服务,从主机名查找地址(或从地址查找主机名)。DNS是提供名称解析映射的分布式服务器网络。要使名称解析发挥作用,主机必须配置为知道从何处联系名称服务器。名称服务器无需与主机位于同一子网上,但主机必须能够访问它。名称服务器配置通常通过DHCP来获得,或通过在**/etc/resolv.conf**文件中创建静态地址设置来获得。