20260115
在大型网络中,系统静态分配 ip 地址面临问题:简要讲解通信原理配置服务流程:DHCP 客户端申请 IP 地址分为四个阶段:发现、提供、请求和确认(否认)。准备一些材料,例如修改服务器配置文件配置服务器,例如修改服务器配置文件启用服务配置防火墙客户端验证DHCP 中继服务器介绍简单原理在有中继的情形下,DHCP 客户端申请 IP 地址仍然分为四个阶段:发现、提供、请求和确认(否认)。只是客户端发送
·
配置 DHCP 服务器
在大型网络中,系统静态分配 ip 地址面临问题:
- 确保不要同时在多个系统上使用同一个地址
- 部署新系统通常需要手动分配 ip 地址,在云环境中,实例的网络是自动化配置的
- server:vmnet1 10.1.1.10 对外提供网络服务
- client:vmnet1
简要讲解通信原理
- 客户端使用 DHCPv4 配置网络接口时,网卡将 DHCPDISCOVER 数据包发送到 255.255.255.255 广播目标。因为
DHCP 服务器
配置服务流程:
DHCP 客户端申请 IP 地址分为四个阶段:发现、提供、请求和确认(否
认)。
- 安装软件包
[root@server ~ 09:11:29]# yum install -y dhcp
[root@server ~ 09:24:48]# rpm -qc dhcp
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases
[root@server ~ 09:24:52]# cat /etc/dhcp/dhcpd
dhcpd6.conf dhcpd.conf
[root@server ~ 09:24:52]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
[root@server ~ 09:25:23]# mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
[root@server ~ 09:26:08]# cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
[root@server ~ 09:26:17]# vim /etc/dhcp/dhcpd.conf
[root@server ~ 09:26:24]#
- 准备一些材料,例如修改服务器配置文件
# /etc/dhcp/dhcpd.conf
subnet 10.1.1.0 netmask 255.255.255.0 {
range 10.1.1.101 10.1.1.130;
#option domain-name-servers ns1.internal.example.org;
option domain-name "aaa.cloud";
#option routers 10.1.1.1;
option broadcast-address 10.1.1.255;
default-lease-time 600;
max-lease-time 7200;
}
# 根据mac地址绑定ip地址
host fantasia {
hardware ethernet 08:00:07:26:c0:a5;
fixed-address fantasia.fugue.com;
}
- 配置服务器,例如修改服务器配置文件
- 启用服务
[root@server ~ 09:42:28]# systemctl enable dhcpd --now
- 配置防火墙
[root@server ~ 09:42:28]# systemctl disable firewalld --now
- 客户端验证
default via 10.1.8.2 dev ens32 proto static metric 100
# 默认路由(出去上网或去其他网段的路由)
# 所有不知道去哪里的包,都发给网关 10.1.8.2,走 ens32 这块网卡
# proto static 说明这条默认路由是手动静态配置的(不是 DHCP 动态下发的)
# metric 100 是优先级,数字越小越优先(目前只有一条默认路由,所以无所谓)
10.1.1.0/24 dev ens33 proto kernel scope link src 10.1.1.101 metric 101
# 直连路由(本机直接接入的网段)
# 所有去 10.1.1.0/24 网段的包,直接从 ens33 网卡发出去,不需要网关
# src 10.1.1.101 表示本机发包时源地址用这个 IP
# proto kernel 表示这是内核自动生成的直连路由(网卡一配 IP 就自动加)
10.1.8.0/24 dev ens32 proto kernel scope link src 10.1.8.11 metric 100
# 同样是直连路由
# 所有去 10.1.8.0/24 网段的包,直接从 ens32 网卡发出去
# 源地址用 10.1.8.11
# 这条路由 metric 100,和默认路由一样,属于同一网卡的策略
[root@client ~ 10:18:31]# ip -br a
lo UNKNOWN 127.0.0.1/8 ::1/128
ens32 UP 10.1.8.11/24 fe80::20c:29ff:fea1:713e/64
ens33 UP 10.1.1.101/24 fe80::fca9:d7b7:5f07:4b2c/64
[root@client ~ 10:23:03]#
DHCP 中继服务器
介绍简单原理
在有中继的情形下,DHCP 客户端申请 IP 地址仍然分为四个阶段:发现、提供、请求和确认(否
认)。只是客户端发送的报文会被同广播域内的 DHCP 中继收到,然后由 DHCP 中继将 DHCP 报文
以单播的形式转发给服务器。同样,服务器响应的 DHCP 报文以单播形式发给 DHCP 中继,然后再
由中继转发给客户端。
| 主机名 | IP 地址 | 网卡 | 备注 |
|---|---|---|---|
| dhcp-server.aaa.cloud | 10.1.8.10/24 | vmnet8 | DHCP 服务器 |
| dhcp-relay.aaa.cloud | 10.1.8.20/24 | vmnet8 | DHCP 中继(外网侧) |
| dhcp-relay.aaa.cloud | 10.1.1.20/24 | vmnet1 | DHCP 中继(内网侧) |
| dhcp-client.aaa.cloud | 自动获取 | vmnet1 | DHCP 客户端 |
配置 DNS 服务器
基本概念
- 根:DNS 层次结构最顶层,使用独立的 **.**表示
- 顶级域:如.com
- 二级域:如 aaa.cloud
- 以此类推域名:…
- Domain:统一资源定位符,就算一串名字而已,用来映射域名的。aaa.cloud
- Zone:**特定名称服务器之间负责的域。**可能是整个域,也可能只是域的一部分,Zone 可以将部分或全部子域都委派给另一个名称服务器或者多个名称服务器。
DNS 查询
主机的 DNS 查询分为两种,分别为:递归查询和迭代查询
- 递归查询:以本地名称服务器为中心,DNS 客户端只是发出原始的域名查询请求报文,然后就一直处于等待状态,直到本地名称服务器发来了最终的查询结果。此时的本地服务器就相当于中介代理的作用
- 迭代查询:以 DNS 客户端自己为中心,所有查询任务都由自己去完成。会以此按照顺序向本地名称服务器、一级名称服务器、二级名称服务器、权威名称服务器发出查询 DNS 的报文。
DNS 资源记录
格式如下:
owner-name TTL class type data
server.aaa.cloud. 300 IN A 192.16
记录说明:
- owner-name:域名记录的名字
- TTL:资源记录的存活时间(以秒为单位),用于指定 DNS 解析器缓存该资源记录的时长。
- class:记录的类别
- type:该记录存储的信息类型。例如,A 记录将主机名映射到 IPv4 地址。
- data:记录的值,记录的内容
type 类型
- A 资源记录:将主机映射到 ipv4 地址
- AAAA 资源记录:将主机映射到 ipv6 地址
- CNAME 资源记录:将一个名称别名为另一个名称,该名称应该具有 A 或者 AAAA 记录
- PTR 资源记录:将 ipv4 或者 v6 地址映射到主机名
- NS 资源记录((Name Server Record)):它告诉全世界:“这个域名(比如 example.com)的‘户口本’和所有解析信息,都由这些指定的 DNS 服务器负责管理!”
- SOA 资源记录:提供有关 DNS 区域如何运行的信息
- MX 资源记录:将域名映射到接受该域的电子邮件的邮件交换
- TXT 资源记录:将名称映射到编码为可打印 ASCII 字符的任意文本
- SRV 资源记录:可帮助客户端找到域中支持特定服务的主机。
开始配置 权威名称服务器
通过 bind 这个软件进行 DNS 服务
- 按照 bind 软件
yum install -y bind
rpm -qc bind
- 编写配置文件(配置 bind)
编辑/etc/named.conf
vim /etc/named.conf
options {
// 添加端口访问。
listen-on port 53 { 127.0.0.1;10.1.8.10; };
listen-on-v6 port 53 { ::1; };
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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
// 允许哪个网段经过查询
allow-query { localhost;10.1.8.0/24; };
/*
- If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
- If you are building a RECURSIVE (caching) DNS server, you need to enable
recursion.
- If your recursive DNS server has a public IP address, you MUST enable access
control to limit queries to your legitimate users. Failing to do so will
cause your server to become part of large scale DNS amplification
attacks. Implementing BCP38 within your network would greatly
reduce such attack surface
*/
recursion yes;
dnssec-enable yes;
// 关闭校验
dnssec-validation no;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.root.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
# 正向解析
zone "aaa.cloud" IN{
type master;
file "aaa.cloud.zone";
};
# 反向解析
zone "8.1.10.in-addr.arpa" IN{
type master;
file "10.1.8.zone";
};
首先需要进入/var/named
编辑正向解析(域名解析成 ip)
cp named.localhost aaa.cloud.zone
vim aaa.cloud.zone
$TTL 1D
@ IN SOA dns.aaa.cloud. admin.aaa.cloud. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.aaa.cloud
dns A 10.1.8.10.
server A 10.1.8.10.
client A 10.1.8.11.
www A 10.1.8.66.
编辑反向解析(ip 解析成域名)
cp named.localhost 10.1.8.zone
vim 10.1.8.zone
$TTL 1D
@ IN SOA dns.aaa.cloud. admin.aaa.cloud. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.aaa.cloud.
10 PTR dns.aaa.cloud.
10 PTR server.aaa.cloud.
11 PTR client.aaa.cloud.
66 PTR www.aaa.cloud.
重点:记得修改文件权限
# 1. 把拥有者和组都改成 named(最标准做法)
chown named:named aaa.cloud.zone
chown named:named 10.1.8.zone
- 启用服务
systemctl enable named --now
- 设置防火墙
systemctl disable firewalld --now
- 客户端验证
yum install -y bind-utils
dig @10.1.8.10 server.aaa.cloud
更多推荐
所有评论(0)