▶SUBTHAIแปลไทย · ซับ · พากย์⚙
บทความแปลภาษาไทย · YouTube

Your HomeLab DNS Needs a Backup // Technitium

0:000:00
เล่นเสียงต้นฉบับของวิดีโอ พร้อมแสดงซับไทยซิงก์ตามเวลา
กำลังโหลดวิดีโอ…
01

สรุปย่อ

ประเด็นสำคัญจากวิดีโอ

- **ช่อง:** Christian Lempa · **ความยาว:** ~21 นาที · **ลิงก์:** https://www.youtube.com/watch?v=-mc6-uem7vM

# สรุป: Your HomeLab DNS Needs a Backup // Technitium

- **ช่อง:** Christian Lempa · **ความยาว:** ~21 นาที · **ลิงก์:** https://www.youtube.com/watch?v=-mc6-uem7vM

## ประเด็นหลัก

- การตั้งค่า DNS บนเซิร์ฟเวอร์เดียวเป็นอันตราย เพราะถ้าเซิร์ฟเวอร์ล้มเหลวทุกอย่างจะหยุดทำงาน
- Technitium DNS มีฟังก์ชันการกลุ่มเซิร์ฟเวอร์ (clustering) ที่ช่วยให้สามารถซิงโครไนซ์การตั้งค่า DNS ข้ามหลายคอนเทนเนอร์
- การตั้งค่าสามารถทำบนเซิร์ฟเวอร์แยกกัน (แนะนำ) หรือบนโน๊ดเดียวกันสำหรับการทดสอบ
- เซิร์ฟเวอร์สำรองไม่ใช่แค่ cold backup แต่สามารถรับคำขอ DNS ได้ทันทีจากไคลเอนต์
- ใช้ Docker Compose สำหรับการปรับใช้คอนเทนเนอร์ Technitium DNS
- ต้องใช้เวอร์ชันเดียวกันบนทุกเซิร์ฟเวอร์ใน cluster
- ตั้งค่า DNS_SERVER_DOMAIN สำหรับทุกเซิร์ฟเวอร์ด้วยชื่อที่ไม่ซ้ำกัน
- เซิร์ฟเวอร์หลักคือที่ทำการเปลี่ยนแปลง และการเปลี่ยนแปลงจะซิงโครไนซ์ไปยังเซิร์ฟเวอร์อื่นๆ อัตโนมัติ

## ความเห็นสรุป

วิดีโอนี้แสดงให้เห็นวิธีการสร้างระบบ DNS ที่เชื่อถือได้สำหรับโฮมแล็บด้วยการใช้ Technitium clustering แนวคิดคือการใช้หลายเซิร์ฟเวอร์ที่สามารถตอบสนองคำขอได้พร้อมกัน ไม่ใช่รอเซิร์ฟเวอร์หลักล้มเหลวก่อน การตั้งค่าซับซ้อนพอสมควรแต่ไม่ยากเกินไปสำหรับผู้ใช้งานระดับกลาง สิ่งสำคัญคือการใช้เซิร์ฟเวอร์ฮาร์ดแวร์ที่แยกกันเพื่อความเสถียรของระบบ
02

คำแปลเต็ม

แปลตามบทสนทนาต้นฉบับ ปรับเป็นภาษาไทยธรรมชาติ

ในบทสอน Technitiumก่อนหน้านี้ ผมสร้างการตั้งค่า DNS ที่ต้องการอย่างแท้จริงสำหรับโฮมแล็บของผม เซิร์ฟเวอร์ DNS ที่มีความสามารถในการค้นห้ย้อนกลับ (recursive DNS server) ทำงานผ่าน Docker จัดการผ่านส่วนติดต่อเว็บที่สะอาดและทำงานอัตโนมัติผ่าน infrastructure as code ปัญหาเดียวคือผมสร้างมันบนเซิร์ฟเวอร์เดียวเท่านั้น และเมื่อเซิร์ฟเวอร์หรือคอนเทนเนอร์นั้นเกิดขัดข้อง ทุกอย่างในโฮมแล็บของผมจะไม่ทำงานอีกต่อไป นั่นเป็นเหตุผลว่าทำไมวันนี้ผมจะแสดงให้คุณเห็นวิธีการเพิ่มเซิร์ฟเวอร์ Technitium ที่สองหรือแม้กระทั่งเซิร์ฟเวอร์ที่สามเป็นเซิร์ฟเวอร์สำรอง เราจะใช้ฟังก์ชันการกลุ่มเซิร์ฟเวอร์ (clustering function) ที่มีอยู่แล้วใน Technitium ซึ่งช่วยให้คุณสามารถซิงโครไนซ์การตั้งค่า DNS ผ่านหลายคอนเทนเนอร์ที่คุณสามารถทำงานบนเซิร์�วอร์แยกกัน ซึ่งทั้งหมดสามารถตอบสนองคำขอ DNS จากไคลเอนต์ของคุณได้อย่างแท้จริงในภายหลัง

