DNS Update
This commit is contained in:
@@ -58,9 +58,25 @@ Ein FQDN (Fully Qualified Domain Name) wird von rechts nach links gelesen: `www.
|
|||||||
3. **SLD (`example`)**: Second-Level-Domain. Deine Domain.
|
3. **SLD (`example`)**: Second-Level-Domain. Deine Domain.
|
||||||
4. **Subdomain (`www`)**: Hostname in deiner Zone.
|
4. **Subdomain (`www`)**: Hostname in deiner Zone.
|
||||||
|
|
||||||
**Abfrage-Typen:**
|
**Abfrage-Typen (Erklärt für 8-80 Jährige):**
|
||||||
- **Iterativ:** "Ich kenne die Antwort nicht, aber hier ist die IP vom Server, der es weiß." (Verhalten der Root/TLD Server).
|
- **Iterativ (Die 80-jährige Bibliothekarin):** Du fragst: "Wo ist das Buch über Ameisen?" Sie sagt: "Ich weiß es nicht, aber geh in den 2. Stock zu Frau Müller, die ist zuständig für Biologie." Du gehst zu Frau Müller. Sie sagt: "Geh zu Regal 4." Du gehst zu Regal 4. (Du musst die Arbeit machen).
|
||||||
- **Rekursiv:** "Ich frage für dich nach und gebe dir das fertige Ergebnis." (Verhalten deines lokalen Resolvers/ISPs).
|
- **Rekursiv (Das 8-jährige Kind):** Das Kind fragt: "Warum ist der Himmel blau?" Du (als Server) googelst es, liest drei Wikipedia-Artikel, fasst es zusammen und sagst dem Kind einfach: "Wegen der Lichtbrechung." (Das Kind wartet nur auf die fertige Antwort).
|
||||||
|
* **Dein PC** stellt rekursive Anfragen (will Ergebnisse).
|
||||||
|
* **Root-Server** antworten nur iterativ (schicken dich weiter).
|
||||||
|
|
||||||
|
### Konzept 3: Der Weg der Anfrage (Und warum es dauert)
|
||||||
|
|
||||||
|
Wie kommt `facebook.com` auf deinen Bildschirm?
|
||||||
|
|
||||||
|
1. **Client (Stub Resolver):** Chrome fragt das OS. OS schaut in den Cache. Nix da?
|
||||||
|
2. **Router (Forwarder):** Anfrage geht an die FritzBox. Die weiß es auch nicht -> ab zum Provider.
|
||||||
|
3. **ISP Recursor:** Der DNS-Server der Telekom/Vodafone. Der macht die Arbeit.
|
||||||
|
* Fragt Root (`.`) -> "Geh zu `.com` Servern".
|
||||||
|
* Fragt TLD (`.com`) -> "Geh zu `facebook.com` Nameservern".
|
||||||
|
* Fragt Authoritative (`ns1.facebook.com`) -> "Hier ist die IP!".
|
||||||
|
4. **Rückweg & Cache:** Der ISP merkt sich die Antwort für die dauer der **TTL** (Time To Live).
|
||||||
|
* *TTL = 86400 (24h)*: Wenn Facebook die IP ändert, bekommt der ISP das erst morgen mit.
|
||||||
|
* *Kaskade:* Browser cachet, OS cachet, Router cachet, ISP cachet. Änderungen können dauern!
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -82,7 +98,13 @@ Das Herzstück. Textdateien, die die Records enthalten.
|
|||||||
| **CNAME** | **Canonical Name**. Alias auf einen *anderen Namen* (nicht IP!). | `ftp IN CNAME www.example.com.` |
|
| **CNAME** | **Canonical Name**. Alias auf einen *anderen Namen* (nicht IP!). | `ftp IN CNAME www.example.com.` |
|
||||||
| **MX** | **Mail Exchange**. Wo gehen Mails hin? Mit Priorität. | `IN MX 10 mail.example.com.` |
|
| **MX** | **Mail Exchange**. Wo gehen Mails hin? Mit Priorität. | `IN MX 10 mail.example.com.` |
|
||||||
| **PTR** | **Pointer**. Reverse DNS (IP -> Name). Wichtig für Mailserver. | `1 IN PTR www.example.com.` |
|
| **PTR** | **Pointer**. Reverse DNS (IP -> Name). Wichtig für Mailserver. | `1 IN PTR www.example.com.` |
|
||||||
| **TXT** | **Text**. Beliebiger Text. Oft für SPF, DKIM, Verification. | `IN TXT "v=spf1 ..."` |
|
| **TXT** | **Text**. Beliebiger Text. Essentiell für **SPF** (Wer darf Mail senden?) & **DKIM** (Krypto-Signatur für Mails). | `IN TXT "v=spf1 ..."` |
|
||||||
|
| **CAA** | **Certificate Authority Authorization**. Wer darf TLS-Zertifikate für mich ausstellen? Schutz gegen falsche Ausstellung. | `IN CAA 0 issue "letsencrypt.org"` |
|
||||||
|
|
||||||
|
**Spezialfall: Glue Records (Das Henne-Ei-Problem)**
|
||||||
|
Wenn dein Nameserver HINTER der Domain liegt, die er auflösen soll (z.B. Zone `example.com`, Nameserver `ns1.example.com`), gibt es ein Problem:
|
||||||
|
Um `example.com` zu finden, muss ich `ns1.example.com` fragen. Um `ns1.example.com` zu finden, muss ich `example.com` auflösen. 🤯
|
||||||
|
**Lösung:** Die übergeordnete Zone (`.com`) speichert nicht nur den Namen des NS, sondern auch direkt dessen IP ("Glue" / Klebstoff).
|
||||||
|
|
||||||
**Anatomie eines SOA Records:**
|
**Anatomie eines SOA Records:**
|
||||||
```dns
|
```dns
|
||||||
@@ -131,16 +153,41 @@ domain example.com
|
|||||||
### Dig (Domain Information Groper)
|
### Dig (Domain Information Groper)
|
||||||
Das Werkzeug der Wahl für Profis. Vergiss `nslookup` (deprecated/inkonsistent).
|
Das Werkzeug der Wahl für Profis. Vergiss `nslookup` (deprecated/inkonsistent).
|
||||||
|
|
||||||
|
### Dig Deep Dive: MX Analyse
|
||||||
|
|
||||||
|
`dig gmail.com MX` liefert dir die Wahrheit über Mailserver. Schauen wir uns den Output an (vereinfacht):
|
||||||
|
|
||||||
|
```text
|
||||||
|
;; QUESTION SECTION:
|
||||||
|
;gmail.com. IN MX (Was haben wir gefragt?)
|
||||||
|
|
||||||
|
;; ANSWER SECTION: (Die Antwort!)
|
||||||
|
gmail.com. 306 IN MX 5 gmail-smtp-in.l.google.com.
|
||||||
|
gmail.com. 306 IN MX 10 alt1.gmail-smtp-in.l.google.com.
|
||||||
|
| | | | | |
|
||||||
|
| | | | | Target Server
|
||||||
|
| | | | Priority (Niedriger = Wichtiger)
|
||||||
|
| | | Record Type
|
||||||
|
| | Class (Internet)
|
||||||
|
| TTL (Sekunden bis Cache verfällt)
|
||||||
|
Domain Name
|
||||||
|
|
||||||
|
;; ADDITIONAL SECTION: (Kostenloser Service!)
|
||||||
|
gmail-smtp-in.l.google.com. 78 IN A 142.250.153.27
|
||||||
|
(Der Server liefert die IPs der Mailserver gleich mit, damit du nicht nochmal fragen musst -> Optimierung!)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Warum mehrere Einträge? (Die Logik dahinter)**
|
||||||
|
1. **Redundanz (Failover):** Mailserver sind kritisch. Der Absender versucht es immer erst beim Server mit der **niedrigsten Zahl** (im Beispiel `5`). Ist dieser tot (Timeout/Connection Refused), wird der nächste (`10`) probiert.
|
||||||
|
2. **Lastverteilung:** Haben zwei Server die *gleiche* Zahl, wird die Last zufällig zwischen ihnen aufgeteilt.
|
||||||
|
|
||||||
|
|
||||||
|
Weitere nützliche Befehle:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Standard Abfrage (A Record)
|
# Standard Abfrage (A Record)
|
||||||
dig example.com
|
dig example.com
|
||||||
|
|
||||||
# Bestimmten Record-Typ abfragen
|
|
||||||
dig example.com MX
|
|
||||||
|
|
||||||
# Bestimmten Nameserver befragen (Bypass lokaler Resolver)
|
|
||||||
dig @8.8.8.8 example.com
|
|
||||||
|
|
||||||
# Trace vom Root bis zur Antwort (Sehr lehrreich!)
|
# Trace vom Root bis zur Antwort (Sehr lehrreich!)
|
||||||
dig +trace example.com
|
dig +trace example.com
|
||||||
|
|
||||||
|
|||||||
@@ -51,23 +51,43 @@ Eine exzellente Wahl! Modular, reparierbar, zukunftssicher.
|
|||||||
## 🐧 Die Wahl des Betriebssystems
|
## 🐧 Die Wahl des Betriebssystems
|
||||||
|
|
||||||
Du stehst vor der Wahl: **Debian** vs. **Ubuntu (MATE)** vs. **Mint**.
|
Du stehst vor der Wahl: **Debian** vs. **Ubuntu (MATE)** vs. **Mint**.
|
||||||
|
Nach intensiven Tests fiel die Entscheidung klar auf **Debian**.
|
||||||
|
|
||||||
### 1. Debian (Stable/Bookworm) "The Rock" 🪨
|
### 1. Debian (Testing/Trixie u.a.) "The Professional Choice" 🏆
|
||||||
- **Pro:** Maximale Stabilität, keine Überraschungen, keine Zwangs-Snaps.
|
- **Warum Debian?**
|
||||||
- **Contra:** Software oft älter. Für Ryzen 7040 brauchst du zwingend einen neueren Kernel (Backports) und Non-Free Firmware.
|
- **Kontrolle:** Der Installer lässt komplexe Partitionierung (LVM entcryptet, RAID1, separate Partitionen für `/`, `/home`, `/var`) problemlos zu.
|
||||||
- **Fingerprint:** Kann frickelig sein, Pakete sind oft älter.
|
- **Performance:** Der MATE Desktop "summt" und ist spürbar schneller als auf anderen Derivaten.
|
||||||
- **Fazit:** Für Puristen, die alles kontrollieren wollen.
|
- **Hardware:** Mit Debian 13/Testing konnten alle Treiber für das Framework (Sound, Fingerprint, Cam/Mic) identifiziert werden.
|
||||||
|
- **Sauberkeit:** Kein Snap-Zwang. `/var/tmp` unter Kontrolle. "Naked" Install möglich.
|
||||||
|
- **Fazit:** Die Wahl für hohe Lernkurve und Langzeit-Stabilität.
|
||||||
|
|
||||||
|
### 2. Ubuntu (MATE) "The Easy Trap" ⚠️
|
||||||
|
- **Warum nicht?**
|
||||||
|
- **Overhead:** Snap Pakete blähen das System auf und machen es langsamer.
|
||||||
|
- **Installer-Limit:** Kryptografisches LVM mit custom Partitionen (Root/Home/Var getrennt) ist im Desktop-Installer ("Einfach") kaum bis gar nicht machbar.
|
||||||
|
- **Risiko:** Kleine Repositories/Teams (z.B. ubuntu-mate.org mit wenigen Entwicklern) bergen ein Risiko.
|
||||||
|
- **Fazit:** "Einfach" bedeutet hier oft doppelte Arbeit im Nachgang.
|
||||||
|
|
||||||
|
### 3. Linux Mint
|
||||||
|
- Solide, aber ähnliche Einschränkungen wie Ubuntu, wenn man tief ins System ("unter die Haube") will.
|
||||||
|
|
||||||
|
### 4. Arch Linux "The Bleeding Edge" 🩸
|
||||||
|
- **Pro:** Rolling Release (immer neuester Kernel für Ryzen 7040), AUR (alles verfügbar), Arch Wiki.
|
||||||
|
- **Contra:**
|
||||||
|
- **Update-Risiko:** "Bleeding Edge" heißt auch: Es blutet manchmal. Geht das Mikro vor dem Meeting noch?
|
||||||
|
- **AUR Risiko:** Das User Repository wird von Usern gepflegt. **Vorsicht:** Du führst fremde Skripte (PKGBUILD) aus. Malware/Fehler sind möglich!
|
||||||
|
- **Fazit:** Perfekt für Enthusiasten, aber riskant für eine "Production Workstation", die einfach laufen muss.
|
||||||
|
|
||||||
|
### 5. Gentoo "The Excalibur" 🗡️
|
||||||
|
- **Pro:** Maximale Kontrolle (USE Flags), schnellstmögliche Binaries.
|
||||||
|
- **Contra:** Kompilierzeiten! Auf einem Laptop (Hitze/Akku) oft unpraktisch für Updates "mal eben schnell".
|
||||||
|
- **Fazit:** Mächtig, aber für diesen Zweck ("Daily Driver Laptop") eventuell Overkill im Vergleich zur Maintenance-Zeit.
|
||||||
|
|
||||||
|
### 6. Die "Satire" Ecke 🤡
|
||||||
|
- **FreeBSD:** Wenn dir Debian zu aufregend ist und du wirklich *richtig* Langeweile hast (und WiFi-Treiber selbst schreiben willst).
|
||||||
|
- **OpenSUSE:** Wenn dein Englisch schlecht ist (oder du YAST liebst). Deutsche Gründlichkeit, aber auf dem Framework eher der Exot.
|
||||||
|
|
||||||
### 2. Ubuntu (MATE) "The Convenient" 🧉
|
|
||||||
- **Pro:** "It just works". Hardware-Support meist Out-of-the-Box. MATE ist leicht, klassisch (Old School GNOME 2 Feeling) und effizient.
|
|
||||||
- **Contra:** Snap Pakete (kann man entfernen, ist aber Arbeit). Mehr Telemetrie (abschaltbar).
|
|
||||||
- **Fingerprint:** Sehr gute Integration in GNOME/MATE Settings.
|
|
||||||
- **Fazit:** **Empfehlung für deinen "Sysop Laptop".** Du willst arbeiten, nicht am OS basteln.
|
|
||||||
|
|
||||||
### 3. Linux Mint "The User Friendly" 🍃
|
|
||||||
- **Pro:** Basiert auf Ubuntu LTS (stabil), kein Snap-Zwang, sehr poliert (Cinnamon/MATE).
|
|
||||||
- **Contra:** Kernel-Upgrades manchmal langsamer als bei Ubuntu HWE Stacks.
|
|
||||||
- **Fazit:** Solide Alternative zu Ubuntu MATE.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -93,43 +113,39 @@ Du hast Recht: Ein Fingerabdruck ist **biometrisch** und damit **öffentlich**.
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🛠 Das Setup (Ubuntu MATE Empfehlung)
|
## 🛠 Das Setup (Debian Way)
|
||||||
|
|
||||||
1. **Installation:**
|
1. **Installation:**
|
||||||
- Wähle "Minimal Installation" (weniger Bloat).
|
- Debian Netinstall ISO nutzen.
|
||||||
- Aktiviere: "Install third-party software" (Wichtig für WLAN/Codecs).
|
- Ziel: "Naked" System, nur Core-Tools + MATE.
|
||||||
- **WICHTIG:** "Advanced Features" -> "Erase disk and use ZFS" oder "LVM with Encryption" (LUKS).
|
- **Partitionierung (Der Knackpunkt):**
|
||||||
|
- Im Installer manuell konfigurieren.
|
||||||
|
- **LVM mit Encryption (LUKS)**.
|
||||||
|
- RAID1 (MD) möglich *vor* dem Install.
|
||||||
|
- Separate LV für `root`, `home` und `var` anlegen (Best Practice!).
|
||||||
|
|
||||||
2. **Post-Install:**
|
2. **Post-Install Experience:**
|
||||||
```bash
|
- **Wifi Connect:** DHCP läuft sauber out-of-the-box.
|
||||||
# 1. Update everything
|
- **Auto-Login:** Wenn gewünscht, konfigurierbar.
|
||||||
sudo apt update && sudo apt full-upgrade
|
- **Keine Zwangs-Updates:** Kein "Autoupdate", das ungefragt Dinge ändert.
|
||||||
|
- **Treiber:** Sound, Fingerprint (mit `fprintd`), Webcam funktionieren.
|
||||||
# 2. Firmware Updates (Wichtig für Framework!)
|
|
||||||
sudo fwupdtool get-devices
|
|
||||||
sudo fwupdtool update
|
|
||||||
|
|
||||||
# 3. Fingerprint
|
|
||||||
sudo apt install fprintd libpam-fprintd
|
|
||||||
fprintd-enroll
|
|
||||||
|
|
||||||
# 4. Tools
|
|
||||||
sudo apt install git vim htop tmux curl
|
|
||||||
```
|
|
||||||
|
|
||||||
3. **SSH Agent:**
|
3. **SSH Agent:**
|
||||||
MATE startet den Agent meist automatisch (`gnome-keyring`). Wenn du echte Kontrolle willst, nutze den klassischen `ssh-agent` in der `.bashrc`.
|
MATE startet den Agent meist automatisch (`gnome-keyring`). Wenn du echte Kontrolle willst, nutze den klassischen `ssh-agent` in der `.bashrc`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🦉 Crystal Owl's Weisheit
|
## 🦉 Crystal Owl's Weisheit (Fazit)
|
||||||
|
|
||||||
> *"Die beste Workstation ist die, die du nicht bemerkst, während du arbeitest."*
|
> *"Billig kauft man zweimal. Einfach macht man zweimal."*
|
||||||
|
|
||||||
|
**Erkenntnisse aus dem Framework Setup:**
|
||||||
|
1. **Einfach = doppelte Zeit!** (Wer den einfachen Installer nimmt, fummelt später ewig am LVM).
|
||||||
|
2. **Billig = 2 x kaufen!** (Gilt für Hardware wie Software-Qualität).
|
||||||
|
3. **Simpel = richtig machen!** (Ein sauberes Debian von Grund auf ist am Ende simpler zu warten als ein verklebtes "Easy-Distro").
|
||||||
|
|
||||||
|
Der MATE Desktop rennt, die Lernkurve war steil, aber sie zahlt sich aus ("zeitlich für endlich").
|
||||||
|
|
||||||
```
|
|
||||||
Krümel-Tipp:
|
|
||||||
Klebe keine Sticker auf den Laptop-Deckel, wenn du im Café "Grey Man" (unauffällig) bleiben willst. Ein Framework Logo ist okay, aber "HACKER INSIDE" zieht Blicke an. 😉
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -6,23 +6,26 @@ GREEN='\033[0;32m'
|
|||||||
BLUE='\033[0;34m'
|
BLUE='\033[0;34m'
|
||||||
RED='\033[0;31m'
|
RED='\033[0;31m'
|
||||||
YELLOW='\033[1;33m'
|
YELLOW='\033[1;33m'
|
||||||
|
CYAN='\033[0;36m'
|
||||||
NC='\033[0m' # No Color
|
NC='\033[0m' # No Color
|
||||||
|
|
||||||
echo -e "${BLUE}🦉 Crumbpages Doktor ist bereit!${NC}"
|
# -----------------------------------------------------------------------------
|
||||||
echo "Prüfe Vitalwerte des Waldes..."
|
# Modul: Git Doktor
|
||||||
echo "-----------------------------------"
|
# -----------------------------------------------------------------------------
|
||||||
|
function git_doktor() {
|
||||||
|
echo -e "${BLUE}--- 🌲 Git Doktor: Vitalwerte prüfen ---${NC}"
|
||||||
|
|
||||||
# 1. Check: Sind wir in einem Git Repo?
|
# 1. Check: Sind wir in einem Git Repo?
|
||||||
if [ ! -d ".git" ]; then
|
if [ ! -d ".git" ]; then
|
||||||
echo -e "${RED}❌ Fehler: Wir sind nicht im Wald (kein .git Ordner hier).${NC}"
|
echo -e "${RED}❌ Fehler: Wir sind nicht im Wald (kein .git Ordner hier).${NC}"
|
||||||
echo "Bitte führe mich im Hauptverzeichnis deines Projekts aus."
|
echo "Bitte führe mich im Hauptverzeichnis deines Projekts aus."
|
||||||
exit 1
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 2. Check: Remote Status
|
# 2. Check: Remote Status
|
||||||
echo -n "Prüfe Verbindung zum Basislager... "
|
echo -n "Prüfe Verbindung zum Basislager... "
|
||||||
git remote update > /dev/null 2>&1
|
git remote update > /dev/null 2>&1
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
echo -e "${GREEN}OK${NC}"
|
echo -e "${GREEN}OK${NC}"
|
||||||
|
|
||||||
# Check ob wir hinterher hinken
|
# Check ob wir hinterher hinken
|
||||||
@@ -34,26 +37,24 @@ if [ $? -eq 0 ]; then
|
|||||||
else
|
else
|
||||||
echo -e "${YELLOW}⚠️ Unterschiede zum Server erkannt.${NC}"
|
echo -e "${YELLOW}⚠️ Unterschiede zum Server erkannt.${NC}"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo -e "${RED}Fehler (Kein Netz?)${NC}"
|
echo -e "${RED}Fehler (Kein Netz?)${NC}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 3. Check: Lokale Änderungen
|
# 3. Check: Lokale Änderungen
|
||||||
if [ -z "$(git status --porcelain)" ]; then
|
if [ -z "$(git status --porcelain)" ]; then
|
||||||
echo -e "${GREEN}✅ Der Wald ist ruhig. Keine Änderungen zu speichern.${NC}"
|
echo -e "${GREEN}✅ Der Wald ist ruhig. Keine Änderungen zu speichern.${NC}"
|
||||||
exit 0
|
else
|
||||||
else
|
|
||||||
echo -e "${YELLOW}📝 Es gibt ungespeicherte Änderungen:${NC}"
|
echo -e "${YELLOW}📝 Es gibt ungespeicherte Änderungen:${NC}"
|
||||||
git status --short
|
git status --short
|
||||||
fi
|
|
||||||
|
|
||||||
# 4. Action: Update durchführen?
|
# 4. Action: Update durchführen?
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "${BLUE}Soll ich ein Update durchführen (add + commit + push)?${NC}"
|
echo -e "${BLUE}Soll ich ein Update durchführen (add + commit + push)?${NC}"
|
||||||
read -p "[j]a / [n]ein: " -n 1 -r
|
read -p "[j]a / [n]ein: " -n 1 -r REPLY_UPDATE
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
if [[ $REPLY =~ ^[Jj]$ ]]; then
|
if [[ $REPLY_UPDATE =~ ^[Jj]$ ]]; then
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "${BLUE}💊 Verarzte Dateien... (git add)${NC}"
|
echo -e "${BLUE}💊 Verarzte Dateien... (git add)${NC}"
|
||||||
git add .
|
git add .
|
||||||
@@ -76,6 +77,111 @@ if [[ $REPLY =~ ^[Jj]$ ]]; then
|
|||||||
echo ""
|
echo ""
|
||||||
echo -e "${RED}❌ Fehler beim Upload. Prüfe deine Verbindung oder Keys.${NC}"
|
echo -e "${RED}❌ Fehler beim Upload. Prüfe deine Verbindung oder Keys.${NC}"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo -e "${BLUE}👋 Alles klar, bis zum nächsten Mal!${NC}"
|
echo -e "${BLUE}👋 Alles klar, bis zum nächsten Mal!${NC}"
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
# Pause vor Rückkehr zum Menü
|
||||||
|
echo ""
|
||||||
|
read -p "Drücke Enter um fortzufahren..."
|
||||||
|
}
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# Modul: DNS Doktor
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
function dns_doktor() {
|
||||||
|
echo -e "${BLUE}--- 🌐 DNS Doktor: Namensauflösung ---${NC}"
|
||||||
|
echo "Welche Domain soll ich untersuchen?"
|
||||||
|
read -p "Domain [crumbforest.de]: " DOMAIN
|
||||||
|
DOMAIN=${DOMAIN:-crumbforest.de}
|
||||||
|
|
||||||
|
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M")
|
||||||
|
REPORT_FILE="dns_report_${DOMAIN}_${TIMESTAMP}.txt"
|
||||||
|
|
||||||
|
# Hilfsfunktion für Checks
|
||||||
|
check_record() {
|
||||||
|
local type=$1
|
||||||
|
local server=$2 # Optional: @8.8.8.8
|
||||||
|
local desc=$3
|
||||||
|
|
||||||
|
echo -n "Prüfe $type ($desc)... "
|
||||||
|
if [ -n "$server" ]; then
|
||||||
|
RESULT=$(dig $server +short -t $type $DOMAIN 2>&1)
|
||||||
|
else
|
||||||
|
RESULT=$(dig +short -t $type $DOMAIN 2>&1)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$RESULT" ]; then
|
||||||
|
echo -e "${GREEN}OK${NC}"
|
||||||
|
echo "$type Records:" >> $REPORT_FILE
|
||||||
|
echo "$RESULT" >> $REPORT_FILE
|
||||||
|
echo "---" >> $REPORT_FILE
|
||||||
|
else
|
||||||
|
echo -e "${YELLOW}LEER${NC}"
|
||||||
|
echo "$type Records: LEER" >> $REPORT_FILE
|
||||||
|
echo "---" >> $REPORT_FILE
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "Erstelle Bericht in: $REPORT_FILE"
|
||||||
|
echo "DNS Report für $DOMAIN ($TIMESTAMP)" > $REPORT_FILE
|
||||||
|
echo "========================================" >> $REPORT_FILE
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# 1. Lokale Auflösung (A Record)
|
||||||
|
check_record "A" "" "Lokal via System Resolver"
|
||||||
|
|
||||||
|
# 2. Externe Auflösung (Google DNS)
|
||||||
|
check_record "A" "@8.8.8.8" "Extern via 8.8.8.8"
|
||||||
|
|
||||||
|
# 3. MX Records (Mail)
|
||||||
|
check_record "MX" "" "Mail Exchange"
|
||||||
|
|
||||||
|
# 4. SOA Record (Zone Authority)
|
||||||
|
check_record "SOA" "" "Start of Authority"
|
||||||
|
|
||||||
|
# 5. TXT Records (SPF/DKIM)
|
||||||
|
check_record "TXT" "" "Text / SPF"
|
||||||
|
|
||||||
|
echo -e "\n${BLUE}🔍 Starte Trace (kann dauern)...${NC}"
|
||||||
|
echo "TRACE:" >> $REPORT_FILE
|
||||||
|
dig +trace +short $DOMAIN >> $REPORT_FILE 2>&1
|
||||||
|
echo "Trace abgeschlossen."
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "${GREEN}✅ Diagnose abgeschlossen.${NC}"
|
||||||
|
echo -e "Bericht gespeichert unter: ${CYAN}$REPORT_FILE${NC}"
|
||||||
|
echo ""
|
||||||
|
read -p "Drücke Enter um fortzufahren..."
|
||||||
|
}
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# Hauptmenü
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
while true; do
|
||||||
|
clear
|
||||||
|
echo -e "${BLUE}🦉 Crumbpages Doktor${NC}"
|
||||||
|
echo "---------------------------"
|
||||||
|
echo "1) 🌲 Git Doktor (Repo Check)"
|
||||||
|
echo "2) 🌐 DNS Doktor (Domain Check)"
|
||||||
|
echo "3) 👋 Beenden"
|
||||||
|
echo ""
|
||||||
|
read -p "Auswahl [1-3]: " CHOICE
|
||||||
|
|
||||||
|
case $CHOICE in
|
||||||
|
1)
|
||||||
|
git_doktor
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
dns_doktor
|
||||||
|
;;
|
||||||
|
3)
|
||||||
|
echo "Ahoi!"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Bitte 1, 2 oder 3 wählen."
|
||||||
|
sleep 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|||||||
32
dns_report_branko.de_2025-12-10_19-53.txt
Normal file
32
dns_report_branko.de_2025-12-10_19-53.txt
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
DNS Report für branko.de (2025-12-10_19-53)
|
||||||
|
========================================
|
||||||
|
A Records:
|
||||||
|
81.169.145.93
|
||||||
|
---
|
||||||
|
A Records:
|
||||||
|
81.169.145.93
|
||||||
|
---
|
||||||
|
MX Records:
|
||||||
|
5 smtpin.rzone.de.
|
||||||
|
---
|
||||||
|
SOA Records:
|
||||||
|
docks17.rzone.de. hostmaster.strato-rz.de. 2022062321 86400 7200 604800 300
|
||||||
|
---
|
||||||
|
TXT Records: LEER
|
||||||
|
---
|
||||||
|
TRACE:
|
||||||
|
NS a.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 5 ms.
|
||||||
|
NS b.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 5 ms.
|
||||||
|
NS c.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 5 ms.
|
||||||
|
NS d.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 5 ms.
|
||||||
|
NS e.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 5 ms.
|
||||||
|
NS f.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 5 ms.
|
||||||
|
NS g.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 5 ms.
|
||||||
|
NS h.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 5 ms.
|
||||||
|
NS i.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 5 ms.
|
||||||
|
NS j.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 5 ms.
|
||||||
|
NS k.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 5 ms.
|
||||||
|
NS l.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 5 ms.
|
||||||
|
NS m.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 5 ms.
|
||||||
|
RRSIG NS 8 0 518400 20251223050000 20251210040000 61809 . Ro3x6l136NQLdoU5tLg1c6mHOjs10+HJkx4dnDxjWQ+2GbXQ/6gGL4i0 Y7cpha7GB9/RnVFOHvzvv+rrlAWwSc7/dVzOWao36XC/QWlameyY9Umi rbUdYmE8R1OEYFKIsnConMQzYhyPjJGi7E878r7UTyuuxKYQ6XGCAPGz E/ZGSAX7NXCcqYVwfOCBXPc+NPQuCnLuXEXNBsbYbp3HB6lOIORKptCY AzqIgc763uE1Xk5uE2j2oSg2qaOG8JMAXBp7uDdDscLdZBvYJfFuiDRg mQhbGZnlxq9/9JAqfwSAF6u9ccFja/pWLSDHw9mB0zZ2kaMbTjeL0r5A n0uiIw== from server fe80::2eea:dcff:fecd:194a%7 in 5 ms.
|
||||||
|
A 81.169.145.93 from server 2607:f1c0:fe:53:185:132:34:143 in 12 ms.
|
||||||
36
dns_report_gmail.de_2025-12-10_19-53.txt
Normal file
36
dns_report_gmail.de_2025-12-10_19-53.txt
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
DNS Report für gmail.de (2025-12-10_19-53)
|
||||||
|
========================================
|
||||||
|
A Records:
|
||||||
|
142.250.185.229
|
||||||
|
---
|
||||||
|
A Records:
|
||||||
|
142.251.39.229
|
||||||
|
---
|
||||||
|
MX Records:
|
||||||
|
0 .
|
||||||
|
---
|
||||||
|
SOA Records:
|
||||||
|
ns1.google.com. dns-admin.google.com. 842151538 900 900 1800 60
|
||||||
|
---
|
||||||
|
TXT Records:
|
||||||
|
"v=spf1 -all"
|
||||||
|
---
|
||||||
|
TRACE:
|
||||||
|
NS b.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 4 ms.
|
||||||
|
NS c.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 4 ms.
|
||||||
|
NS d.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 4 ms.
|
||||||
|
NS e.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 4 ms.
|
||||||
|
NS f.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 4 ms.
|
||||||
|
NS g.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 4 ms.
|
||||||
|
NS h.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 4 ms.
|
||||||
|
NS i.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 4 ms.
|
||||||
|
NS j.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 4 ms.
|
||||||
|
NS k.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 4 ms.
|
||||||
|
NS l.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 4 ms.
|
||||||
|
NS m.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 4 ms.
|
||||||
|
NS a.root-servers.net. from server fe80::2eea:dcff:fecd:194a%7 in 4 ms.
|
||||||
|
RRSIG NS 8 0 518400 20251223050000 20251210040000 61809 . Ro3x6l136NQLdoU5tLg1c6mHOjs10+HJkx4dnDxjWQ+2GbXQ/6gGL4i0 Y7cpha7GB9/RnVFOHvzvv+rrlAWwSc7/dVzOWao36XC/QWlameyY9Umi rbUdYmE8R1OEYFKIsnConMQzYhyPjJGi7E878r7UTyuuxKYQ6XGCAPGz E/ZGSAX7NXCcqYVwfOCBXPc+NPQuCnLuXEXNBsbYbp3HB6lOIORKptCY AzqIgc763uE1Xk5uE2j2oSg2qaOG8JMAXBp7uDdDscLdZBvYJfFuiDRg mQhbGZnlxq9/9JAqfwSAF6u9ccFja/pWLSDHw9mB0zZ2kaMbTjeL0r5A n0uiIw== from server fe80::2eea:dcff:fecd:194a%7 in 4 ms.
|
||||||
|
A 108.177.119.19 from server 2001:4860:4802:34::a in 26 ms.
|
||||||
|
A 108.177.119.83 from server 2001:4860:4802:34::a in 26 ms.
|
||||||
|
A 108.177.119.17 from server 2001:4860:4802:34::a in 26 ms.
|
||||||
|
A 108.177.119.18 from server 2001:4860:4802:34::a in 26 ms.
|
||||||
Reference in New Issue
Block a user