手动配置IP

embedded/2025/2/13 14:34:56/

手动配置IP,需要考虑四个配置项:

四个配置项

IP地址、子网掩码、默认网关、DNS服务器

 IP地址:格式表现为点分十进制,如192.168.254.1

子网掩码:用于区分网络位和主机位 【子网掩码的二进制表达式一定是连续的(1)】
                   网络位:类似于身份证的前六位,表示自己所在的大区(网段)
                   主机位:精确到自己的主机

对于一个IP:192.168.254.1/16,根据子网掩码,可以得出它的网络位是192.168,得出网络位有什么用呢? 下面会说明

默认网关:对于不在一个大区(网段),A和B两个人想要直接进行消息交流,是行不通的【好比两个人不在一个群聊,怎么能在这个群里聊天呢?】,这个时候就需要中间人(同时加了所有的群),这样A能在群里艾特中间人,让中间人在B所在的群转发消息,这个中间人就是网关,当然更应该叫路由器【家庭网络中,默认网关就是路由器的IP】。
网关的作用就是帮助不同网段的用户来转发数据,网关本身也是个网络设备,有自己的地址,靠这个网络设备去往不同的网段。

DNS服务器:使得我们可以直接通过域名去访问目标,作用是帮我们将域名解析成IP地址。

两台主机AB通信的整个过程

比如A要个B发消息,首先是知道A,B的IP以及A本身的子网掩码,通过主机A的子网掩码,计算B的网络号,是否和自己在同一个网段,如果在同一个网段,那我们不需要网关/路由器,直接通过交换机就可以进行通信;如果不在同一个网段,那么我们就需要去找自己的网关/路由器(路由器本身有路由表,进行转发),如果不能帮我们转发(即路由表没有B的地址),则不通。

以上也充分说明了子网掩码的作用,用来计算是否在同一个网段。

对上面的过程进行概括就是两点:

用交换机组建一个同网段的局域网,不需要网关;
用路由器,组建一个不同网段的局域网,路由器充当两个网段的网关。

现在有这样一个场景:我不小心修改了子网掩码,发现有的网站能正常访问,有的不行,为什么?

根据我上面所说的过程,修改了子网掩码后,比如 192.168.254.1/16 -> 192.168.254.1/8,本来网段是192.168,但是现在误认为是192开头的都是,当发消息的目的地是192开头的,就不会去找网关,如192.200,则访问不了。
那如果是200.x.x.x,都能通,因为会正常找网关,所以造成了有的网站能访问....

对于同一网段下的主机,最好统一子网掩码,避免误判为同一网段或误判为不在同一网段,当然也有其他协议辅助,如ARP协议,如果B在同一网段下,通过ARP协议获得B的MAC地址,不在同一网段,则发给网关....

DNS解析域名的过程

先了解下域名的层级:

举例来说,www.example.com真正的域名是www.example.com.root,简写为www.example.com.。因为,根域名.root对于所有域名都是一样的,所以平时是省略的。

根域名的下一级,叫做"顶级域名"(top-level domain,缩写为TLD),比如.com.net

再下一级叫做"次级域名"(second-level domain,缩写为SLD),比如www.example.com里面的.example,次级域名是用户可以注册的;

再下一级是主机名(host),比如www.example.com里面的www,又称为"三级域名",这是用户在自己的域里面为服务器分配的名称,是用户可以任意分配的。

DNS服务器的分类:

  • 根 DNS 服务器。根 DNS 服务器提供 TLD 服务器的 IP 地址。目前世界上只有 13 组根服务器,我国境内目前仍没有根服务器。

  • 顶级域 DNS 服务器(TLD 服务器)。顶级域是指域名的后缀,如comorgnetedu等。国家也有自己的顶级域,如ukfrca。TLD 服务器提供了权威 DNS 服务器的 IP 地址。

  • 权威 DNS 服务器。在因特网上具有公共可访问主机的每个组织机构必须提供公共可访问的 DNS 记录,这些记录将这些主机的名字映射为 IP 地址。

  • 本地 DNS 服务器。每个 ISP(互联网服务提供商)都有一个自己的本地 DNS 服务器。当主机发出 DNS 请求时,该请求被发往本地 DNS 服务器,它起着代理的作用,并将该请求转发到 DNS 层次结构中。严格说来,不属于 DNS 层级结构。

过程:

     浏览器在本地会维护一个hosts列表,浏览器会先查看要访问的域名是否在hosts列表中,如果有的话,则直接返回IP地址记录。如果本地hosts列表内没有域名-IP 对应记录的话,那么就需要请求DNS服务了。
简要说一下:先去本地DNS服务器发送DNS请求,如果有本地缓存,则直接返回,否则向根服务器发请求,比如我要查看www.baidu.com(.root)域名的IP地址,则向.root根域名服务器查询,发现有com.root,并告诉本地服务器去com.root的顶级域服务器看看,然后知道了baidu.com.root可能在哪一个权威DNS服务器,并返回给本地DNS服务器,本地DNS又向指定的权威DNS服务器发DNS请求,结果找到了,并返回对于的IP地址。
本地服务器到本地DNS服务器式递归的,然后本地DNS服务器到根域名、顶级域名、权威DNS服务器都是迭代的,一步一步知道要找哪个域名服务器,并最终拿到IP地址。