นี่นับเป็นการตั้งค่าที่ค่อนข้างพบเห็นได้บ่อยในสภาพแวดล้อม IT ระดับมืออาชีพเพราะในเครือข่าย สิ่งมากมายขึ้นอยู่กับ DNS ดังนั้นในความคิดเห็นของผม นี่คือสิ่งจำเป็นสำหรับการตั้งค่าเครือข่ายที่เชื่อถือได้ และเชื่อเถอะผมสิ มันก็ไม่ได้ซับซ้อนเลยที่จะตั้งค่า

อะไรนะครับผม เรามาดูรูปแบบง่ายๆ ที่สรุปว่าเราจะสร้างสิ่งที่ไหนวันนี้แบบละเอียด เป็นไปได้ว่าผมได้นำการตั้งค่านี้ไปใช้ในโฮมแล็บของตัวเองแล้ว มันกำลังทำงานจริงอยู่แล้วและทำงานได้ดีเยี่ยมมาก อาจจะแสดงให้คุณเห็นในภายหลังแต่ผมก็ได้เพิ่มเซิร์ฟเวอร์ DNS ที่สามด้วย ดังนั้นคุณสามารถขยายการตั้งค่านี้ได้อย่างง่ายดายถ้าคุณต้องการ เนื่องจากมันสมเหตุสมผลที่สุดเมื่อคุณจะปรับใช้คอนเทนเนอร์ DNS Technitium บนเครื่องจักรฮาร์ดแวร์ที่แยกกันในการตั้งค่าของผม ผมกำลังทำงานบน Proxmox cluster โดยฟรีโน๊ด และผมได้กระจายคอนเทนเนอร์ DNS Technitium ไปยังทุกฟรีโน๊ดดังนั้น ทุกครั้งที่ผมรีบูตเซิร์ฟเวอร์ Proxmox หนึ่งในนั้น เซิร์ฟเวอร์ DNS ที่สองหรือที่สามสามารถเข้ามาเป็นตัวทดแทนและตอบสนองคำขอจากไคลเอนต์ของผมได้

เป็นไปได้มากว่าถ้าคุณยังไม่ได้ดูวิดีโอแรกของผมเกี่ยวกับวิธีการปรับใช้ Technitium ด้วยการตั้งค่า Docker Compose ง่ายๆ ให้ไปดูวิดีโอนั้นก่อน แน่นอนว่าผมได้วางลิงก์ไว้ในคำอธิบายวันนี้ เราจะขยายบนการตั้งค่านี้ ดังนั้นผมจะไม่อธิบายทุกอย่างตั้งแต่ต้น แค่บางส่วนเท่านั้น

## การตั้งค่าการกลุ่มเซิร์ฟเวอร์ DNS Technitium

