Linux的DHCP工作原理和dns服务器

目录

一、DHCP原理

1.DHCP的好处

2.DHCP的分配方式

3.实验

二、dns服务器

1.什么是dns

2.dns域名解析

3、在内网搭建dns


一、DHCP原理

DCHP工作原理使用C/S架构 

(1)第一步,客户端广播发送一个discover报文寻找DHCP服务器。

(2)第二步,DHCP服务器收到discover报文后广播返回一个offer报文,里面包括可分配的ip、子网掩码、网关、广播形式等。

(3)第三步,计算机收到第一个DHCP服务器的offer报文后广播回复服务器一个request报文,告诉服务器请求分配的ip地址等。华为路由器此步骤为单播

(4)第四步,服务器以广播形式返回一个ACK确认报文并将可用ip地址和租约告诉客户端。

1.DHCP的好处

减少管理员的工作量

避免输入错误的可能

避免IP地址冲突
当更改IP地址段时,不需要重新配置每个用户的IP地址
提高了IP地址的利用率
方便客户端的配置

2.DHCP的分配方式

1.自动分配: 分配到一个IP地址后永久使用

2.手动分配:由DHCP服务器管理员专门指定IP地址

3.动态分配: 使用完后释放该IP,供其它客户机使用

3.实验

本地DHCP服务器搭建,需要在虚拟机中添加网络适配器

yum install dhcp -y ## 安装 dhcp 软件
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
#复制 配置文件的模板
vim /etc/dhcp/dhcpd.conf 
复制粘贴 5yy p
subnet 192.168.91.0 netmask 255.255.255.0 {
 range 192.168.91.50 192.168.91.80;
 option routers 192.168.91.2;
 option domain-name-servers 114.114.114.114; 
}
systemctl start dhcpd #启动服务
验证 打开 
win 调整 获取地址 为 dhcp
打开 cmd 命令
ipconfig/release #释放ip地址配置
ipconfig/renew #重新获取地址
ipconfig/all #显示所有的网卡配置
linux机器 
vim /etc/sysconfig/netwprk-scripts/ifcfg-ens33
BOOTPROTO =dhcp
ip配置删除
systemctl restart networ

二、dns服务器

1.什么是dns

DNS域名解析服务:是将域名和ip地址相互映射的一个分布式数据库。

正向解析:将域名解析为对应的ip地址。

反向解析:通过ip地址解析对应的域名

举例:www.baidu.com

.     根域

.com   顶级域 一级域

.baidu    二级域

www     主机名

一个 dns 服务器 只管 自己范围内的 解析

2.dns域名解析

一次dns 解析的过程:

我要访问 www.baidu.com 服务器

1.先看我本机的 /etc/hosts 文件,如果有直接访问, 如果没有就去找你设置的缓存dns服务器

2. 如果 缓存服务器有, 直接反馈结果(递归),如果没有就需要迭代查询, 直接去找 根域服务

 3.由于根域服务器 只能 解析根 无法解析 www.baidu.com 但是 根域服务器会让你去找 一级域服务器

4.一级域发现自己 也解析 不了, 让你去找二级域

 5.二级域发现这台服务器在自己的 管理范围内,直接反馈结果给 缓存服务器

6.缓存服务器 再交给 客户 权威dns服务器:只有他说了算,最后解析成功的服务器为权威服务器

3、在内网搭建dns

首先安装bind

# yum install bind

然后开始主配置文件

主配置文件修改:
vim /etc/named.conf
options {
listen-on port 53 {localhost;}  #监听localhost地址的UDP 53端口,localhost表示提供dns服务的ip,也可用any表示所有
listen-on-v6 port 53 {::1;}   #ipv6地址设置,若不适用可注释或删除
directory "/var/named";       #区域数据文件默认的存放位置
dump-file"/var/named/data/cache_dump.db";     #域名缓存数据库文件的位置
statistics-file "/var/named/data/named_stats.txt";    #状态统计文件的位置
memstatistics-file "/var/named/data/named_mem_stats.txt";    #内存统计文件的位置
allow-query { any; };  #允许使用本DNS解析服务的网段或ip地址,也可用any表示所有
}

区域配置文件修改:
vim /etc/named.rfc1912.zones
zone  "localhost"  IN {         #正向解析配置,localhost表示域名
type  master                    #类型为主DNS服务器
file “named.loopback”;         #指定区域数据文件为named.loopback
allow-update {none;};#表示若主dns故障切换到另一个指定的备用DNS服务器,none表示没有不指定
};
 