迭代式:

现在,主机cis.poly.edu想知道gaia.cs.umass.edu的 IP 地址。假设主机cis.poly.edu的本地 DNS 服务器为dns.poly.edu,并且gaia.cs.umass.edu的权威 DNS 服务器为dns.cs.umass.edu

  1. 首先,主机cis.poly.edu向本地 DNS 服务器dns.poly.edu发送一个 DNS 请求,该查询报文包含被转换的域名gaia.cs.umass.edu

  2. 本地 DNS 服务器dns.poly.edu检查本机缓存,发现并无记录,也不知道gaia.cs.umass.edu的 IP 地址该在何处,不得不向根服务器发送请求。

  3. 根服务器注意到请求报文中含有edu顶级域,因此告诉本地 DNS,你可以向edu的 TLD DNS 发送请求,因为目标域名的 IP 地址很可能在那里。

  4. 本地 DNS 获取到了edu的 TLD DNS 服务器地址,向其发送请求,询问gaia.cs.umass.edu的 IP 地址。

  5. edu的 TLD DNS 服务器仍不清楚请求域名的 IP 地址,但是它注意到该域名有umass.edu前缀,因此返回告知本地 DNS,umass.edu的权威服务器可能记录了目标域名的 IP 地址。

  6. 这一次,本地 DNS 将请求发送给权威 DNS 服务器dns.cs.umass.edu

  7. 终于,由于gaia.cs.umass.edu向权威 DNS 服务器备案过,在这里有它的 IP 地址记录,权威 DNS 成功地将 IP 地址返回给本地 DNS。

  8. 最后,本地 DNS 获取到了目标域名的 IP 地址,将其返回给请求主机。

递归式:

参考:

DNS 原理入门 - 阮一峰的网络日志

DNS 如何将 xxxhub.com 转化为 IP 地址?


http://www.ppmy.cn/embedded/161889.html

相关文章

深入剖析 Apache Shiro550 反序列化漏洞及复现

目录 前言 一、认识 Apache Shiro 二、反序列化漏洞:隐藏在数据转换中的风险 三、Shiro550 漏洞:会话管理中的致命缺陷 四、漏洞危害:如多米诺骨牌般的连锁反应 五、漏洞复现:揭开攻击的神秘面纱 (一&#xff0…

Linux内核实时机制x - 中断响应测试 Cyclictest分析1

Linux内核实时机制x - 中断响应测试Cyclitest 1 实时性测试工具 rt-test 1.1 源码下载 1.下载源码: ~/0-code/5.15$ git clone git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git 正克隆到 rt-tests... remote: Enumerating objects: 5534, done. remot…

智能GUI Agent是什么,有什么应用领域

智能GUI Agent是什么 研究背景与目的:GUI长期主导人机交互,LLM特别是多模态模型的出现,为GUI自动化带来变革,催生了基于LLM的GUI智能体。这些智能体可理解自然语言指令,处理复杂GUI元素并执行操作,改变了用户与软件交互方式。论文旨在梳理该领域发展脉络,剖析关键要素,…

Django 项目自动化部署脚本全解析

在开发和部署 Django 项目时,我们经常需要执行一系列重复性的任务,如安装依赖、数据库迁移、创建管理员账号等。本文将详细介绍一个自动化部署脚本,帮助简化这些流程。 1. 脚本概述 1.1 主要功能 自动安装项目依赖执行数据库迁移创建超级管理员账号启动开发服务器提供详细…

在 Debian 12 中设置 Cron 作业(飞牛NAS定时自动重启实例)

在 Debian 12 中设置 Cron 作业是一个相对简单的过程,以下是详细的步骤和注意事项: 1. 安装 Cron Cron 通常在 Debian 系统中默认安装。如果未安装,可以通过以下命令安装: sudo apt-get update sudo apt-get install cron 2.…

k8s向容器内传文件与下载文件

1、下载&#xff1a; kubectl cp <namespace>/<pod-name>:<container-path> <local-path>示例&#xff1a; kubectl cp mynamespace/mypod:/tmp/testfile.txt ./testfile.txt如果 Pod 中有多个容器&#xff0c;可以通过 -c 标志指定容器: kubectl c…

数据仓库与数据挖掘记录 一

1.数据仓库&#xff08;Data Warehouse) 数据仓库是一个 面向主题&#xff08;subject-oriented&#xff09;、集成的&#xff08;integrated&#xff09;、非易失性&#xff08;nonvolatile&#xff09; 且 随时间变化&#xff08;time-variant&#xff09; 的数据集合&#x…

clone gerrit repos 到windows本地

按照正常步骤下载Git Bash, 然后在Gerrit上配置你自己的SSH&#xff0c;结果clone的时候一直报错 yougerrit.xxxx.com: Permission denied (publickey). fatal: Could not read from remote repository.Please make sure you have the correct access rights and the reposito…