ในบทนี้ผมได้เตรียมไว้สำหรับการสาธิตสองเครื่องจำลองเครื่องเสมือนเล็กๆ บน Proxmox cluster ของผมที่ทำงานบน Ubuntu Linux และ Docker engine และแน่นอนว่าผมได้ปรับใช้เซิร์ฟเวอร์ DNS Technitium ด้วย Docker Compose แล้ว เหมือนเช่นในบทสอนแรกของผม ผมทำเพราะผมสามารถแสดงให้คุณเห็นได้ดีว่าคุณสามารถตั้งค่าสิ่งนี้จากศูนย์ได้อย่างสมบูรณ์โดยไม่ต้องทำลายการตั้งค่า DNS ที่มีอยู่แล้วดังนั้นนั่นคือเหตุผลว่าทำไมเราใช้สาธิตเล็กๆ นี้ แต่คุณสามารถเพิ่มเซิร์ฟเวอร์เพิ่มเติมได้อย่างง่ายดาย เช่นที่ผมบอกไปว่าเซิร์ฟเวอร์ที่สามหรือแม้กระทั่งเซิร์�วอร์ที่สี่อาจจะทำงานบนเครื่องจักรฮาร์ดแวร์แยกกันซึ่งจะดีที่สุด แต่สำหรับสาธิตนี้ผมคิดว่าสมควรที่จะทำงานบนโน๊ดเดียวกัน และสำหรับสิ่งนี้ผมยังได้ปรับใช้เซิร์ฟเวอร์ทดสอบไคลเอนต์ที่ทำงานบน Ubuntu desktop ดังนั้นที่นี้ผมสามารถแสดงให้คุณเห็นว่ามันทำงานอย่างไรเมื่อเซิร์ฟเวอร์หนึ่งในนี้เกิดขัดข้อง ขณะนี้มาเข้าไปที่เทอมินัล ดังนั้นที่นี่ผมเชื่อมต่อกับเซิร์ฟเวอร์ DNS ทั้งสอง ดังนั้นในไดเรกทอรีนี้ผมได้เพิ่มไฟล์ docker-compose.yml ไฟล์นี้มีการปรับใช้แอปพลิเคชันของ technitium ทำงานเวอร์ชันล่าสุด มันสำคัญที่จะใช้เวอร์ชันเดียวกันบนทุกโน๊ด cluster ผมคิดว่านั่นคือที่แนะนำและควรจะเป็นภาษาที่อธิบายตัวเองได้ และแต่ละคอนเทนเนอร์จะได้ชื่อโฮสต์แยกกัน ตัวแรกคือ DNS-test1 เซิร์ฟเวอร์ที่สองคือ DNS-test2 แน่นอนว่าดังนั้นนั่นจึงสมควร และผมยังได้ตั้งค่าค่าแวริเอิบิลสภาพแวดล่่ง DNS_SERVER_DOMAIN สำหรับเซิร์ฟเวอร์ DNS เหล่านี้ทุกตัว คุณสามารถตั้งค่านี้ใน web UI ในภายหลังได้ด้วย ผมแสดงให้คุณเห็นสิ่งนี้ แต่สิ่งที่สำคัญคือคุณต้องตั้งค่าทั้งสองเซิร์ฟเวอร์ DNS ด้วย primary identity ใน cluster domain ดังนั้นนั่นหมายความว่าทุกเซิร์ฟเวอร์ DNS ควรจะมีชื่อที่ไม่ซ้ำกัน จุด แล้ว cluster domain ในตัวอย่างของผมผมเรียกว่า technitiumcluster.est ใน production homelab ของผมมันคือ DNSC cluster.home.crave.de ดังนั้นเพียงเลือกชื่อที่ไม่ซ้ำกันที่สุด ควรเป็น zone แยกสำหรับการระบุตัวตนของ technitium cluster ดังนั้นอย่าวางมันไว้บน DNS zone ทั่วไปที่คุณใช้สำหรับเซิร์ฟเวอร์อื่นๆ ที่เป็น uh Technicium ใช้ cluster domain สำหรับตัวตนของ node, บันทึก cluster, catalog zone และ TLSA records ซึ่งจำเป็นสำหรับการสื่อสารที่ปลอดภัย ดังนั้นเลือก domain ที่ไม่ซ้ำกันและไม่ขัดแย้งกับ zone ที่มีอยู่

## การทดสอบการล้มเหลว

ขอให้เราทำการทดสอบ failover อย่างรวดเร็วด้วย เพื่อให้เราปิดเซิร์ฟเวอร์ technitium ที่สองด้วย docker-compose down ถ้าเรากลับมาที่เซิร์ฟเวอร์แรก เมื่อเราไปที่ administration clustering คุณควรจะเห็นว่าตัวที่สองกลายเป็น unreachable ดังนั้นถ้าเกิดเช่นนี้คุณจะรู้ว่ามีอะไรผิดพลาดกับเซิร์ฟเวอร์ DNS และการซิงโครไนซ์ถูกหยุดชั่วคราวจนกว่าจะออนไลน์อีกครั้ง แต่ถ้าเรากลับไปที่เครื่อง Ubuntu ให้เราเช่นเดียวกันทำ DNS query อีกครั้ง คุณสามารถเห็นว่า response มาทันทีและคุณควรจะสามารถแก้ไข DNS queries ได้เมื่อเซิร์ฟเวอร์ใดเซิร์ฟเวอร์หนึ่งเป็น offline ไม่ใช่ปัญหา และใช่นี่คือวิธีที่ผมได้ทำให้การตั้งค่า DNS ในโฮมแล็บของผมเชื่อถือได้มากขึ้น

บทสรุปที่ผมต้องการสรุปท้ายนี้คือคำเตือนสองสามอย่างที่ผมได้เรียนรู้ ดังนั้นก่อนอื่นนี่คือสิ่งที่คุณสามารถทำเพื่อให้ได้ host redundancy จริงสำหรับ DNS queries ของคุณ และนี่ไม่ใช่แค่ cold backup ดังนั้นเซิร์ฟเวอร์ที่สองหรือที่สามไม่ได้นั่งรอให้เซิร์ฟเวอร์แรกล้มเหลว ไคลเอนต์ใดๆ สามารถส่ง DNS requests ไปยังเซิร์ฟเวอร์ใดๆ ได้ ทั้งหมดตอบกลับ และสิ่งสำคัญคือเซิร์ฟเวอร์ DNS แรก เซิร์ฟเวอร์หลักยังคงเป็นเซิร์ฟเวอร์ DNS หลักของคุณ ไม่ว่าคุณจะทำการเปลี่ยนแปลงอะไรเช่นถ้าคุณลบ zones หรือ records ที่นี่ มันสามารถซิงโครไนซ์ไปยังเซิร์ฟเวอร์อื่นๆ ได้เช่นกัน นี่ก็คือสถานที่ที่คุณเชื่อมต่อ infrastructure as code และ automation tools หรือใช้ technitium API คุณเสมอทำการเปลี่ยนแปลงเหล่านี้บนเซิร์ฟเวอร์หลักและนั่นคือการส่งออกการเปลี่ยนแปลงไปยังตัวอื่นๆ ดังนั้นนี่คือทั้งหมดสำหรับวันนี้ ขอบคุณมากสำหรับการรับชม ฉันหวังว่าฉันสามารถช่วยคุณได้ในการตั้งค่า DNS clustering ที่เชื่อถือได้สำหรับโฮมแล็บของคุณเอง

