为什么?为什么?为什么在浏览器里输入www.baidu.com就可以访问百度搜索,而输入pan.baidu.com就可以访问百度网盘,它是怎么实现的?


实验原理简介

Internet中,计算机之间通过ip地址访问。当我们将PC连接到互联网时,上游的DHCP服务器会分给PC一个ip地址,同时也会告诉它DNS服务器的ip地址,当访问www.baidu.com时,PCwww.baidu.com这个网址发送给DNS服务器,然后DNS服务器将它查询到的web服务器ip地址返回给PC,最后通过访问这个ip地址访问到web服务器,从而得到网站内容。


实验过程简介

通过使用VMware Workstation模拟上面的环境,搭建三台服务器,分别是DHCPDNSWeb服务器,系统使用Windows Server 2016,然后再使用一台Win10客户机对实验结果进行验证。


开始实验

虚拟机信息

网络全部设置为仅主机模式,并且关闭DHCP,避免与即将建立的DHCP服务器产生冲突。

设定主机名和IP地址

主机名 IP地址
DHCP-SERVER 192.168.100.11
DNS-SERVER 192.168.100.12
WEB-SERVER 192.168.100.13
WIN-CLIENT DHCP

服务配置

首先再服务器管理器内添加需要的角色和功能,然后打开对应服务的管理器进行服务配置。

配置 Web 服务器

  • 服务器管理器 → 管理 → 添加角色和功能 → 安装Web服务

  • 创建网站所需文件

C:\Users\Administrator>cd ..\..

C:\>mkdir web\baidu\search web\baidu\pan

C:\>echo "<h1>This is baidu search !</h1>" > web\baidu\search\index.html

C:\>echo "<h1>This is baidu pan !</h1>" > web\baidu\pan\index.html
  • 开始 → Windows管理工具 → IIS 管理器 → 添加网站

  • 添加的网站信息

Web服务配置完成

配置 DNS 服务器

  • 服务器管理器 → 管理 → 添加角色和功能 → 安装DNS服务

  • 开始 → Windows管理工具 → DNS 管理器 → 新建正向查找区域

  • 新建区域向导

  • 区域内新建主机

  • 主机记录新建完成

DNS服务配置完成

配置 DHCP 服务器

  • 服务器管理器 → 管理 → 添加角色和功能 → 安装DHCP服务

  • 开始 → Windows管理工具 → DHCP → 新建IPv4作用域

  • 新建作用域向导

DHCP服务配置完成


结果验证

打开WIN-CLIENT客户机,自动获取ip地址,然后访问网站。

  • 自动获取ip地址

  • 查看所有ip信息

ipconfig /renew         #重新获取ip地址

ipcomfig /all           #查看所有ip信息
  • 访问结果www.baidu.com

  • 访问结果pan.baidu.com

实现使用不同主机名访问不同网站。


一些想法

这篇是基于Windows Server的,以后或许还会写一篇Linux版的。

