为什么?为什么?为什么在浏览器里输入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. GIT删除本地tag和远程tag

    以tag test为例,这个tag已经同步到远程,但是现在发现了一个问题,需要撤回该tag,git命令如下: 删除本地tag: git tag -d test 删除远程tag: git push or ...

  2. git向远程git仓库提交代码步骤详解

    一.从远程仓库clone工程到本地 git clone -b 分支名称 http://10.1.1.11/service/tmall-service.git  localDestDirectory l ...

  3. microsoft vs code 绿化

    下载地址: https://code.visualstudio.com/#alt-downloads 各个版本比较 User Installer System Installer .zip resou ...

  4. advanceInstaller安装文件的ICON

    修改以下配置 点击icon图标位置可重新选择

  5. [转帖]教你如何破解IC卡的校验值

    教你如何破解IC卡的校验值   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin ...

  6. STL源码剖析——序列式容器#3 Deque

    Deque是一种双向开口的连续线性空间.所谓的双向开口,就是能在头尾两端分别做元素的插入和删除,而且是在常数的时间内完成.虽然Vector也可以在首端进行元素的插入和删除(利用insert和erase ...

  7. SSM整合学习 三

    三:整合Mybatis 完整的项目如下 一:下载所需的jar包 <!--日志--><dependency> <groupId>log4j</groupId&g ...

  8. 配置多用户SMB挂载

    在 system1 通过 SMB 共享目录 /devops ,并满足下列要求: 1.共享名为 devops 2.共享目录 devops 只能 group8.example.com 域中的客户端使用 3 ...

  9. 微信JS-SDK实现分享功能

    1 申请一个微信公众号,并确认在开发–接口权限中拥有分享功能的权限. 2 公众号设置–功能设置:在JS接口安全域名中添加安全域名,这个安全域名不是url,只需添加一级域名即可. 3 开发,基本配置中, ...

  10. Http异常状态码解决方案。

    415出现的原因:一般是传参的时候传的是json格式的参数,解决办法:先添加信息头管理器,然后在里面添加:(名称:Content-type)(值:application/json),这样就可以识别js ...