04

อภิธานศัพท์เทคนิค

คำศัพท์และชื่อผลิตภัณฑ์ที่คงรูปภาษาอังกฤษ

ศัพท์คำแปล / คำอธิบาย
| คำศัพท์คำแปล / คำอธิบาย
Technitiumเซิร์ฟเวอร์ DNS โอเพนซอร์ส (เก็บศัพท์เป็นภาษาอังกฤษ)
DNS clusteringการกลุ่มเซิร์ฟเวอร์ DNS เพื่อให้เซิร์ฟเวอร์หลายตัวทำงานร่วมกันและซิงโครไนซ์ข้อมูล
recursive DNS serverเซิร์ฟเวอร์ DNS ที่มีความสามารถในการค้นห้ย้อนกลับจากชื่อโดเมนไปยัง IP address
Docker containerคอนเทนเนอร์ที่รันบน Docker (เก็บศัพท์เป็นภาษาอังกฤษ)
Docker Composeเครื่องมือสำหรับจัดการแอปพลิเคช์ Docker หลายตัวพร้อมกัน (เก็บศัพท์เป็นภาษาอังกฤษ)
clustering functionฟังก์ชันการกลุ่มเซิร์ฟเวอร์ใน Technitium ที่ช่วยให้ซิงโครไนซ์การตั้งค่า
primary serverเซิร์ฟเวอร์หลักที่ทำหน้าที่เป็นแหล่งข้อมูลหลักใน cluster
secondary serverเซิร์ฟเวอร์รองที่ทำหน้าที่รับคำขอเมื่อเซิร์ฟเวอร์หลักพร้อมใช้งาน
cold backupข้อมูลสำรองที่ไม่ได้ทำงานจนกว่าจะมีปัญหาเกิดขึ้น
failoverการสลับไปใช้ระบบสำรองเมื่อระบบหลักเกิดขัดข้อง
Proxmoxซอฟต์แวร์เซิร์ฟเวอร์เสมือน (เก็บศัพท์เป็นภาษาอังกฤษ)
DHCP serverเซิร์ฟเวอร์สำหรับจัดการ IP address ให้กับอุปกรณ์ในเครือข่าย (เก็บศัพท์เป็นภาษาอังกฤษ)
zoneพื้นที่การจัดการ DNS สำหรับโดเมนหนึ่งๆ
DNS recordsบันทึกข้อมูลในระบบ DNS เช่น A record, PTR record
TLSA recordsบันทึกสำหรับความปลอดภัยของการเชื่อมต่อ TLS (เก็บศัพท์เป็นภาษาอังกฤษ)
infrastructure as codeการใช้โค้ดเพื่อจัดการและปรับใช้โครงสร้างพื้นฐาน
05

ซับไตเติ้ลภาษาไทย

ดาวน์โหลดหรือดูซับทั้งหมด

1
00:00:00,000 --> 00:00:06,610
ในบทสอน Technitiumก่อนหน้านี้

2
00:00:06,610 --> 00:00:11,397
ผมสร้างการตั้งค่า DNS

3
00:00:11,397 --> 00:00:20,514
ที่ต้องการอย่างแท้จริงสำหรับโฮมแล็บของผม

4
00:00:20,514 --> 00:00:23,934
เซิร์ฟเวอร์ DNS
thai-subtitles.srt
SubRip — ใช้กับเครื่องเล่นวิดีโอส่วนใหญ่
↓ ดาวน์โหลด
thai-subtitles.vtt
WebVTT — ใช้กับเว็บ / YouTube
↓ ดาวน์โหลด
เปิดดูซับไตเติ้ลทั้งหมด (138 segments)
1
00:00:00,000 --> 00:00:06,610
ในบทสอน Technitiumก่อนหน้านี้

2
00:00:06,610 --> 00:00:11,397
ผมสร้างการตั้งค่า DNS