zone "1.0.0.127.in-addr.arpa" IN { #反向解析配置,1.0.0.127表示反向的ip,注意要反向写ip地址
type master;            #类型为主DNS服务器
file "named.loopback";  #指定区域数据文件为named.loopback
allow-update { none; }; #表示若主dns故障切换到另一个指定的备用DNS服务器,none表示没有不指定
};
制作区域数据配置文件lhj.com:
cd /var/named                 #进入区域数据配置文件模板文件目录
cp -p named.localhost lhj.com #名字为区域配置文件内写的名称lhj.com,注意拷贝时加 -p 保留权限,否则启动服务会报错不能识别
vim  /var/named/lhj.com       #修改复制好的区域数据配置文件
区域数据配置文件内容:
$TTL 1D    表示设置缓存解析结果的有效时间
​                  0    :serial  #更新序列号,一般是10以内的证书
 
​                  1D   :refresh #刷新时间,重新下载地址数据的间隔
 
​                  1H   :retry   #重试间隔,下载失败后的重试间隔
 
​                  1W   :expire  #失效时间,超过该时间仍然无法下载则放弃
 
@   IN SOA @  rename.invalid.   {   
#@为变量表示当前DNS域名注意必须从根域写起,IN表示使用INTERNET协议,SOA表示起始授权记录,rename.invalid. 表示邮箱
​         NS     @        #NS(nameserver)表示当前区域的DNS服务器的名称为@可修改
​         A     127.0.0.1 #A表示DNS服务器正向解析的地址为127.0.0.1 需要对应主配置文件内ip地址
​         AAAA  ;;1       #表示ipv6服务器地址,不用可删除
​         PTR             #表示DNS服务器反向解析,需要手动添加,默认没有
www  IN  A   127.0.0.2   #表示www服务的ip地址为127.0.0.2
mail  IN   A  127.0.0.3  #表示mail服务的ip地址为127.0.0.3
2  IN PTR  www.localhost. com    #表示dns服务器网段的2 ip对应为www域名
3  IN PTR  mail.localhost. com   #表示dns服务器网段的3 ip对应mail域名
}

systemctl restart named
重启服务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/320915.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络爬虫丨基于requests+mysql爬取猫眼热门电影数据做可视化分析

文章目录 写在前面实验描述实验内容遇到问题 写在后面 写在前面 本期内容:基于requestsmysql爬取猫眼热门电影数据做可视化分析 实验需求 anaconda丨pycharmpython3.11.4requestsmysql 项目下载地址:https://download.csdn.net/download/m0_68111267…

OceanBase 4.2特性解读:Show Trace全链路跟踪,助力快速问题定位与精准诊断

在分布式数据库环境下,慢 SQL 诊断是运维人员面临的一大挑战。在无法及时发现问题根本原因的情况下,可能会严重影响用户体验,甚至会导致业务服务不可用。相对于单机数据库,分布式数据库系统涉及多个节点、多组件的协同工作&#x…

苍穹外卖学习----出错记录

1.微信开发者工具遇到的问题: 1.1appid消失报错: {errMsg: login:fail 系统错误,错误码:41002,appid missing [20240112 16:44:02][undefined]} 1.2解决方式: appid可在微信开发者官网 登录账号后在开发栏 找到 复制后按以下步骤粘贴即…

玩转 openEuler (一)-- 系统安装

简介 openEuler 是一款开源操作系统。当前 openEuler 内核源于Linux,支持鲲鹏及其它多种处理器,能够充分释放计算芯片的潜能,是由全球开源贡献者构建的高效、稳定、安全的开源操作系统,适用于数据库、大数据、云计算、人工智能等…

响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例4-1 表单