如何用 DHCP + DNS + Web 实现一个网络架构的更多相关文章

  1. 无线安全: 通过伪AP进行DHCP+DNS劫持的钓鱼攻击

    有了之前学习802.11的数据帧格式.芯片硬件参数学习的基础后,我们接下来继续学习无线安全中黑客是怎样进行流量劫持攻击的 相关学习资料 http://www.freebuf.com/articles/ ...

  2. Linux就这个范儿 第12章 一个网络一个世界

    Linux就这个范儿 第12章 一个网络一个世界 与Linux有缘相识还得从一项开发任务说起.十八年前,我在Nucleus  OS上开发无线网桥AP,需要加入STP生成树协议(SpanningTree ...

  3. Linux基础二(修改ip地址、修改网关、修改DNS服务器、重新启动网络配置)

    网络的初始化 .ip地址的修改(临时生效) 使用ifconfig命令 ifconfig 网卡名 ip地址 netmask 子网掩码 [root@localhost /]# ifconfig eth1 ...

  4. 如何理解AWS 网络,如何创建一个多层安全网络架构

    目录 一.要求 网络架构图 网络各组件关系 二.操作步骤 2.1.网络设置 2.2.安全设置 2.3.创建实例 三.费用 3.1.NAT 网关费用 一.要求 创建一个三层网络架构,服务器只能通过跳板机 ...

  5. jmeter 建立一个网络服务的测试计划

    如何创建一个 测试计划 测试一个网络服务. 你会 创建5个用户发送请求到一页. 同时,你会告诉用户运行测试两次. 的总数 请求用户请求(5)x(1)x(重复2次)= 10 HTTP请求. 来 建立测试 ...

  6. 如何用 Parse 和 Swift 搭建一个像 Instagram 那样的应用?

    [编者按]本篇文章作者是Reinder de Vries,既是一名企业家,也是优秀的程序员,发表多篇应用程序的博客.本篇文章中,作者主要介绍了如何基于Parse特点,打造一款类似Instagram的应 ...

  7. 思科恶意加密TLS流检测论文记录——由于样本不均衡,其实做得并不好,神马99.9的准确率都是浮云啊,之所以思科使用DNS和http一个重要假设是DGA和HTTP C&C(正常http会有图片等)。一开始思科使用的逻辑回归,后面17年文章是随机森林。

    论文记录:Identifying Encrypted Malware Traffic with Contextual Flow Data from:https://songcoming.github. ...

  8. 网关、子网掩码、DHCP, DNS

    都跟ip地址相关,IP地址构成:网络地址+主机地址 子网掩码可以确定网络地址,例如某IP:192.168.1.102 子网掩码:255.255.255.0, 那么网络地址就是192.168.1,主机地 ...

  9. Android开发之使用Web Service进行网络编程

    使用Web Service进行网络编程 Android应用通常都是执行在手机平台上.手机系统的硬件资源是有限的,无论是存储能力还是计算能力都有限.在Android系统上开发.执行一些单用户.小型应用是 ...

随机推荐

  1. DSCP 标

    DSCP差分服务代码点(Differentiated Services Code Point).它在每个数据包IP头部的服务类别TOS标识字节中,利用已使用的6比特和未使用的2比特,通过编码值来区分优 ...

  2. PAT-2019年冬季考试-甲级 7-2 Block Reversing (25分) (链表转置)

    7-2 Block Reversing (25分)   Given a singly linked list L. Let us consider every K nodes as a block ( ...

  3. win10专业版激活步骤

    1.右键开始图标,选择[windows powershell(管理员)],或者命令提示符管理员: 2.打开命令窗口,复制这个命令slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T ...

  4. SDKMAN一个基于命令行界面的SDK用户环境管理程序

    1.背景 使用过Python开发的朋友,应该了解到Python2和Python3语法的差异,有时候从网上下载了基于不同解释器的代码,要来回切换版本, 使用起来不是很方便,有时候甚至很麻烦.于是有人发明 ...

  5. LwIP应用开发笔记之六:LwIP无操作系统TCP客户端

    上一篇我们基于LwIP协议栈的RAW API实现了一个TCP服务器的简单应用,接下来一节我们来实现一个TCP客户端的简单应用. 1.TCP简述 TCP(Transmission Control Pro ...

  6. eclipse 中的注释 快捷键 多行注释快捷键 单行注释快捷键

    本文链接:https://blog.csdn.net/a0701302/article/details/76177244 Eclipse 中的两种注释方法: (1)多行注释 (2)单行注释 一. 多行 ...

  7. 为什么重写equals时一定要重写hashcode

    我们开发时写一个类,默认继承Object类,Object类的equals方法是比较是否指向同一个对象(地址是否相同), Object类 的hashcode方法返回的对象内存地址的值, 一个类只重写了e ...

  8. 最常见的Java面试题及答案汇总(六)

    异常 74. throw 和 throws 的区别? throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理.而throw则是 ...

  9. git中配置的.gitignore不生效的解决办法

    通常我们希望放进仓库的代码保持纯净,即不要包含项目开发工具生成的文件,或者项目编译后的临时文件.但是,当我们使用git status查看工作区状态的时候,总会提示一些文件未被track.于是,我们想让 ...

  10. mybatis一级二级缓存

    一级缓存分析 不需要任何配置 ,mybatis本身带有 一级缓存是SqlSession范围的缓存,当调用SqlSession的修改,添加,删除,commit(),close()等方法时,就会清空一级缓 ...