3
00:00:11,397 --> 00:00:20,514
ที่ต้องการอย่างแท้จริงสำหรับโฮมแล็บของผม

4
00:00:20,514 --> 00:00:23,934
เซิร์ฟเวอร์ DNS

5
00:00:23,934 --> 00:00:33,963
ที่มีความสามารถในการค้นห้ย้อนกลับ (recursive

6
00:00:33,963 --> 00:00:40,345
DNS server) ทำงานผ่าน Docker

7
00:00:40,345 --> 00:00:52,426
จัดการผ่านส่วนติดต่อเว็บที่สะอาดและทำงานอัตโนมัติผ่าน

8
00:00:52,426 --> 00:00:57,440
infrastructure as code

9
00:00:57,440 --> 00:01:08,609
ปัญหาเดียวคือผมสร้างมันบนเซิร์ฟเวอร์เดียวเท่านั้น

10
00:01:08,609 --> 00:01:19,778
และเมื่อเซิร์ฟเวอร์หรือคอนเทนเนอร์นั้นเกิดขัดข้อง

11
00:01:19,778 --> 00:01:28,896
ทุกอย่างในโฮมแล็บของผมจะไม่ทำงานอีกต่อไป

12
00:01:28,896 --> 00:01:44,396
นั่นเป็นเหตุผลว่าทำไมวันนี้ผมจะแสดงให้คุณเห็นวิธีการเพิ่มเซิร์ฟเวอร์

13
00:01:44,396 --> 00:01:46,675
Technitium

14
00:01:46,675 --> 00:01:59,668
ที่สองหรือแม้กระทั่งเซิร์ฟเวอร์ที่สามเป็นเซิร์ฟเวอร์สำรอง

15
00:01:59,668 --> 00:02:07,645
เราจะใช้ฟังก์ชันการกลุ่มเซิร์ฟเวอร์

16
00:02:07,645 --> 00:02:16,079
(clustering function) ที่มีอยู่แล้วใน

17
00:02:16,079 --> 00:02:18,358
Technitium

18
00:02:18,358 --> 00:02:28,388
ซึ่งช่วยให้คุณสามารถซิงโครไนซ์การตั้งค่า DNS

19
00:02:28,388 --> 00:02:40,696
ผ่านหลายคอนเทนเนอร์ที่คุณสามารถทำงานบนเซิร์�วอร์แยกกัน

20
00:02:40,696 --> 00:02:47,990
ซึ่งทั้งหมดสามารถตอบสนองคำขอ DNS

21
00:02:47,990 --> 00:02:57,336
จากไคลเอนต์ของคุณได้อย่างแท้จริงในภายหลัง

22
00:02:57,336 --> 00:03:10,328
นี่นับเป็นการตั้งค่าที่ค่อนข้างพบเห็นได้บ่อยในสภาพแวดล้อม

23
00:03:10,328 --> 00:03:17,622
IT ระดับมืออาชีพเพราะในเครือข่าย

24
00:03:17,622 --> 00:03:23,321
สิ่งมากมายขึ้นอยู่กับ DNS

25
00:03:23,321 --> 00:03:29,019
ดังนั้นในความคิดเห็นของผม

26
00:03:29,019 --> 00:03:41,556
นี่คือสิ่งจำเป็นสำหรับการตั้งค่าเครือข่ายที่เชื่อถือได้

27
00:03:41,556 --> 00:03:45,203
และเชื่อเถอะผมสิ

28
00:03:45,203 --> 00:03:55,688
มันก็ไม่ได้ซับซ้อนเลยที่จะตั้งค่า อะไรนะครับผม

29
00:03:55,688 --> 00:03:59,791
เรามาดูรูปแบบง่ายๆ

30
00:03:59,791 --> 00:04:10,276
ที่สรุปว่าเราจะสร้างสิ่งที่ไหนวันนี้แบบละเอียด

31
00:04:10,276 --> 00:04:23,724
เป็นไปได้ว่าผมได้นำการตั้งค่านี้ไปใช้ในโฮมแล็บของตัวเองแล้ว

32
00:04:23,724 --> 00:04:34,437
มันกำลังทำงานจริงอยู่แล้วและทำงานได้ดีเยี่ยมมาก

33
00:04:34,437 --> 00:04:46,746
อาจจะแสดงให้คุณเห็นในภายหลังแต่ผมก็ได้เพิ่มเซิร์ฟเวอร์

34
00:04:46,746 --> 00:04:49,937
DNS ที่สามด้วย

35
00:04:49,937 --> 00:05:03,841
ดังนั้นคุณสามารถขยายการตั้งค่านี้ได้อย่างง่ายดายถ้าคุณต้องการ

36
00:05:03,841 --> 00:05:16,606
เนื่องจากมันสมเหตุสมผลที่สุดเมื่อคุณจะปรับใช้คอนเทนเนอร์