代码 <!doctype html> <html> <head> <meta charset"utf-8"> <title>表单</title> </head><body> <!--<form action"URL地址" method"提交方式" name"表单名称" /*编码“多部…

GPT实战系列-简单聊聊LangChain搭建本地知识库准备

GPT实战系列-简单聊聊LangChain搭建本地知识库准备 LangChain 是一个开发由语言模型驱动的应用程序的框架&#xff0c;除了和应用程序通过 API 调用&#xff0c; 还会&#xff1a; 数据感知 : 将语言模型连接到其他数据源 具有代理性质 : 允许语言模型与其环境交互 LLM大模型…

05-微服务Sentinel流量哨兵

一、Sentinel介绍 1.1 什么是Sentinel 分布式系统的流量防卫兵&#xff1a;随着微服务的普及&#xff0c;服务调用的稳定性变得越来越重要。Sentinel以“流量”为切入点&#xff0c;在流量控制、断路、负载保护等多个领域开展工作&#xff0c;保障服务可靠性。特点&#xff1…

vue的element ui使用el-table组件实现懒加载树、默认自动展开层级(一层,二层)、并且解决新增、删除、修改之后树节点不刷新问题

1.整体思路 问题&#xff1a;数据量太大了&#xff0c;导致接口返回数据时间较长。解决: 将ElementUi中Table组件加载改为懒加载&#xff08;查看文档&#xff09;。思路&#xff1a;初始化打开页面时只显示第一级菜单,用户点击展开菜单之后往后端发送请求,然后加载出一级子菜…

python接口自动化(十)--post请求四种传送正文方式(详解)

1.简介 post请求我在python接口自动化&#xff08;八&#xff09;--发送post请求的接口&#xff08;详解&#xff09;已经讲过一部分了&#xff0c;主要是发送一些较长的数据&#xff0c;还有就是数据比较安全等。我们要知道post请求四种传送正文方式首先需要先了解一下常见的四…

快速入门java网络编程基础------Nio

一. NIO 基础 哔哩哔哩黑马程序员 netty实战视频 0.什么是nio&#xff1f; NIO&#xff08;New I/O&#xff09;是Java中提供的一种基于通道和缓冲区的I/O&#xff08;Input/Output&#xff09;模型。它是相对于传统的IO&#xff08;InputStream和OutputStream&#xff09;模型…

Java SPI机制总结系列之开发入门实例

原创/朱季谦 在该文章正式开始前&#xff0c;先对 Java SPI是什么做一个简单的介绍。 SPI&#xff0c;是Service Provider Interface的缩写&#xff0c;即服务提供者接口&#xff0c;单从字面上看比较抽象&#xff0c;你可以理解成&#xff0c;该机制就像Spring容器一样&…

机器学习---lightGBM

1. lightGBM演进过程 AdaBoost是⼀种提升树的方法&#xff0c;和三个臭皮匠&#xff0c;赛过诸葛亮的道理⼀样。 AdaBoost两个问题&#xff1a; (1) 如何改变训练数据的权重或概率分布提高前⼀轮被弱分类器错误分类的样本的权重&#xff0c;降低前⼀ 轮被分对的权重 (2) 如何…

远程登陆利器 ssh

文章目录 远程登陆利器 ssh登陆远程服务器指定用户名多数情况的登陆方式查看服务器的时间指定端口更多信息 远程登陆利器 ssh ssh命令是openssh套件中的客户端连接工具&#xff0c;使用加密协议实现安全的远程登录服务器&#xff0c;实现对服务器的远程管理。 官方定义为&…

[学习笔记]刘知远团队大模型技术与交叉应用L1-NLPBig Model Basics

本节主要介绍NLP和大模型的基础知识。提及了词表示如何从one-hot发展到Word Embedding。语言模型如何从N-gram发展成预训练语言模型PLMs。然后介绍了大模型在NLP任务上的表现&#xff0c;以及它遵循的基本范式。最后介绍了本课程需要用到的编程环境和GPU服务器。 一篇NLP方向的…

还在因为版本不一致重装node吗,用它试试

一、卸载nodejs 首先卸载已安装的nodejs&#xff0c;总体分三步 1)打开控制面板&#xff0c;卸载nodejs 2)打开计算机->高级->环境变量&#xff0c;删除path中nodejs相关的配置 3)打开nodejs安装目录&#xff0c;整体删除 打开cmd&#xff0c;输入以下命令&#xff…

Android Studio下载gradle反复失败

我的版本&#xff1a;gradle-5.1.1 首先检查设置路径是否正确&#xff0c;参考我的修改&#xff01; 解决方案 1.手动下载Gradle.bin Gradle Distributions 下载地址 注意根据编译器提示下载&#xff0c;我这要求下载的是bin 而不是all 2.把下载好的整个压缩包放在C:\Users\…

Uniapp软件库源码-全新带勋章等

测试环境&#xff1a;php7.1。ng1.2&#xff0c;MySQL 5.6 常见问题&#xff1a; 配置好登录后转圈圈&#xff0c;检查环境及伪静态以及后台创建好应用 上传图片不了&#xff0c;检查php拓展fileinfo 以及public文件权限 App个人主页随机背景图&#xff0c;在前端uitl文件夹里面…

数组深入详解

1、什么是数组&#xff1f; Java 语言中提供的数组是用来存储固定大小的同类型元素。 如&#xff1a;可以声明一个数组变量&#xff0c;如 numbers[100] 来代替直接声明 100 个独立变量 number0&#xff0c;number1&#xff0c;…&#xff0c;number99。 注意事项&#xff1a;…

第二百六十六回

文章目录 1. 概念介绍2. 分析与解决2.1 分析问题2.2 解决方案 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何修改CircleAvatar的大小"相关的内容&#xff0c;本章回中将介绍如何修改StatusBar中文字的颜色.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1.…

鸿蒙Harmony-层叠布局(Stack)详解

我们总是为了太多遥不可及的东西去拼命&#xff0c;却忘了人生真正的幸福不过是灯火阑珊处的温暖&#xff0c;柴米油盐的充实&#xff0c;人生无论你赚的钱&#xff0c;是多还是少&#xff0c;经历的事情是好还是坏&#xff0c;都不如过好当下的每一天&#xff01; 目录 一&am…
最新文章