DNS主從服務器

1.1環境準備

作用系統IP主機名
web 服務器redhat9.5192.168.33.8web
DNS 主服務器redhat9.5192.168.33.18dns1
DNS 從服務器redhat9.5192.168.33.28dns2
客戶端redhat9.5192.168.33.7client

1.2修改主機名和IP地址

web服務器

[root@web-8 ~]# hostnamectl hostname web
[root@web-8 ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.33.8/24 ipv4.gateway 192.168.33.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@web-8 ~]# nmcli c up ens160?

DNS1

[root@dns1-18 ~]# hostnamectl hostname dns1
[root@dns1-18 ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.33.18/24 ipv4.gateway 192.168.33.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@dns1-18 ~]# nmcli c up ens160?

DNS2

[root@dns2-28 ~]# hostnamectl hostname dns2
[root@dns2-28 ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.33.28/24 ipv4.gateway 192.168.33.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@dns2-28 ~]# nmcli c up ens160?
?

client

[root@dns-client ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.33.7/24 ipv4.gateway 192.168.33.2 ipv4.dns "192.168.33.18 192.168.33.28" connection.autoconnect yes
[root@dns-client ~]# nmcli c up ens160?

#ip恰好與題目client ip相同
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
[root@dns-client ~]#?
[root@dns-client ~]#?
[root@dns-client ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
? ? link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
? ? inet 127.0.0.1/8 scope host lo
? ? ? ?valid_lft forever preferred_lft forever
? ? inet6 ::1/128 scope host?
? ? ? ?valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
? ? link/ether 00:0c:29:b2:f4:4d brd ff:ff:ff:ff:ff:ff
? ? altname enp3s0
? ? inet 192.168.33.7/24 brd 192.168.33.255 scope global noprefixroute ens160
? ? ? ?valid_lft forever preferred_lft forever
? ? inet6 fe80::20c:29ff:feb2:f44d/64 scope link noprefixroute?
? ? ? ?valid_lft forever preferred_lft forever

關閉幾臺服務器的 selinux:

[root@web ~]# setenforce 0
?

[root@dns1 ~]# setenforce 0
?

[root@dns2~]# setenforce 0

1.2配置web服務

1.2.1安裝nginx

[root@web ~]# mount /dev/sr0 /mnt
mount: /mnt: WARNING: source write-protected, mounted read-only.
[root@web ~]# dnf install nginx -y
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use "rhc" or "subscription-manager" to register.

BaseOS ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.6 MB/s | 2.7 kB ? ? 00:00 ? ?
AppStream ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2.9 MB/s | 3.2 kB ? ? 00:00 ? ?
Package nginx-2:1.20.1-20.el9.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

1.2.2配置nginx首頁

[root@web ~]# rpm -ql nginx

[root@web ~]# echo "welcome nginx" > /usr/share/nginx/html/index.html

[root@web ~]# systemctl enable --now nginx
[root@web ~]# firewall-cmd --permanent --add-service=http
Warning: ALREADY_ENABLED: http
success
[root@web ~]# firewall-cmd --reload?
success

1.3配置DNS主服務

1.3.1安裝dns軟件

[root@dns1 ~]# mount /dev/sr0 /mnt
mount: /mnt: WARNING: source write-protected, mounted read-only.
[root@dns1 ~]# dnf install bind -y
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use "rhc" or "subscription-manager" to register.

Last metadata expiration check: 1 day, 2:16:39 ago on Sun 16 Mar 2025 02:44:58 PM CST.
Package bind-32:9.16.23-24.el9_5.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

1.3.2修改主配置文件

[root@dns1 ~]# rpm -ql bind

[root@dns1 ~]# vim /etc/named.conf
[root@dns1 ~]# cat /etc/named.conf?
options {
?? ?listen-on port 53 { 192.168.33.18; };
?? ?directory ?? ?"/var/named";
?? ?allow-query ? ? { any; };
};
zone "haha.com" IN {
?? ?type master;
?? ?file "haha.com";
};

1.3.3配置區域數據文件

[root@dns1 ~]# vim /var/named/haha.com
[root@dns1 ~]# cat /var/named/haha.com?
$TTL?? ?1D
@?? ?IN?? ?SOA?? ?@?? ?admin.haha.com.?? ?(0 ? 1D ? 2H ? 3W ? 2D)
?? ?IN?? ?NS?? ?ns1
?? ?IN?? ?NS?? ?ns2
ns1?? ?IN?? ?A?? ?192.168.33.18
ns2?? ?IN?? ?A?? ?192.168.33.28
www?? ?IN?? ?A?? ?192.168.33.8

1.3.4檢查配置語法

[root@dns1 ~]# named-checkconf
[root@dns1 ~]# named-checkzone haha.com /var/named/haha.com?
zone haha.com/IN: loaded serial 0
OK

1.3.5測試DNS解析

[root@dns1 ~]# systemctl start named

[root@dns1 ~]# ps -ef | grep named

[root@dns1 ~]# dig -t NS haha.com @192.168.33.18

; <<>> DiG 9.16.23-RH <<>> -t NS haha.com @192.168.33.18
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64689
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 79ed8796f37753ac0100000067d7e7ca2cd104e727ccff15 (good)
;; QUESTION SECTION:
;haha.com.?? ??? ??? ?IN?? ?NS

;; ANSWER SECTION:
haha.com.?? ??? ?86400?? ?IN?? ?NS?? ?ns2.haha.com.
haha.com.?? ??? ?86400?? ?IN?? ?NS?? ?ns1.haha.com.

;; ADDITIONAL SECTION:
ns1.haha.com.?? ??? ?86400?? ?IN?? ?A?? ?192.168.33.18
ns2.haha.com.?? ??? ?86400?? ?IN?? ?A?? ?192.168.33.28

;; Query time: 0 msec
;; SERVER: 192.168.33.18#53(192.168.33.18)
;; WHEN: Mon Mar 17 17:13:46 CST 2025
;; MSG SIZE ?rcvd: 133

1.3.6放行dns服務

[root@dns1 ~]# firewall-cmd ?--permanent --add-service=dns
Warning: ALREADY_ENABLED: dns
success
[root@dns1 ~]# firewall-cmd --reload?
success

1.4配置DNS從服務

1.4.1安裝dns軟件

[root@dns2 ~]# mount /dev/sr0 /mnt
mount: /mnt: WARNING: source write-protected, mounted read-only.
[root@dns2 ~]# dnf install bind -y
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered with an entitlement server. You can use "rhc" or "subscription-manager" to register.

BaseOS ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.2 MB/s | 2.7 kB ? ? 00:00 ? ?
AppStream ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3.1 MB/s | 3.2 kB ? ? 00:00 ? ?
Package bind-32:9.16.23-24.el9_5.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
?

1.4.2修改主配置文件

[root@dns2 ~]# vim /etc/named.conf?
[root@dns2 ~]# cat /etc/named.conf?
options {
?? ?listen-on port 53 { 192.168.33.28; };
?? ?directory ?? ?"/var/named";
?? ?allow-query ? ? { any; };
};

zone "haha.com" IN {
?? ?type slave;
?? ?masters {192.168.33.18 ;};
?? ?file "slaves/haha.com ";
};

1.4.3放行dns服務

[root@dns2 ~]# firewall-cmd --permanent --add-service=dns
Warning: ALREADY_ENABLED: dns
success
[root@dns2 ~]# firewall-cmd --reload?
success

1.4.4啟動dns服務

[root@dns2 ~]# systemctl start named

1.4.5測試dns解析

[root@dns2 ~]# dig -t NS haha.com @192.168.33.28

; <<>> DiG 9.16.23-RH <<>> -t NS haha.com @192.168.33.28
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39093
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 5c5ad754ea8ac7ce0100000067d7e9e24a147dbc8f042ccc (good)
;; QUESTION SECTION:
;haha.com.?? ??? ??? ?IN?? ?NS

;; ANSWER SECTION:
haha.com.?? ??? ?86400?? ?IN?? ?NS?? ?ns1.haha.com.
haha.com.?? ??? ?86400?? ?IN?? ?NS?? ?ns2.haha.com.

;; ADDITIONAL SECTION:
ns1.haha.com.?? ??? ?86400?? ?IN?? ?A?? ?192.168.33.135
ns2.haha.com.?? ??? ?86400?? ?IN?? ?A?? ?192.168.33.136

;; Query time: 0 msec
;; SERVER: 192.168.33.28#53(192.168.33.28)
;; WHEN: Mon Mar 17 17:22:42 CST 2025
;; MSG SIZE ?rcvd: 133

[root@dns2 ~]# dig -t A www.haha.com @192.168.33.28

; <<>> DiG 9.16.23-RH <<>> -t A www.haha.com @192.168.33.28
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48432
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 8d6dbd0ad5db90d90100000067d7ea0c48d4f16d6e872941 (good)
;; QUESTION SECTION:
;www.haha.com.?? ??? ??? ?IN?? ?A

;; ANSWER SECTION:
www.haha.com.?? ??? ?86400?? ?IN?? ?A?? ?192.168.33.133

;; Query time: 0 msec
;; SERVER: 192.168.33.28#53(192.168.33.28)
;; WHEN: Mon Mar 17 17:23:24 CST 2025
;; MSG SIZE ?rcvd: 85
?

實驗完成!!!

2實驗總結

2.1實驗目的

本次實驗旨在配置 web 服務、DNS 主從服務,并在客戶端進行相應測試,以實現網絡中 web 訪問及域名解析功能,加深對網絡服務配置原理和操作的理解。

2.2實驗環境

  1. web 服務器:IP 地址 192.168.33.8,主機名 web。

  2. DNS 主服務器:IP 地址 192.168.33.18,主機名 dns1。

  3. DNS 從服務器:IP 地址 192.168.33.28,主機名 dns2。

  4. 客戶端:IP 地址 192.168.33.7,主機名 client。

2.3實驗過程

  1. 環境準備:對各服務器和客戶端進行主機名和 IP 地址的修改,并關閉了相關服務器的 selinux,為后續服務配置消除潛在的安全策略干擾。

  2. web 服務配置

    • 安裝 nginx 軟件,通過相關命令成功獲取并安裝了 nginx 服務。

    • 配置 nginx 首頁,修改了 nginx 的配置文件,設置了自定義的首頁內容,使其能夠正常展示特定的網頁信息。

  3. DNS 主服務配置

    • 安裝 dns 軟件,確保了 DNS 服務所需的軟件包正確安裝。

    • 修改主配置文件,對主配置文件中的相關參數進行了設置,包括監聽地址、區域聲明等。

    • 配置區域數據文件,定義了域名與 IP 地址的映射關系,為域名解析提供數據支持。

    • 檢查配置語法,使用工具檢查配置文件的語法正確性,避免因語法錯誤導致服務無法正常運行。

    • 測試 DNS 解析,在客戶端使用命令行工具進行域名解析測試,驗證了主 DNS 服務器能夠正確解析域名。

    • 放行 dns 服務,配置防火墻規則,允許 DNS 服務的相關端口通過,確保網絡中其他設備能夠訪問 DNS 服務。

  4. DNS 從服務配置
    • 安裝 dns 軟件,與主服務器類似,完成了從服務器上 DNS 軟件的安裝。

    • 修改主配置文件,配置從服務器與主服務器的同步關系,使其能夠從主服務器獲取區域數據。

    • 放行 dns 服務,配置防火墻規則,保障從服務器的 DNS 服務可被訪問。

    • 啟動 dns 服務,成功啟動從服務器的 DNS 服務,使其開始工作。

    • 測試 dns 解析,在客戶端再次進行測試,確認從服務器也能夠正確解析域名,且與主服務器的解析結果一致。

2.4實驗結果

  1. web 服務配置成功,通過客戶端瀏覽器訪問 web 服務器的 IP 地址,能夠正常顯示配置的 nginx 首頁內容。

  2. DNS 主從服務配置成功,客戶端能夠通過主 DNS 服務器和從 DNS 服務器正確解析域名,實現了域名到 IP 地址的轉換,保障了網絡中基于域名的訪問。

2.5實驗問題及解決

  1. 在安裝 nginx 時,由于網絡不穩定,導致安裝過程中斷。解決方法是重新檢查網絡連接,確保網絡穩定后,再次執行安裝命令,最終成功安裝。

  2. 在配置 DNS 主服務器的區域數據文件時,出現了語法錯誤,導致 DNS 服務無法正常啟動。通過仔細檢查配置文件,發現是記錄格式錯誤,修改后服務恢復正常。

  3. 在配置 DNS 從服務器與主服務器同步時,一開始無法獲取主服務器的區域數據。經過檢查發現是防火墻規則設置不當,修改防火墻規則后,從服務器成功與主服務器同步。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/898176.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/898176.shtml
英文地址,請注明出處:http://en.pswp.cn/news/898176.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

遙感數據獲取、處理、分析到模型搭建全流程學習!DeepSeek、Python、OpenCV驅動空天地遙感數據分析

【扔進數據&#xff0c;直接出結果】在科技飛速發展的時代&#xff0c;遙感數據的精準分析已經成為推動各行業智能決策的關鍵工具。從無人機監測農田到衛星數據支持氣候研究&#xff0c;空天地遙感數據正以前所未有的方式為科研和商業帶來深刻變革。然而&#xff0c;對于許多專…

第一個vue項目

項目目錄 啟動vue項目 npm run serve 1.vue.config.js文件 (CLI通過vue-cli-serve啟動項目&#xff0c;解析配置配置文件vue-condig-js&#xff09; // vue.config.js //引入path板塊&#xff0c;這是Node.js的一個內置模塊&#xff0c;用于處理文件路徑&#xff0c;這里引用…

QT中讀取QSetting文件

1.ini文件的格式 頭文件 #include <QSettings> #include <QStringList> #include <QtCore> #include <QDebug>2.讀文件 //ini文件的讀取 void iniTest::readIniFile(QString filePath) {//1.打開ini文件QSettings m_iniFile(filePath, QSettings::I…

卷積神經網絡 - 一維卷積、二維卷積

卷積(Convolution)&#xff0c;也叫褶積&#xff0c;是分析數學中一種重要的運算。在信號處理或圖像處理中&#xff0c;經常使用一維或二維卷積&#xff0c;本博文我們來學習一維卷積和二維卷積。 理解一維卷積和二維卷積的核心在于把握維度對特征提取方式的影響。我們從數學定…

java學習總結(六)Spring IOC

一、Spring框架介紹 Spring優點&#xff1a; 1、方便解耦&#xff0c;簡化開發,IOC控制反轉 Spring 就是一個大工廠&#xff0c;可以將所有對象創建和依賴關系維護交給Spring 2、AOP 編程的支持 Spring 提供面向切編程&#xff0c;可以方便的實現對序進行權限攔截、運監控等…

大模型推理:LM Studio在Mac上部署Deepseek-R1模型

LM Studio LM Studio是一款支持離線大模型部署的推理服務框架&#xff0c;提供了易用的大模型部署web框架&#xff0c;支持Linux、Mac、Windows等平臺&#xff0c;并提供了OpenAI兼容的SDK接口&#xff0c;主要使用LLama.cpp和MLX推理后端&#xff0c;在Mac上部署時選擇MLX推理…

AI技術學習筆記系列004:GPU常識

顯卡架構是GPU設計的核心&#xff0c;不同廠商有其獨特的架構演進。以下是主要廠商的顯卡架構概述&#xff1a; 一、NVIDIA Tesla&#xff08;2006-2010&#xff09; 代表產品&#xff1a;GeForce 8000系列&#xff08;G80&#xff09;。特點&#xff1a;首款統一著色架構&…

實驗- 分片上傳 VS 直接上傳

分片上傳和直接上傳是兩種常見的文件上傳方式。分片上傳將文件分成多個小塊&#xff0c;每次上傳一個小塊&#xff0c;可以并行處理多個分片&#xff0c;適用于大文件上傳&#xff0c;減少了單個請求的大小&#xff0c;能有效避免因網絡波動或上傳中斷導致的失敗&#xff0c;并…

Android視頻渲染SurfaceView強制全屏與原始比例切換

1.創建UI添加強制全屏與播放按鈕 2.SurfaceView控件設置全屏顯示 3.全屏點擊事件處理實現 4.播放點擊事件處理 5.使用接口更新強制全屏與原始比例文字 強制全屏/原始比例 點擊實現

數據結構——串、數組和廣義表

串、數組和廣義表 1. 串 1.1 串的定義 串(string)是由零個或多個字符組成的有限序列。一般記為 S a 1 a 2 . . . a n ( n ≥ 0 ) Sa_1a_2...a_n(n\geq0) Sa1?a2?...an?(n≥0) 其中&#xff0c;S是串名&#xff0c;單引號括起來的字符序列是串的值&#xff0c; a i a_i a…

無再暴露源站!群聯AI云防護IP隱匿方案+防繞過實戰

一、IP隱藏的核心原理 群聯AI云防護通過三層架構實現源站IP深度隱藏&#xff1a; 流量入口層&#xff1a;用戶訪問域名解析至高防CNAME節點&#xff08;如ai-protect.example.com&#xff09;智能調度層&#xff1a;基于AI模型動態分配清洗節點&#xff0c;實時更新節點IP池回…

1.5.3 掌握Scala內建控制結構 - for循環

Scala的for循環功能強大&#xff0c;支持單重和嵌套循環。單重for循環語法為for (變量 <- 集合或數組 (條件)) {語句組}&#xff0c;可選篩選條件&#xff0c;循環變量依次取集合值。支持多種任務&#xff0c;如輸出指定范圍整數&#xff08;使用Range、to、until&#xff0…

【MySQL基礎-9】深入理解MySQL中的聚合函數

在數據庫操作中&#xff0c;聚合函數是一類非常重要的函數&#xff0c;它們用于對一組值執行計算并返回單個值。MySQL提供了多種聚合函數&#xff0c;如COUNT、SUM、AVG、MIN和MAX等。這些函數在數據分析和報表生成中扮演著關鍵角色。本文將深入探討這些聚合函數的使用方法、注…

windows版本的時序數據庫TDengine安裝以及可視化工具

了解時序數據庫TDengine&#xff0c;可以點擊官方文檔進行詳細查閱 安裝步驟 首先找到自己需要下載的版本&#xff0c;這邊我暫時只寫windows版本的安裝 首先我們需要點開官網&#xff0c;找到發布歷史&#xff0c;目前TDengine的windows版本只更新到3.0.7.1&#xff0c;我們…

Web測試

7、Web安全測試概述 黑客技術的發展歷程 黑客基本涵義是指一個擁有熟練電腦技術的人&#xff0c;但大部分的媒體習慣將“黑客”指作電腦侵入者。 黑客技術的發展 在早期&#xff0c;黑客攻擊的目標以系統軟件居多。早期互聯網Web并非主流應用&#xff0c;而且防火墻技術還沒有…

華為OD機試 - 最長的完全交替連續方波信號(Java 2023 B卷 200分)

題目描述 給定一串方波信號,要求找出其中最長的完全連續交替方波信號并輸出。如果有多個相同長度的交替方波信號,輸出任意一個即可。方波信號的高位用1標識,低位用0標識。 說明: 一個完整的信號一定以0開始并以0結尾,即010是一個完整的信號,但101,1010,0101不是。輸入的…

游戲引擎學習第163天

我們可以在資源處理器中使用庫 因為我們的資源處理器并不是游戲的一部分&#xff0c;所以它可以使用庫。我說過我不介意讓它使用庫&#xff0c;而我提到這個的原因是&#xff0c;今天我們確實有一個選擇——可以使用庫。 生成字體位圖的兩種方式&#xff1a;求助于 Windows 或…

7、什么是死鎖,如何避免死鎖?【高頻】

&#xff08;1&#xff09;什么是死鎖&#xff1a; 死鎖 是指在兩個或多個進程的執行時&#xff0c;每個進程都持有資源 并 等待其他進程 釋放 它所需的資源&#xff0c;如果此時所有的進程一直占有資源而不釋放&#xff0c;就會陷入互相等待的一種僵局狀態。 死鎖只有同時滿足…

Compose 實踐與探索十四 —— 自定義布局

自定義布局在 Compose 中相對于原生的需求已經小了很多&#xff0c;先講二者在本質上的邏輯&#xff0c;再說它們的使用場景&#xff0c;兩相對比就知道為什么 Compose 中的自定義布局的需求較小了。 原生是在 xml 布局文件不太方便或者無法滿足需求時才會在代碼中通過自定義 …

【C++】:C++11詳解 —— 入門基礎

目錄 C11簡介 統一的列表初始化 1.初始化范圍擴展 2.禁止窄化轉換&#xff08;Narrowing Conversion&#xff09; 3.解決“最令人煩惱的解析”&#xff08;Most Vexing Parse&#xff09; 4.動態數組初始化 5. 直接初始化返回值 總結 聲明 1.auto 類型推導 2. declty…