37
00:05:16,606 --> 00:05:19,797
DNS Technitium

38
00:05:19,797 --> 00:05:30,738
บนเครื่องจักรฮาร์ดแวร์ที่แยกกันในการตั้งค่าของผม

39
00:05:30,738 --> 00:05:40,084
ผมกำลังทำงานบน Proxmox cluster โดยฟรีโน๊ด

40
00:05:40,084 --> 00:05:49,201
และผมได้กระจายคอนเทนเนอร์ DNS Technitium

41
00:05:49,201 --> 00:05:54,216
ไปยังทุกฟรีโน๊ดดังนั้น

42
00:05:54,216 --> 00:06:02,650
ทุกครั้งที่ผมรีบูตเซิร์ฟเวอร์ Proxmox

43
00:06:02,650 --> 00:06:08,804
หนึ่งในนั้น เซิร์ฟเวอร์ DNS

44
00:06:08,804 --> 00:06:25,443
ที่สองหรือที่สามสามารถเข้ามาเป็นตัวทดแทนและตอบสนองคำขอจากไคลเอนต์ของผมได้

45
00:06:25,443 --> 00:06:41,171
เป็นไปได้มากว่าถ้าคุณยังไม่ได้ดูวิดีโอแรกของผมเกี่ยวกับวิธีการปรับใช้

46
00:06:41,171 --> 00:06:51,656
Technitium ด้วยการตั้งค่า Docker Compose ง่ายๆ

47
00:06:51,656 --> 00:06:56,443
ให้ไปดูวิดีโอนั้นก่อน

48
00:06:56,443 --> 00:07:05,788
แน่นอนว่าผมได้วางลิงก์ไว้ในคำอธิบายวันนี้

49
00:07:05,788 --> 00:07:11,259
เราจะขยายบนการตั้งค่านี้

50
00:07:11,259 --> 00:07:19,921
ดังนั้นผมจะไม่อธิบายทุกอย่างตั้งแต่ต้น

51
00:07:19,921 --> 00:07:24,023
แค่บางส่วนเท่านั้น

52
00:07:24,023 --> 00:07:39,523
ในบทนี้ผมได้เตรียมไว้สำหรับการสาธิตสองเครื่องจำลองเครื่องเสมือนเล็กๆ

53
00:07:39,523 --> 00:07:48,869
บน Proxmox cluster ของผมที่ทำงานบน Ubuntu

54
00:07:48,869 --> 00:07:54,111
Linux และ Docker engine

55
00:07:54,111 --> 00:08:03,001
และแน่นอนว่าผมได้ปรับใช้เซิร์ฟเวอร์ DNS

56
00:08:03,001 --> 00:08:10,979
Technitium ด้วย Docker Compose แล้ว

57
00:08:10,979 --> 00:08:16,677
เหมือนเช่นในบทสอนแรกของผม

58
00:08:16,677 --> 00:08:41,750
ผมทำเพราะผมสามารถแสดงให้คุณเห็นได้ดีว่าคุณสามารถตั้งค่าสิ่งนี้จากศูนย์ได้อย่างสมบูรณ์โดยไม่ต้องทำลายการตั้งค่า

59
00:08:41,750 --> 00:08:42,849
DNS

60
00:08:42,849 --> 00:08:55,614
ที่มีอยู่แล้วดังนั้นนั่นคือเหตุผลว่าทำไมเราใช้สาธิตเล็กๆ

61
00:08:55,614 --> 00:08:56,713
นี้

62
00:08:56,713 --> 00:09:08,565
แต่คุณสามารถเพิ่มเซิร์ฟเวอร์เพิ่มเติมได้อย่างง่ายดาย

63
00:09:08,565 --> 00:09:35,006
เช่นที่ผมบอกไปว่าเซิร์ฟเวอร์ที่สามหรือแม้กระทั่งเซิร์�วอร์ที่สี่อาจจะทำงานบนเครื่องจักรฮาร์ดแวร์แยกกันซึ่งจะดีที่สุด

64
00:09:35,006 --> 00:09:47,315
แต่สำหรับสาธิตนี้ผมคิดว่าสมควรที่จะทำงานบนโน๊ดเดียวกัน

65
00:09:47,315 --> 00:10:02,131
และสำหรับสิ่งนี้ผมยังได้ปรับใช้เซิร์ฟเวอร์ทดสอบไคลเอนต์ที่ทำงานบน

66
00:10:02,131 --> 00:10:05,322
Ubuntu desktop

67
00:10:05,322 --> 00:10:25,836
ดังนั้นที่นี้ผมสามารถแสดงให้คุณเห็นว่ามันทำงานอย่างไรเมื่อเซิร์ฟเวอร์หนึ่งในนี้เกิดขัดข้อง

