Networking Notes: - Networking Notes: - OSI Model - Four DoD layers - TCP/IP Model - IP Addresses: - Concepts: - Resources: - DNS: - Concepts: - Resources: - Proxy server - Routing Bridging and NAT - Firewalls and Ports - References: ## OSI Model ## Four DoD layers -
***************************** ## TCP/IP Model - TCP/IP模型类似于OSI模型,具有一组层次。OSI有七层,而TCP/IP模型有四层。 - OSI模型和TCP/IP模型都是独立创建的。TCP/IP网络模型代表现实世界,而OSI模型代表理想化。
- 应用层: - 定义TCP/IP应用协议以及主机程序如何与传输层服务交互以使用网络。 - 协议:HTTP, FTP, SMTP, DNS - 传输层: - 在节点/计算机之间提供通信会话管理。定义在传输数据时使用的连接级别和服务状态。 - 协议:TCP, UDP, RTP - 互联网层: - 将数据打包成包含源地址和目标地址信息的IP数据报,这些信息用于在网络之间转发数据报。执行IP数据报的路由。 - 协议:IP, ICMP, ARP, RARP - 网络接入层: - 指定数据通过网络进行物理发送的细节,包括硬件设备如何电子信号化比特。 - 协议:以太网, 帧中继, RS-2
********************************************* ## IP Addresses: ### Concepts: - 每个连接到互联网的设备都有一个唯一的标识符。大多数网络今天,包括所有互联网上的计算机,都使用TCP/IP作为在网络中通信的标准。在TCP/IP协议中,这个唯一的标识符就是IP地址。两种类型的IP地址是IPv4和IPv6。 - 这些八位字节部分被称为八位位组。因此,示例IP地址变为11000000.10101000.01111011.10000100。为了大多数用途,将二进制地址转换为点分十进制格式(192.168.123.132)。用点分隔的十进制数字是八位位组从二进制转换为十进制表示。 - 对于TCP/IP广域网(WAN)要作为一个网络集合高效工作,传递数据包的路由器并不知道目标数据包所属主机的确切位置。路由器只知道该主机属于哪个网络,并使用存储在其路由表中的信息来确定如何将数据包传递到目标主机的网络。一旦数据包被传递到目标网络,它将被传递给适当的主机。 - IPv4与IPv6 - IPv4使用32位二进制位来创建一个唯一的网络地址。IPv4地址由四个数字组成,这些数字用点分隔。每个数字是八位二进制数(8位二进制数也称为八位位组)的十进制表示。
- IPv6使用128位二进制位来创建一个唯一的网络地址。IPv6地址由八个十六进制数(十六进制数)组成,这些数用冒号分隔。包含所有零的数字组通常会被省略以节省空间,留下一个冒号分隔符来标记间隔。
- IP地址分类 - 通常,IPv4空间允许我们有0.0.0.0到255.255.255.255之间的地址。然而,这个范围内的某些数字被保留用于TCP/IP网络上的特定目的。这些保留是被TCP/IP地址权威机构——互联网分配号码管理局(IANA)所认可的。四个特定保留包括以下内容: - 0.0.0.0——这代表默认网络,即仅仅连接到TCP/IP网络的抽象概念。 - 255.255.255.255——这个地址被保留用于网络广播,即应该发送给网络上所有计算机的消息。 - 127.0.0.1——这被称为回环地址,意味着你的计算机识别自己的方式,无论它是否有分配的IP地址。 - 169.254.0.1到169.254.255.254——这是自动专用IP地址(APIPA)范围的地址,在计算机无法从DHCP服务器获取地址时自动分配。 - 其他IP地址保留用于子网分类。子网是一个较小的网络,通过路由器连接到较大的网络。子网可以有自己的地址系统,以便同一子网上的计算机可以快速通信,而不必将数据发送到更大的网络。TCP/IP网络(包括互联网)上的路由器配置为识别一个或多个子网并适当地路由网络流量。以下是一些保留用于子网的IP地址: - 10.0.0.0到10.255.255.255——这属于1.0.0.0到127.0.0.0范围内的A类地址,其中第一个比特是0。 - 172.16.0.0到172.31.255.255——这属于128.0.0.0到191.255.0.0范围内的B类地址,其中前两个比特是10。 - 192.168.0.0到192.168.255.255——这属于192.0.0.0到223.255.255.0范围内的C类地址,其中前三个比特是110。 - 组播(以前称为D类)——地址的前四个比特是1110,地址范围从224.0.0.0到239.255.255.255。 - 预留用于未来/实验用途(以前称为E类)——地址240.0.0.0到254.255.255.254。 - 最常用的前三类(在A、B和C类中)用于创建子网。稍后,我们将看到子网如何使用这些地址。IANA在Internet工程任务组(IETF)文档RFC 5771中概述了组播地址的具体用途。然而,自其1989年的RFC 1112文档中保留该块以来,它尚未为E类地址指定用途或未来的计划。在IPv6之前,互联网充满了关于IANA是否应将E类地址释放供一般使用的辩论。 - 子网掩码 - 第二项,TCP/IP工作所需的,是子网掩码。子网掩码由TCP/IP协议用来确定主机是在本地子网还是远程网络。 - 在TCP/IP中,IP地址中用于网络和主机地址的部分不是固定的,所以除非你有更多的信息,否则无法确定上述网络和主机地址。这些信息由另一个32位数字——子网掩码提供。在这个例子中,子网掩码是255.255.255.0。除非你知道255在二进制表示中等于11111111;所以子网掩码是:11111111.11111111.11111111.00000000 - 将IP地址和子网掩码对齐,可以分离出网络和主机部分: - 11000000.10101000.01111011.10000100 -- IP地址(192.168.123.132) - 11111111.11111111.11111111.00000000 -- 子网掩码(255.255.255.0) - 子网掩码中的前24位(子网掩码中的一的数量)被标识为网络地址,子网掩码中剩余的8位(子网掩码中的零的数量)被标识为主机地址。这给出了以下内容:11000000.10101000.01111011.00000000 -- 网络地址(192.168.123.0)00000000.00000000.00000000.10000100 -- 主机地址(000.000.000.132) - 所以现在你知道了,在这个使用255.255.255.0子网掩码的例子中,网络ID是192.168.123.0,主机地址是0.0.0.132。当数据包到达192.168.123.0子网(来自本地子网或远程网络),并且目标地址是192.168.123.132时,你的计算机将从网络接收并处理它。 - 几乎所有的十进制子网掩码都转换为二进制数,左边全为1,右边全为0。一些其他常见的子网掩码如下:| 十进制 | 二进制 | |------------------|-----------------------------------| | 255.255.255.192 | 11111111.11111111.11111111.11000000 | | 255.255.255.224 | 11111111.11111111.11111111.11100000 | - 子网划分 - A类、B类或C类TCP/IP网络可以通过系统管理员进一步划分或子网划分。随着你协调互联网的逻辑地址方案(抽象世界的IP地址和子网)与现实世界中使用的物理网络,这种划分变得必要。 - 分配了一块IP地址的系统管理员可能正在管理那些组织方式不容易适应这些地址的网络。例如,你有一个宽域网,有150台主机分布在三个网络(在不同城市)并通过TCP/IP路由器连接。这三个网络各有50台主机。你被分配了C类网络192.168.123.0。(为了说明,这个地址实际上并不在互联网上分配的范围内。)这意味着你可以使用192.168.123.1到192.168.123.254之间的地址为你的150台主机。 - 在你的示例中不能使用的两个地址是192.168.123.0和192.168.123.255,因为带有所有零和所有一的主机部分是无效的。零地址无效是因为它用于指定网络而不是主机。255地址(在二进制表示中,主机地址为所有一)用于广播一个在网络上的每台主机的消息。请记住,在任何网络或子网中的第一个和最后一个地址不能分配给任何单独的主机。- 现在你应该能够为254台主机分配IP地址。如果所有的150台计算机都在一个网络上,这可以很好地工作。然而,你的150台计算机分布在三个独立的物理网络上。与其为每个网络请求更多的地址块,你将网络划分为子网,这样可以使用一个地址块在多个物理网络上。- 在这种情况下,通过使用一个子网掩码,使网络地址变大并使可能的主机地址范围变小,你将网络划分为四个子网。换句话说,你正在“借用”通常用于主机地址的一些位,并将其用于地址的网络部分。子网掩码255.255.255.192为你提供了四个每包含62个主机的网络。这是因为二进制表示中,255.255.255.192等同于1111111.11111111.1111111.11000000。最后八位字节的前两位成为网络地址,因此你得到了额外的网络00000000(0)、01000000(64)、10000000(128)和11000000(192)。 (一些管理员只使用两个子网使用255.255.255.192作为子网掩码。有关此主题的更多信息,请参阅RFC 1878。)在这四个网络中,最后6个二进制位可以用于主机地址。- 使用子网掩码255.255.255.192,你的192.168.123.0网络则变成四个网络:192.168.123.0、192.168.123.64、192.168.123.128和192.168.123.192。这四个网络的有效主机地址分别为:- 192.168.123.1-62 - 192.168.123.65-126 - 192.168.123.129-190 - 192.168.123.193-254-再次记住,二进制主机地址全为1或全为0是无效的,所以你不能使用末尾八位字节为0、63、64、127、128、191、192或255的地址。- 你可以通过查看两个主机地址192.168.123.71和192.168.123.133来了解这一点。如果你使用默认的C类子网掩码255.255.255.0,则这两个地址都在192.168.123.0网络上。然而,如果你使用子网掩码255.255.255.192,则它们位于不同的网络;192.168.123.71位于192.168.123.64网络,192.168.123.133位于192.168.123.128网络。- 默认网关 - 如果TCP/IP计算机需要与另一个网络上的主机通信,它通常会通过一个称为路由器的设备进行通信。在TCP/IP术语中,指定在主机上的路由器,连接主机的子网与其他网络的是默认网关。本节解释了TCP/IP如何确定是否将数据包发送到其默认网关以到达网络上的另一台计算机或设备。- 当主机尝试使用TCP/IP与另一台设备通信时,它会执行一个比较过程,使用定义的子网掩码和目标IP地址与子网掩码和自己的IP地址进行比较。这个比较的结果告诉计算机目的地是一个本地主机还是远程主机。- 如果这个过程的结果确定目的地是一个本地主机,那么计算机将简单地将数据包发送到本地子网。如果比较的结果确定目的地是一个远程主机,那么计算机将把数据包转发到其TCP/IP属性中定义的默认网关。然后由路由器负责将数据包转发到正确的子网。### 资源:- 什么是计算机网络以及如何真正理解它们- 了解TCP/IP寻址和子网划分基础知识- IP地址指南- 端口转发是什么及其用途是什么?- 端口转发入门 ********************************************* ## DNS:### 概念:- 域名系统(DNS)是一个分布式目录,将人类可读的主机名(如www.dyn.com)解析为机器可读的IP地址(如50.16.85.103)。DNS也是一个关于域名的关键信息目录,例如邮件服务器(MX记录)和发送验证(DKIM、SPF、DMARC)、TXT记录的域名所有权验证,甚至SSH指纹(SSHFP)。- 每个连接到互联网的设备都有一个唯一的IP地址,其他机器用这个地址找到该设备。DNS服务器消除了人类记忆IP地址(如192.168.1.1,在IPv4中),或更复杂的新的字母数字IP地址(如2400:cb00:2048:1::c629:d7a2,在IPv6中)的需要。- DNS是如何工作的?- DNS解析的过程涉及将主机名(如www.example.com)转换为计算机友好的IP地址(如192.168.1.1)。每个互联网设备都会分配一个IP地址,而这个地址对于找到适当的互联网设备是必要的——就像街道地址用于找到特定的房子一样。当用户想加载一个网页时,必须在用户输入浏览器的内容(example.com)和定位example.com网页所需的机器友好地址之间进行转换。- 为了理解DNS解析背后的流程,有必要了解DNS查询必须经过的不同硬件组件。对于网络浏览器来说,DNS查找是在“后台”进行的,除了最初的请求外,不需要用户的计算机进行任何交互。- 加载网页涉及4个DNS服务器:- DNS递归器 - 递归器可以被看作是一个图书管理员,被要求去图书馆的某个地方找一本书。DNS递归器是一种接收来自客户端机器(如网络浏览器)的应用程序查询的服务器。通常递归器负责进行额外的查询以满足客户端的DNS查询。- 根域名服务器 - 根服务器是将人类可读的主机名翻译成IP地址的第一步。它可以被看作是图书馆中的索引,指向不同的书架——通常它作为一个参考指向其他更具体的地点。- 顶级域名服务器(TLD) - 顶级域名服务器(TLD)可以被看作是图书馆中的一排书架。这个名称服务器是搜索特定IP地址的下一步,它托管主机名的最后一部分(在example.com中,TLD服务器是“com”)。- 权威名称服务器 - 这个最终的名称服务器可以被看作是一本字典,在一排书架上,其中特定的名字可以被翻译成它的定义。权威名称服务器是名称服务器查询的最后一步。如果权威名称服务器有访问请求的记录,它将返回请求的主机名的IP地址给DNS递归器(图书管理员)最初发出的请求。- DNS记录 - A记录:- A记录,也称为主机记录,包含一台计算机的ipv4地址。当DNS客户端向DNS服务器查询A记录时,DNS服务器将查询中的主机名解析为IP地址。AAAA记录与此类似,但包含的是ipv6地址而不是ipv4。- PTR记录:- PTR记录是A记录的反向记录。它包含一台计算机的名称,可用于将IP地址解析为主机名。- NS记录:- NS记录或名称服务器记录是一个指向DNS名称服务器(在这个区域)的记录。你可以通过不同的NS记录列出你DNS区域的所有名称服务器。- 胶A记录:- 将NS记录的名称映射到IP地址的A记录被称为胶记录。- SOA记录:- 区域的SOA记录包含关于该区域本身的元信息。SOA记录的内容在关于区域传输的部分中详细解释。每个区域只有一个SOA记录。- CNAME记录:- CNAME记录将一个主机名映射到另一个主机名,从而创建现有主机名的一个别名。邮件服务器的名称通常被别名为mail或smtp,而Web服务器的名称被别名为www。- MX记录:- MX记录指向SMTP服务器。当你向另一个域发送电子邮件时,你的邮件服务器需要目标域邮件服务器的MX记录。### 资源:- 什么是DNS - AWS- 什么是DNS - Cloudflare- DNS:为什么重要以及它是如何工作的- DNS术语、组件和概念入门- 审查DNS概念 ******************************************** ## 代理服务器 - HTTP代理是什么以及它是如何工作的?简单的图示如下:|客户端<--->代理<--->服务器| |(浏览器)-------------------(Web服务器)|HTTP请求从客户端发送到代理服务器的端口8080。代理服务器随后向目标站点发起一个新的HTTP请求。根据配置,代理通常会在HTTP请求中添加“X-Forwarded-For”头部。目标网站的日志文件会显示代理的IP地址,但可能会或不会被配置为记录“X-Forwarded-For”地址。几年前很流行,现在仍然存在。然而,大多数情况下,代理服务器已经被内置在路由器中的NAT所取代。我们偶尔还会出于非常特定的用途使用代理服务器,比如在黑客/安全社区中,主要是为了隐藏连接方的身份。在内部(在一个网络内),它可以用作缓存代理(如Squid)非常有用。例如,当我们的许多网络计算机尝试进行Windows更新时,代理服务器可以缓存GB级的数据。
文件一次性和节省带宽。********************************************** ## 路由、桥接和NAT ### NAT NAT(网络地址转换)背后的主要动机来自于网络应用程序和用户数量的不断增加,以及有限的公共IPv4地址池。NAT使内部网络中的主机能够访问外部网络。NAT不仅解决了IPv4地址短缺的问题,还解决了安全漏洞问题,因为NAT阻止了外部网络上的设备直接与使用私有地址的内部网络主机通信。#### 私有IP地址虽然公有IP地址用于互联网上的直接通信,并且由专门的组织管理和分发,但私有IP地址不用于互联网上的直接通信,并且可以在内部网络中随意分配给任何人。因此,只要不属于同一个内部网络,一个私有IP地址可以分配给多台机器。- 预留的私有IP地址- 类A:- 10.0.0.0 - 10.255.255.255- 类B:- 172.16.0.0 – 172.31.255.255- 类C:- 192.168.0.0 – 192.168.255.255NAT通常在诸如路由器或防火墙之类的网络出口设备上实现。内部网络可以是一个企业或家庭。因此,当你在家里使用电脑并与朋友聊天时,数据包会被发送到你家里的路由器,在那里配置了NAT。对于来自内部网络(家庭)并去往外部网络(互联网)的流量,NAT会将源IP地址(私有)转换为你计算机的特定公共IP地址,这样你就可以与公共或外部网络进行通信。反之亦然,当流量来自外部网络并去往内部网络时,NAT会将目标IP地址(公共)转换为特定的私有IP地址。#### 静态NAT与动态NAT当一个私有IP地址链接到一个固定的IP地址时,这称为静态NAT,因为它是一对一模式。而在动态NAT中,一个私有IP地址映射到一组公共IP地址。静态NAT可能会导致IP地址浪费,因为公共IP地址总是为特定主机保留,无论它们是否在线。然而,动态NAT临时分配一组地址中的随机IP地址给主机。当后者不再在线时,动态NAT释放之前被占用的IP地址,然后该地址可供其他用户使用。#### NAPT和Easy IP尽管如此,动态NAT远非完美,因为它不处理端口号转换。这就是NAPT(网络地址和端口转换)发挥作用的地方,因为它使一个公共IP地址通过端口映射多个私有IP地址。在这种模式下,IP地址和传输层端口号都被转换,以便具有不同源端口号的不同私有地址被映射到具有不同源端口号的同一公共地址。Easy IP也同时转换IP地址和传输层端口号。但是,Easy IP适用于公共IP地址不固定的场景,例如在通过DHCP(动态主机配置协议)从私有网络的出口设备动态获取公共IP地址的情况下。********************************************* ## 防火墙和端口*********************************************** ******************** ## 参考资料:- 面向DevOps的网络
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。