Dieses Tutorial zeigt Ihnen, wie Sie Ihren eigenen autoritativen Nameserver auf Debian 10 Buster mit der weit verbreiteten BIND 9-Software einrichten und betreiben.
Hinweis :Dieses Tutorial zeigt die Befehlszeilenmethode. Wenn Sie DNS-Einträge über eine Web-GUI bearbeiten möchten, empfehle ich die Einrichtung autoritativer DNS-Server mit Webmin, einem kostenlosen Open-Source-Server-Kontrollfeld.
Was ist ein autoritativer DNS-Server?
Wenn Sie einen Domainnamen besitzen und möchten, dass Ihr eigener DNS-Server die Namensauflösung für Ihren Domainnamen übernimmt, anstatt den DNS-Server Ihres Domain-Registrars zu verwenden, müssen Sie einen autoritativen DNS-Server einrichten.
Ein autoritativer DNS-Server wird von Eigentümern von Domainnamen verwendet, um DNS-Einträge zu speichern. Es bietet maßgebliche Antworten für DNS-Resolver (wie 8.8.8.8 oder 1.1.1.1), die DNS-Einträge im Auftrag von Endbenutzern auf PC, Smartphone oder Tablet abfragen.
Über BIND
BIND (Berkeley Internet Name Domain) ist eine flexible Open-Source-DNS-Software mit vollem Funktionsumfang, die aufgrund ihrer Stabilität und hohen Qualität unter Unix/Linux weit verbreitet ist. Es wurde ursprünglich von der UC Berkeley entwickelt und später im Jahr 1994 an das Internet Systems Consortium, Inc (ISC) übertragen.
BIND kann gleichzeitig als autoritativer DNS-Server für eine Zone und als DNS-Resolver fungieren. Ein DNS-Resolver kann auch als rekursiver Nameserver bezeichnet werden, da er rekursive DNS-Lookups für Endbenutzer durchführt. Es ist jedoch nicht vorteilhaft, zwei Rollen gleichzeitig zu übernehmen. Es empfiehlt sich, die beiden Rollen auf zwei verschiedenen Computern zu trennen.
In einem früheren Artikel habe ich die Schritte zum Einrichten eines lokalen DNS-Resolvers unter Debian 10 Buster erklärt. Dieses Tutorial zeigt Ihnen, wie Sie BIND9 auf Debian 10 Buster als rein autorisierenden DNS-Server mit deaktivierter Rekursion einrichten.
Voraussetzungen
Um diesem Tutorial zu folgen, sollten Sie bereits einen Domainnamen gekauft haben. Ich habe meinen Domainnamen bei NameCheap registriert, weil der Preis niedrig ist und sie lebenslangen Whois-Datenschutz bieten.
Außerdem benötigen Sie zwei Server. Ein Server ist für den Master-DNS-Server und der andere für den Slave-DNS-Server. Idealerweise sollten sich die beiden Server an unterschiedlichen physischen Standorten befinden. Wenn ein DNS-Server offline ist, kann der andere DNS-Server weiterhin DNS-Abfragen für Ihren Domainnamen beantworten.
Jeder Server benötigt nur 512 MB RAM und hier sind die Hosting-Anbieter, die ich empfehle. Ich habe sie alle benutzt.
- Vultr:Beginnen Sie bei 2,5 $/Monat. Kreditkarte erforderlich. Sie können über meinen Empfehlungslink ein Konto bei Vultr erstellen, um ein kostenloses Guthaben von 50 $ zu erhalten.
- DigitalOcean:Beginnen Sie bei 5 $/Monat. Es ist keine Kreditkarte erforderlich. Sie können Paypal verwenden. Sie können über meinen Empfehlungslink ein Konto bei DigitalOcean erstellen, um ein kostenloses Guthaben von 50 $ zu erhalten.
Wenn Sie zwei Server gekauft haben, installieren Sie Debian 10 darauf und folgen Sie den Anweisungen unten.
Bitte beachten Sie, dass Sie Root-Rechte haben müssen, wenn Sie Software unter Debian installieren. Sie können sudo hinzufügen am Anfang eines Befehls oder verwenden Sie su -
Befehl, um zum Root-Benutzer zu wechseln.
Autorisierenden DNS-Server auf Debian 10 Buster mit BIND9 einrichten
Sie müssen die Befehle in diesem Abschnitt auf beiden Servern ausführen.
Melden Sie sich über SSH bei den beiden Servern an und führen Sie die folgenden Befehle aus, um BIND 9 auf dem Debian 10-Server aus dem Standard-Repository zu installieren. BIND 9 ist die aktuelle Version und BIND 10 ist ein totes Projekt.
sudo apt update sudo apt install bind9 bind9utils bind9-doc
Überprüfen Sie die Versionsnummer.
named -v
Beispielausgabe:
BIND 9.11.5-P4-5.1-Debian (Extended Support Version) <id:998753c>
Führen Sie
aus, um die Versionsnummer und die Build-Optionen zu überprüfennamed -V
Standardmäßig startet BIND automatisch nach der Installation. Sie überprüfen seinen Status mit:
systemctl status bind9
Ausgabe:
● bind9.service - BIND Domain Name Server Loaded: loaded (/lib/systemd/system/bind9.service; enabled; vendor preset: en Active: active (running) since Sun 2019-07-14 10:27:56 UTC; 4min 6s ago Docs: man:named(8) Main PID: 1481 (named) Tasks: 4 (limit: 1149) Memory: 13.7M CGroup: /system.slice/bind9.service └─1481 /usr/sbin/named -u bind
Tipp:Wenn der obige Befehl nicht sofort beendet wird, drücken Sie Q.
Wenn es nicht läuft, starten Sie es mit:
sudo systemctl start bind9
Und aktivieren Sie den automatischen Start beim Booten:
sudo systemctl enable bind9
Der BIND-Server wird als bind
ausgeführt Benutzer, der während der Installation erstellt wird und auf TCP- und UDP-Port 53 lauscht, wie Sie sehen können, wenn Sie den folgenden Befehl ausführen:
sudo netstat -lnptu | grep named
Der BIND-Daemon heißt named . (Ein Daemon ist eine Software, die im Hintergrund läuft.) Der named
Binary wird von bind9
installiert Paket und es gibt eine weitere wichtige Binärdatei:rndc
, der Remote-Name-Daemon-Controller, der von bind9utils
installiert wird Paket. Der rndc
Binary wird verwendet, um andere Aspekte des BIND-Daemons neu zu laden/zu stoppen und zu steuern. Die Kommunikation erfolgt über den TCP-Port 953.
Beispielsweise können wir den Status des BIND-Nameservers überprüfen.
sudo rndc status
Die Haupt-BIND-Konfigurationsdatei /etc/bind/named.conf
bezieht die Einstellungen aus 3 anderen Dateien.
- /etc/bind/named.conf.options
- /etc/bind/named.conf.local
- /etc/bind/named.conf.default-zones
Der BIND9-Server auf Debian bietet standardmäßig rekursive Dienste für Localhost- und lokale Netzwerkclients. Da wir einen autoritativen DNS-Server einrichten, müssen wir die Rekursion deaktivieren. Bearbeiten Sie die /etc/bind/named.conf.options
Datei.
sudo nano /etc/bind/named.conf.options
Fügen Sie die folgenden Zeilen in der Optionsklausel {…} hinzu.
// hide version number from clients for security reasons. version "not currently available"; // disable recursion on authoritative DNS server. recursion no; // enable the query log querylog yes; // disallow zone transfer allow-transfer { none; };
Technisch gesehen müssen Sie nur recursion no;
hinzufügen um die Rekursion zu deaktivieren, aber es ist eine gute Praxis, die anderen 3 Direktiven hinzuzufügen. Speichern und schließen Sie die Datei. Starten Sie dann BIND neu.
sudo systemctl restart bind9
Master-DNS-Serverkonfiguration
Wählen Sie einen der beiden Server als Master-DNS-Server aus. Wir nennen es ns1.example.com
.
Der Master-DNS-Server enthält die Masterkopie der Zonendatei. Änderungen von DNS-Einträgen werden auf diesem Server vorgenommen. Eine Domain kann eine oder mehrere DNS-Zonen haben. Jede DNS-Zone hat eine Zonendatei, die jeden DNS-Eintrag in dieser Zone enthält. Der Einfachheit halber wird in diesem Artikel davon ausgegangen, dass Sie eine einzelne DNS-Zone verwenden möchten, um alle DNS-Einträge für Ihren Domainnamen zu verwalten.
Die /etc/bind/named.conf.default-zones
Datei definiert die Root-Zone und die Localhost-Zone. Um eine Zone für Ihren Domänennamen hinzuzufügen, bearbeiten Sie /etc/bind/named.conf.local
Datei.
sudo nano /etc/bind/named.conf.local
Fügen Sie dieser Datei die folgenden Zeilen hinzu. Ersetzen Sie example.com durch Ihren eigenen Domainnamen. Ersetzen Sie 12.34.56.78 durch die IP-Adresse des Slave-DNS-Servers.
zone "example.com" { type master; file "/etc/bind/db.example.com"; allow-query { any; }; allow-transfer { 12.34.56.78; }; };
In der obigen Konfiguration haben wir eine neue Zone mit dem zone
erstellt -Klausel und wir haben angegeben, dass dies die Masterzone ist. Die Zonendatei ist /etc/bind/db.example.com
, wo wir DNS-Einträge hinzufügen werden. Zonentransfer wird nur für den Slave-DNS-Server erlaubt.
Anstatt eine Zonendatei von Grund auf neu zu erstellen, können wir eine Zonenvorlagendatei verwenden. Kopieren Sie den Inhalt von db.empty
in eine neue Datei.
sudo cp /etc/bind/db.empty /etc/bind/db.example.com
Eine Zonendatei kann 3 Arten von Einträgen enthalten:
- Kommentare :Beginnen Sie mit einem Semikolon (;)
- Richtlinien :Beginnen Sie mit einem Dollarzeichen ($)
- Ressourcendatensätze :auch bekannt als DNS-Einträge
Eine Zonendatei besteht normalerweise aus den folgenden Arten von DNS-Einträgen.
- Der SOA (Start of Authority)-Eintrag :definiert die Schlüsselmerkmale einer Zone. Es ist der erste DNS-Eintrag in der Zonendatei und obligatorisch.
- NS (Name Server)-Eintrag :Gibt an, welche Server verwendet werden, um DNS-Einträge zu speichern und DNS-Abfragen für einen Domänennamen zu beantworten. Es müssen mindestens zwei NS-Einträge in einer Zonendatei vorhanden sein.
- MX (Mail Exchanger)-Eintrag :gibt an, welche Hosts für die E-Mail-Zustellung für einen Domainnamen verantwortlich sind.
- Ein (Adress-)Datensatz :Wandelt DNS-Namen in IPv4-Adressen um.
- AAAA (Quad A)-Rekord :Wandelt DNS-Namen in IPv6-Adressen um.
- CNAME-Eintrag (kanonischer Name) :Es wird verwendet, um einen Alias für einen DNS-Namen zu erstellen.
- TXT-Eintrag :SPF, DKIM, DMARC usw.
Lassen Sie uns nun die Zonendatei bearbeiten.
sudo nano /etc/bind/db.example.com
Standardmäßig sieht es so aus:
Sie können es stattdessen ändern.
Wo
- Der
$TTL
Direktive definiert die standardmäßige Time to Live Wert für die Zone, d. h. die Zeit, die ein DNS-Eintrag auf einem DNS-Resolver zwischengespeichert werden kann. Diese Richtlinie ist verbindlich. Die Zeit wird in Sekunden angegeben. - Der
$ORIGIN
Direktive definiert die Basisdomäne. - Domänennamen müssen mit einem Punkt (.) enden, der die Stammdomäne ist. Wenn ein Domänenname mit einem Punkt endet, handelt es sich um einen vollständig qualifizierten Domänennamen (FQDN).
- Das @-Symbol verweist auf die Basisdomäne.
IN
ist die DNS-Klasse. Es steht für Internet. Andere DNS-Klassen existieren, werden aber selten verwendet.
Der erste Eintrag in einer Zonendatei ist der SOA-Eintrag (Start of Authority). Dieser Datensatz enthält die folgenden Informationen:
- Der Master-DNS-Server .
- E-Mail-Adresse des Zonenadministrators . RFC 2142 empfiehlt die E-Mail-Adresse [email protected] . In der Zonendatei hat diese E-Mail-Adresse folgende Form:hostmaster.example.com weil das @-Symbol in der Zonendatei eine besondere Bedeutung hat.
- Seriennummer der Zone . Die Seriennummer ist eine Möglichkeit, Änderungen in der Zone durch den Slave-DNS-Server zu verfolgen. Per Konvention hat die Seriennummer ein Datumsformat:
yyyymmddss
, wobei jjjj die vierstellige Jahreszahl, mm der Monat, tt der Tag und ss die laufende Nummer des Tages ist. Sie müssen die Seriennummer aktualisieren, wenn Änderungen an der Zonendatei vorgenommen werden. - Aktualisierungswert . Wenn der Aktualisierungswert erreicht ist, versucht der Slave-DNS-Server, den SOA-Eintrag vom Master-DNS-Server zu lesen. Wird die Seriennummer höher, wird ein Zonentransfer eingeleitet.
- Wiederholungswert . Definiert das Wiederholungsintervall in Sekunden, wenn der Slave-DNS-Server keine Verbindung zum Master-DNS-Server herstellen kann.
- Ablauf :Wenn der Slave-DNS-Server für diesen Zeitraum keinen Kontakt zum Master-DNS-Server hergestellt hat, antwortet der Slave nicht mehr auf DNS-Anfragen für diese Zone.
- Negative Cache-TTL :Definiert die Gültigkeitsdauer von DNS-Antworten für nicht vorhandene DNS-Namen (NXDOMAIN).
TXT-Einträge werden normalerweise in doppelte Anführungszeichen gesetzt. Wenn Sie einen DKIM-Eintrag hinzufügen, müssen Sie den Wert auch in Klammern einschließen.
Speichern und schließen Sie die Datei. Führen Sie dann den folgenden Befehl aus, um zu prüfen, ob Syntaxfehler in der Hauptkonfigurationsdatei vorhanden sind. Eine stille Ausgabe zeigt an, dass keine Fehler gefunden wurden.
sudo named-checkconf
Überprüfen Sie dann die Syntax der Zonendateien.
sudo named-checkzone example.com /etc/bind/db.example.com
Wenn die Zonendatei Syntaxfehler enthält, müssen Sie sie beheben, oder diese Zone wird nicht geladen. Die folgende Meldung zeigt an, dass keine Syntaxfehler vorliegen.
zone example.com/IN: loaded serial 2019011503 OK
Starten Sie dann BIND9 neu.
sudo systemctl restart bind9
Wenn Sie die unkomplizierte Firewall (UFW) verwenden, öffnen Sie den TCP- und UDP-Port 53.
sudo ufw allow 53/tcp sudo ufw allow 53/udp
Wenn Sie die iptables-Firewall direkt verwenden, führen Sie den folgenden Befehl aus.
sudo iptables -A INPUT -p tcp --dport 53 -j ACCEPT sudo iptables -A INPUT -p udp --dport 53 -j ACCEPT
Konfiguration des Slave-DNS-Servers
Jetzt verwenden wir den anderen Server als Slave-DNS-Server, der ns2.example.com
heißen wird .
Bearbeiten Sie zuerst die named.conf.local
Datei.
sudo nano /etc/bind/named.conf.local
Fügen Sie eine Zone wie unten hinzu. Ersetzen Sie 12.34.56.78 durch die IP-Adresse des Master-DNS-Servers.
zone "example.com" { type slave; file "db.example.com"; allow-query { any; }; masters { 12.34.56.78; }; };
In der obigen Konfiguration haben wir angegeben, dass dies ein Slave-DNS-Server für example.com
ist Zone und akzeptiert Zonenübertragungen nur vom Master-DNS-Server.
Speichern und schließen Sie die Datei. Führen Sie dann den folgenden Befehl aus, um zu prüfen, ob die Hauptkonfigurationsdatei Syntaxfehler enthält.
sudo named-checkconf
Wenn keine Fehler gefunden werden, starten Sie BIND9 neu.
sudo systemctl restart bind9
Die Zonendatei auf dem Slave-DNS-Server wird aus einer Zonenübertragung geladen, die zum Synchronisieren von DNS-Eintragsänderungen vom Master-DNS-Server zum Slave-DNS-Server verwendet wird. Nach dem Neustart von BIND9 beginnt der Zonentransfer sofort. Überprüfen Sie das BIND9-Protokoll mit dem folgenden Befehl.
sudo journalctl -eu bind9
Sie können Meldungen wie unten sehen, die darauf hinweisen, dass die Zonenübertragung erfolgreich war.
named[31518]: transfer of 'example.com/IN' from 12.34.56.78#53: Transfer completed: 1 messages, 16 records, 886 bytes, 0.004 secs (221500 bytes/sec)
Die Zonendatei wird als /var/cache/bind/db.example.com
gespeichert auf dem Slave-DNS-Server.
Wenn Sie die unkomplizierte Firewall (UFW) verwenden, öffnen Sie den TCP- und UDP-Port 53.
sudo ufw allow 53/tcp sudo ufw allow 53/udp
Wenn Sie die iptables-Firewall direkt verwenden, führen Sie den folgenden Befehl aus.
sudo iptables -A INPUT -p tcp --dport 53 -j ACCEPT sudo iptables -A INPUT -p udp --dprot 53 -j ACCEPT
Mehr über Zonentransfer
Der Slave-DNS-Server kontaktiert den Master erneut, wenn die Aktualisierungszeit im SOA-Eintrag erreicht ist, und wenn die Seriennummer auf dem Master größer ist als die auf dem Slave, wird ein Zonentransfer initiiert. Es gibt zwei Arten von Zonentransfers:
- Vollständige Zonenübertragung (AXFR):Die vollständige Kopie der Zonendatei wird übertragen.
- Incremental zone transfer (IXFR):Nur geänderte DNS-Einträge werden übertragen.
Beide Arten der Zonenübertragung verwenden den TCP-Port 53. Standardmäßig fordert BIND auf dem Slave-DNS-Server eine inkrementelle Zonenübertragung an und BIND auf dem Master-DNS-Server erlaubt nur eine inkrementelle Zonenübertragung, wenn die Zone dynamisch ist.
Das Zonenübertragungsintervall ist ein wichtiger Faktor für die Ausbreitungsgeschwindigkeit von DNS-Eintragsänderungen. Anstatt darauf zu warten, dass der Slave-DNS-Server Kontakt aufnimmt, benachrichtigt der BIND-Master den Slave, wenn Änderungen an der Zone vorgenommen werden. Dies kann die Zeit für die Weitergabe von Zonenänderungen an das Internet erheblich verkürzen.
Gegenzone
Eine Reverse Zone enthält einen PTR-Eintrag, der eine IP-Adresse einem DNS-Namen zuordnet. Es ist das Gegenstück zum DNS-A-Eintrag. Der PTR-Eintrag ist häufig für Mailserver erforderlich, um Spamfilter zu passieren. Dieser Eintrag gehört zu keiner Domäne. Sie müssen einen PTR-Eintrag im Control Panel Ihres Hosting-Providers erstellen oder Ihren ISP fragen, daher werde ich das Erstellen von Reverse-Zonen in BIND nicht behandeln.
NS-Eintrag ändern und Glue-Eintrag erstellen
Jetzt müssen Sie zur Website Ihres Domain-Registrars gehen, um den NS-Eintrag für Ihre Domain zu ändern, damit das Internet weiß, dass Sie jetzt Ihren eigenen DNS-Server verwenden. Normalerweise verwenden Sie Hostnamen im NS-Eintrag wie ns1.example.com
und ns2.example.com
.
name server 1: ns1.example.com name server 2: ns2.example.com
Wenn Sie einen Domainnamen haben example.com
und Sie verwenden eine Unterdomäne für die autoritativen DNS-Server (ns1.example.com
und ns2.example.com
), dann müssen Sie auch einen Glue Record bei Ihrem Domain-Registrar erstellen, damit das Internet die IP-Adresse Ihres DNS-Servers kennen kann. Der Glue-Record ist ein A-Record für ns1.example.com
und ns2.example.com
.
ns1.example.com IP-address-of-master-server ns2.example.com IP-address-of-slave-server
Die oben genannten Informationen werden an einen Registrierungsbetreiber gesendet, der TLD-DNS-Server über das Extensible Provisioning Protocol (EPP) betreibt, damit TLD-DNS-Server den Namen und die IP-Adressen der autoritativen DNS-Server für Ihren Domänennamen kennen. Abhängig von der von Ihnen verwendeten Domänenregistrierungsstelle wird Ihr NS-Eintrag möglicherweise sofort weitergegeben oder es kann bis zu 24 Stunden dauern, bis er weitergegeben wird. Sie können zu https://dnsmap.io gehen, um zu überprüfen, ob Ihr neuer NS-Eintrag aktiv ist.
Wie das geht, zeige ich Ihnen bei NameCheap .
Wenn Sie einen Domainnamen bei NameCheap gekauft haben, melden Sie sich bei Ihrem NameCheap-Konto an. Wählen Sie die Domain list
aus Menü in der linken Seitenleiste und klicken Sie dann auf Verwalten Schaltfläche ganz rechts.
Wählen Sie Erweitertes DNS aus .
Scrollen Sie zum Ende der Seite, dort finden Sie den persönlichen DNS-Server Sektion. Klicken Sie auf Nameserver hinzufügen Schaltfläche, um Ihre eigenen Nameserver hinzuzufügen:ns1.example.com
und ns2.example.com
. Sie müssen die IP-Adressen Ihrer Nameserver eingeben.
Nachdem Sie Ihre beiden Nameserver hinzugefügt haben, klicken Sie auf die Suchschaltfläche, um zu überprüfen, ob sie erfolgreich hinzugefügt wurden. Wenn dies der Fall ist, werden die Klebeaufzeichnungen unten auf dieser Seite angezeigt.
Klicken Sie nun auf die Domain
und verwenden Sie Ihren benutzerdefinierten DNS-Server.
Abhängig von der von Ihnen verwendeten Domänenregistrierungsstelle wird Ihr NS-Eintrag möglicherweise sofort weitergegeben oder es kann bis zu 24 Stunden dauern, bis er weitergegeben wird. Sie können zu https://dnsmap.io gehen, um zu überprüfen, ob Ihr neuer NS-Eintrag aktiv ist.
Nachdem der Glue-Record und der NS-Record an das Internet weitergegeben wurden, würden Ihre DNS-Server auf DNS-Abfragen für Ihren Domainnamen antworten. Sie können das Abfrageprotokoll überprüfen mit:
sudo journalctl -eu bind9
Sie können auch dig
verwenden Dienstprogramm, um den NS-Eintrag Ihres Domainnamens zu überprüfen.
dig NS example.com
Wenn der NS-Record und der Glue-Record an das Internet weitergegeben wurden, sollten Sie Ihre Nameserver im Antwortabschnitt sehen. Wenn Sie SERVFAIL
sehen Fehler, liegt wahrscheinlich daran, dass Sie den UDP-Port 53 auf Ihren Nameservern nicht geöffnet haben.
Wissenswertes
- Der Begriff
master DNS server
bedeutet nur, dass dieser Server die Masterkopie der Zonendatei speichert. Es hat keine höhere Priorität, wenn es um die DNS-Auflösung geht. - Aktualisieren Sie immer die SOA-Seriennummer, wenn Sie Änderungen an einer Zonendatei vornehmen.
Resolver aktivieren
BIND kann als autorisierender DNS-Server fungieren für eine Zone und einen DNS-Resolver zur selben Zeit. Es hat sich bewährt, die beiden Rollen auf zwei verschiedenen Maschinen zu trennen, und in diesem Artikel haben wir den Resolver in BIND deaktiviert. Wenn Sie den Resolver wirklich aktivieren möchten, befolgen Sie die nachstehenden Anweisungen.
Bearbeiten Sie die BIND-Konfigurationsdatei.
sudo nano /etc/bind/named.conf.options
Suchen Sie die folgenden Zeilen.
// disable recursion on authoritative DNS server. recursion no;
Ändern Sie sie wie folgt, damit nur vertrauenswürdige IP-Adressen rekursive Abfragen an Ihren DNS-Resolver senden können und Ihr Server kein offener Resolver ist.
// allow recursion for trusted clients only. recursion yes; allow-query { localhost; 12.34.56.78; };
Ersetzen Sie 12.34.56.78 durch Ihre eigene IP-Adresse. Speichern und schließen Sie die Datei. Stellen Sie Ihre Zonendefinition in /etc/bind/named.conf.local
sicher Datei hat die folgende Option, damit das Internet DNS-Einträge in Ihrer Zone abfragen kann.
allow-query { any; };
Starten Sie dann BIND neu.
sudo systemctl restart bind9
Gehen Sie zu https://openresolver.com/, um zu testen, ob Ihr BIND-Server ein offener Resolver ist.