68
00:10:25,836 --> 00:10:31,535
ขณะนี้มาเข้าไปที่เทอมินัล

69
00:10:31,535 --> 00:10:41,108
ดังนั้นที่นี่ผมเชื่อมต่อกับเซิร์ฟเวอร์ DNS

70
00:10:41,108 --> 00:10:50,910
ทั้งสอง ดังนั้นในไดเรกทอรีนี้ผมได้เพิ่มไฟล์

71
00:10:50,910 --> 00:10:55,013
docker-compose.yml

72
00:10:55,013 --> 00:11:05,042
ไฟล์นี้มีการปรับใช้แอปพลิเคชันของ technitium

73
00:11:05,042 --> 00:11:09,373
ทำงานเวอร์ชันล่าสุด

74
00:11:09,373 --> 00:11:18,718
มันสำคัญที่จะใช้เวอร์ชันเดียวกันบนทุกโน๊ด

75
00:11:18,718 --> 00:11:20,314
cluster

76
00:11:20,314 --> 00:11:33,306
ผมคิดว่านั่นคือที่แนะนำและควรจะเป็นภาษาที่อธิบายตัวเองได้

77
00:11:33,306 --> 00:11:42,196
และแต่ละคอนเทนเนอร์จะได้ชื่อโฮสต์แยกกัน

78
00:11:42,196 --> 00:11:51,313
ตัวแรกคือ DNS-test1 เซิร์ฟเวอร์ที่สองคือ

79
00:11:51,313 --> 00:11:59,975
DNS-test2 แน่นอนว่าดังนั้นนั่นจึงสมควร

80
00:11:59,975 --> 00:12:09,548
และผมยังได้ตั้งค่าค่าแวริเอิบิลสภาพแวดล่่ง

81
00:12:09,548 --> 00:12:18,438
DNS_SERVER_DOMAIN สำหรับเซิร์ฟเวอร์ DNS

82
00:12:18,438 --> 00:12:28,239
เหล่านี้ทุกตัว คุณสามารถตั้งค่านี้ใน web UI

83
00:12:28,239 --> 00:12:37,357
ในภายหลังได้ด้วย ผมแสดงให้คุณเห็นสิ่งนี้

84
00:12:37,357 --> 00:12:48,754
แต่สิ่งที่สำคัญคือคุณต้องตั้งค่าทั้งสองเซิร์ฟเวอร์

85
00:12:48,754 --> 00:12:58,555
DNS ด้วย primary identity ใน cluster domain

86
00:12:58,555 --> 00:13:07,673
ดังนั้นนั่นหมายความว่าทุกเซิร์ฟเวอร์ DNS

87
00:13:07,673 --> 00:13:16,790
ควรจะมีชื่อที่ไม่ซ้ำกัน จุด แล้ว cluster

88
00:13:16,790 --> 00:13:24,084
domain ในตัวอย่างของผมผมเรียกว่า

89
00:13:24,084 --> 00:13:33,885
technitiumcluster.est ใน production homelab

90
00:13:33,885 --> 00:13:42,547
ของผมมันคือ DNSC cluster.home.crave.de

91
00:13:42,547 --> 00:13:51,437
ดังนั้นเพียงเลือกชื่อที่ไม่ซ้ำกันที่สุด

92
00:13:51,437 --> 00:13:59,870
ควรเป็น zone แยกสำหรับการระบุตัวตนของ

93
00:13:59,870 --> 00:14:10,128
technitium cluster ดังนั้นอย่าวางมันไว้บน DNS

94
00:14:10,128 --> 00:14:19,701
zone ทั่วไปที่คุณใช้สำหรับเซิร์ฟเวอร์อื่นๆ

95
00:14:19,701 --> 00:14:33,605
ที่เป็น uh Technicium ใช้ cluster domain สำหรับตัวตนของ node,

96
00:14:33,605 --> 00:14:43,862
บันทึก cluster, catalog zone และ TLSA records

97
00:14:43,862 --> 00:14:52,068
ซึ่งจำเป็นสำหรับการสื่อสารที่ปลอดภัย

98
00:14:52,068 --> 00:14:56,399
ดังนั้นเลือก domain

99
00:14:56,399 --> 00:15:06,200
ที่ไม่ซ้ำกันและไม่ขัดแย้งกับ zone ที่มีอยู่

100
00:15:06,200 --> 00:15:16,230
ขอให้เราทำการทดสอบ failover อย่างรวดเร็วด้วย

101
00:15:16,230 --> 00:15:24,435
เพื่อให้เราปิดเซิร์ฟเวอร์ technitium

102
00:15:24,435 --> 00:15:31,274
ที่สองด้วย docker-compose down

103
00:15:31,274 --> 00:15:41,075
ถ้าเรากลับมาที่เซิร์ฟเวอร์แรก เมื่อเราไปที่

104
00:15:41,075 --> 00:15:46,773
administration clustering

105
00:15:46,773 --> 00:15:56,803
คุณควรจะเห็นว่าตัวที่สองกลายเป็น unreachable

106
00:15:56,803 --> 00:16:10,251
ดังนั้นถ้าเกิดเช่นนี้คุณจะรู้ว่ามีอะไรผิดพลาดกับเซิร์ฟเวอร์

107
00:16:10,251 --> 00:16:11,350
DNS

108
00:16:11,350 --> 00:16:23,658
และการซิงโครไนซ์ถูกหยุดชั่วคราวจนกว่าจะออนไลน์อีกครั้ง

109
00:16:23,658 --> 00:16:30,953
แต่ถ้าเรากลับไปที่เครื่อง Ubuntu

110
00:16:30,953 --> 00:16:39,842
ให้เราเช่นเดียวกันทำ DNS query อีกครั้ง

111
00:16:39,842 --> 00:16:45,541
คุณสามารถเห็นว่า response

112
00:16:45,541 --> 00:16:54,886
มาทันทีและคุณควรจะสามารถแก้ไข DNS queries

113
00:16:54,886 --> 00:17:04,231
ได้เมื่อเซิร์ฟเวอร์ใดเซิร์ฟเวอร์หนึ่งเป็น

114
00:17:04,231 --> 00:17:08,562
offline ไม่ใช่ปัญหา

115
00:17:08,562 --> 00:17:18,364
และใช่นี่คือวิธีที่ผมได้ทำให้การตั้งค่า DNS

116
00:17:18,364 --> 00:17:25,658
ในโฮมแล็บของผมเชื่อถือได้มากขึ้น

117
00:17:25,658 --> 00:17:40,702
บทสรุปที่ผมต้องการสรุปท้ายนี้คือคำเตือนสองสามอย่างที่ผมได้เรียนรู้

118
00:17:40,702 --> 00:17:52,098
ดังนั้นก่อนอื่นนี่คือสิ่งที่คุณสามารถทำเพื่อให้ได้

119
00:17:52,098 --> 00:18:02,356
host redundancy จริงสำหรับ DNS queries ของคุณ

120
00:18:02,356 --> 00:18:08,510
และนี่ไม่ใช่แค่ cold backup

121
00:18:08,510 --> 00:18:24,466
ดังนั้นเซิร์ฟเวอร์ที่สองหรือที่สามไม่ได้นั่งรอให้เซิร์ฟเวอร์แรกล้มเหลว

122
00:18:24,466 --> 00:18:26,973
ไคลเอนต์ใดๆ

123
00:18:26,973 --> 00:18:37,458
สามารถส่ง DNS requests ไปยังเซิร์ฟเวอร์ใดๆ ได้

124
00:18:37,458 --> 00:18:47,715
ทั้งหมดตอบกลับ และสิ่งสำคัญคือเซิร์ฟเวอร์ DNS

125
00:18:47,715 --> 00:18:57,517
แรก เซิร์ฟเวอร์หลักยังคงเป็นเซิร์ฟเวอร์ DNS

126
00:18:57,517 --> 00:18:59,796
หลักของคุณ

127
00:18:59,796 --> 00:19:09,597
ไม่ว่าคุณจะทำการเปลี่ยนแปลงอะไรเช่นถ้าคุณลบ

128
00:19:09,597 --> 00:19:15,296
zones หรือ records ที่นี่

129
00:19:15,296 --> 00:19:24,413
มันสามารถซิงโครไนซ์ไปยังเซิร์ฟเวอร์อื่นๆ

130
00:19:24,413 --> 00:19:33,759
ได้เช่นกัน นี่ก็คือสถานที่ที่คุณเชื่อมต่อ

131
00:19:33,759 --> 00:19:43,560
infrastructure as code และ automation tools

132
00:19:43,560 --> 00:19:48,575
หรือใช้ technitium API

133
00:19:48,575 --> 00:20:10,001
คุณเสมอทำการเปลี่ยนแปลงเหล่านี้บนเซิร์ฟเวอร์หลักและนั่นคือการส่งออกการเปลี่ยนแปลงไปยังตัวอื่นๆ

134
00:20:10,001 --> 00:20:17,295
ดังนั้นนี่คือทั้งหมดสำหรับวันนี้

135
00:20:17,295 --> 00:20:22,538
ขอบคุณมากสำหรับการรับชม

136
00:20:22,538 --> 00:20:32,795
ฉันหวังว่าฉันสามารถช่วยคุณได้ในการตั้งค่า DNS

137
00:20:32,795 --> 00:20:35,074
clustering

138
00:20:35,074 --> 00:20:43,280
ที่เชื่อถือได้สำหรับโฮมแล็บของคุณเอง