In dem Blog-Beitrag " Ein" tinyurl "-Dienst für Ihre Domain " wird erläutert, wie Sie mit Google Apps einen ShortName-Dienst für Ihre Domain einrichten. Wenn Ihre Domain beispielsweise example.com
Google Apps ist und Sie Google Apps verwenden, können Sie sie so konfigurieren, dass http://go.example.com
es sich um den persönlichen ShortName-Dienst Ihres Unternehmens handelt.
HINWEIS: Es geht nicht darum, einen "tinyurl" -Dienst für die Welt zu erstellen. Dies ist für ein Unternehmen.
Es ist nützlich, einen Kurznamendienst zu haben, den nur Ihre Benutzer verwenden können, damit Sie Links zu internen Seiten erstellen können. Anstatt den Leuten eine lange, schwierige URL zu sagen, können Sie sagen: "Das heutige Mittagsmenü finden Sie unter http://go.example.com/lunch ". Der Blogbeitrag dokumentiert einige der Vorteile, die es Menschen bietet, ihre eigenen Links einzurichten. (Das Wichtigste: Sie müssen DICH nicht stören, um einen neuen Link einzurichten!)
Das Problem
Das Problem mit dem System ist, dass die URL immer noch ziemlich lang ist. Die Leute geben lieber "go / lunch" in ihren Webbrowser ein und lassen es funktionieren. Leider kann Google Apps dies aufgrund der technischen Funktionsweise des HTTP-Protokolls nicht unterstützen. Der Header "Host:" in HTTP 1.1 listet die Domäne auf, die der Benutzer in seinem Webbrowser eingegeben hat, nicht den FQDN . Mit anderen Worten, wenn Google Apps die HTTP-Anfrage für " http: // go / lunch " erhält, erhält der Webserver "go" als Hostnamen. Da Google Apps diesen Service für viele Domains anbietet, kann es nicht sagen, ob Sie möchten go.example.com
oder go.some-other-example.com
.
Infolgedessen müssen Benutzer jedes Mal "go.example.com/lunch" eingeben, was viel länger ist als "go / lunch".
Die Lösung
Google könnte dies mithilfe von Web-Cookies oder einem anderen Schema lösen. Keines davon ist besonders sauber oder einfach. Bis dahin können Sie das Problem lösen, indem Sie eine eigene Maschine einrichten, die Anfragen als "go" akzeptiert und umleitet.
Der Server akzeptiert HTTP-Anforderungen für eine Site mit dem Namen "go" und leitet die Anforderung an um go.example.com
. Sie erstellen dann die richtigen DNS-Einträge, damit dies funktioniert, und ändern Ihre DHCP-Konfigurationen, damit Ihre Laptops / Workstations das Richtige tun.
In diesem Dokument zu Serverfehlern wird der Vorgang erläutert, und es werden Konfigurationsbeispiele angegeben, die Ihnen dabei helfen, dies für Ihren Standort zu tun. Da ich nicht auf alle Betriebssysteme der Welt zugreifen kann und sie nicht kenne, mache ich dies zu einem "Community-Wiki", damit die Benutzer Konfigurations-Snippets ausfüllen können, wenn sie es für sie zum Laufen bringen. Ich habe "TODO" in den Bereich gebracht, der besonders verbesserungswürdig ist.
Die Details
In diesem Beispiel wird "example.com" als Domain verwendet.
Schritt 1: Richten Sie den Google Apps-Dienst wie gewohnt ein.
Konfigurieren Sie den Dienst go.example.com
wie gewohnt. Testen Sie es und stellen Sie sicher, dass eine URL wie http://go.example.com/foo
funktioniert. Fahren Sie nicht fort, wenn dies nicht vollständig ist. Das wäre wie der Versuch, Ihr Auto zu reparieren, bevor Sie eines besitzen.
Schritt 2: Wählen Sie Ihren Redirector-Hostnamen aus
Wenn es sich bei Ihrem Kurznamendienst um einen Kurznamendienst handelt go.example.com
, geben Sie im Idealfall den Namen Ihres Redirectors an go.example.com
. Leider verhindert die Physik, dass zwei Körper gleichzeitig am selben Ort sind, und DNS befolgt die Gesetze der Physik.
Der Trick besteht darin, dass der Redirector denselben Hostnamen wie der ShortName-Dienst hat, sich jedoch in einer anderen Domäne befindet. Zum Beispiel go.corp.example.com
, go.ext.google.com
oder go.this-is-different.example.com
.
Große Unternehmen haben normalerweise eine interne Unterdomäne, die nicht der Außenwelt ausgesetzt ist. Normalerweise sind interne Hosts INSIDEHOST.corp.google.com
. Hier setzen Sie den Redirector ein.
Einige Unternehmen weisen eine Subdomain mit CNAMEs zu, die auf Dienste verweisen, auf die sowohl innerhalb als auch außerhalb des Unternehmens zugegriffen werden soll. Auf diese Weise muss eine Subdomain in den DNS-Suchpfad der Benutzer eingefügt werden. (Unix-Leute können sich das als /usr/local/bin
ein Unterverzeichnis voller Symlinks vorstellen.) Traditionell ist diese Subdomain ext.example.com
. In dieser Sub - Domain ist CNAMEs wie mail.ext.example.com
, calendar.ext.example.com
, vpn.ext.example.com
, und so weiter.)
Warnung: Das Hinzufügen eines weiteren Elements zu Ihrem DNS-Suchpfad ist eine weitere Möglichkeit, Ihre Computer langsamer zu machen. Das Ausführen einer zusätzlichen DNS-Abfrage JEDES MAL ist langsam und das Surfen im Internet wird merklich langsamer. Es ist viel besser, diesen Redirector einer Unterdomäne hinzuzufügen, die sich bereits im DNS-Suchpfad Ihres Computers befindet, auch wenn dies das Hinzufügen eines CNAME in mehreren Unterdomänen bedeutet. Wenn beispielsweise Ihre internen Maschinen und Maschinen, die mit Ihrem VPN verbunden sind, corp.example.com
bereits über einen Suchpfad verfügen , fügen Sie dort den CNAME hinzu. Wenn Sie möchten, dass externe Computer, die nicht über ein VPN angemeldet sind, auf den Redirector zugreifen können, ist es möglicherweise seltsam, Code corp.example.com
in ihren Suchpfad einzufügen, wenn dies die Unterdomäne für Computer ist, auf die von außen nie zugegriffen wird. In diesem Fall kann ein anderer CNAME zu einer externen Unterdomäne hinzugefügt werden (z. B.ext.example.com
), um auf den Redirector zu zeigen. Aktualisieren Sie die Webserverkonfiguration, um beide zu unterstützen.
Angenommen, Sie haben für dieses Beispiel den Redirector ausgewählt go.ext.example.com
. Die Maschine kann beliebig benannt werden, wir erledigen den ganzen Zauber in DNS und der Webserverkonfiguration.
Schritt 3: Planen Sie Ihren Redirector
Der Webserver, den Sie einrichten möchten, kann sich auf einem vorhandenen oder einem neuen Webserver befinden, der nur für diesen Zweck erstellt wurde. Der Schlüssel ist, dass der Computer von jedem Ort aus erreichbar sein muss, an dem der ShortName-Dienst funktionieren soll: innerhalb des Unternehmens, außerhalb des Unternehmens, wenn der Benutzer über VPN verbunden ist. (Sie können aus Sicherheitsgründen darauf verzichten, von außerhalb des Unternehmens zu arbeiten. Aus Sicherheitsgründen können Sie auch eine Maschine innen und eine andere außen aufstellen.)
Hinweis: Sie müssen hierfür keinen neuen Webserver einrichten. Sie können dies zu einem vorhandenen Webserver hinzufügen, solange die Konfiguration nicht vorhanden ist.
Hinweis: Dies kann ziemlich kompliziert sein. Möglicherweise möchten Sie sich darauf konzentrieren, dass dies im einfachsten Fall funktioniert. Wenn Sie es dann einmal getestet haben, können Sie es auch für andere Situationen verwenden. Führen Sie die folgenden Schritte aus: 1. Arbeitsstationen / Laptops innerhalb des Unternehmens 2. DANN Maschinen, die über VPN verbunden sind, dann Maschinen außerhalb des Unternehmens (z. B. in einem Internetcafé). 3. DANN Rechner außerhalb des Netzwerks, ohne das VPN aufzubauen. 4. DANN dies für andere Betriebssysteme testen
In diesem Beispiel wird davon ausgegangen, dass ein Webserver unter derselben IP-Adresse verfügbar ist, unabhängig davon, ob Sie sich innerhalb oder außerhalb des Unternehmens befinden.
In unserem Beispiel "go. Corp .example.com" bedeutet dies, dass sich das "go" in einer Unterdomäne befindet, auf die nur Insider zugreifen können. Zur Verwendung des ShortName-Dienstes ist ein VPN erforderlich. Da Google Apps normalerweise so konfiguriert ist, dass es ohne VPN funktioniert (da der gesamte Zugriff über HTTPS erfolgt), ist dies nicht optimal.
In unserem „gehen. Ext .example.com“ Beispiel bedeutet dies , ist die Sub - Domain von innen zugänglich und außerhalb des Unternehmens und den A
Datensatz verweist auf eine externe IP - Adresse.
Schritt 4: Fügen Sie DNS-Einträge für Ihren Redirector hinzu
Hier sind die erforderlichen DNS-Einträge:
go.example.com. IN CNAME ghs.google.com.
go.ext.example.com. IN A 64.32.179.5
go-redirector.example.com IN A 64.32.179.5
Der erste DNS-Eintrag (go.example.com) sollte bereits als Teil von Schritt 1 vorhanden sein.
Der zweite DNS-Eintrag (go. Ext .example.com) ist ein A
Eintrag, der auf die IP-Adresse des neuen Webservers verweist, den Sie konfigurieren.
Der dritte DNS-Eintrag (go-redirector) soll Ihnen beim Debuggen helfen.
Schritt 5: Konfigurieren Sie den Webserver
Fügen Sie die Umleitung zum Webserver hinzu. (Dies setzt voraus, dass der Webserver bereits installiert ist und ausgeführt wird).
Hier ist das Apache-Konfigurations-Snippet:
<VirtualHost *:80>
ServerName go-redirector.example.com
ServerAlias go, go.ext, go.ext.example
RewriteEngine on
RewriteRule ^(.*)$ http://go.example.com$1 [R=permanent]
</VirtualHost>
Wie man das testet. http://go-redirector.example.com
sollte an dieser Stelle funktionieren.
Fahren Sie nicht fort, bis dieser Test funktioniert. Kleine Schritte.
Schritt 6: Konfigurieren Sie den DNS-Suchpfad des Clients
Jetzt konfigurieren wir Computer (alle, auf denen ein Webbrowser ausgeführt wird) so, dass der DNS-Suchpfad "ext.example.com" enthält.
Senden Sie auf Ihrem DHCP-Server und VPN-Server einen DNS-Suchpfad, der wie folgt lautet:
corp.example.com.
(Die Subdomain mit dem Redirect-Host, gefolgt von ".")
Alternativ können Sie einen Suchpfad wie folgt verwenden:
corp.example.com example.com.
Damit wird jedoch eine zusätzliche DNS-Suche für JEDE verdammte Webseite hinzugefügt, die wir besuchen. Da sie in 99% der Fälle versagen, wird das Surfen im Internet nur langsam.
Auf Arbeitsstationen und Laptops müssen Sie sicherstellen, dass die Unterdomäne in ihrem DNS-Suchpfad enthalten ist. Wenn der Benutzer "go" eingibt, findet die Software dies in der Domäne.
Wir möchten den Suchpfad des Computers so konfigurieren, dass er diese Unterdomäne auf jede Art und Weise enthält, wie der Suchpfad festgelegt werden kann:
Ursprünglich konnte der DNS-Suchpfad nicht über DHCP festgelegt werden. Dies ist eine neu hinzugefügte Funktion, die nicht von allen DHCP-Clients unterstützt wird. Sogar DHCP-Clients, die dies unterstützen, müssen geändert werden, da ein Laptop, der sich beispielsweise in einem Internetcafé befindet, mit einem DHCP-Server kommuniziert, den Sie nicht steuern können. Wenn ein Laptop ein VPN verwendet, verwendet die VPN-Client-Software nicht DHCP. In der Regel überträgt der VPN-Server jedoch die Einstellungen, die normalerweise von einem DHCP-Server abgerufen werden.
Daher möchten Sie den DNS-Suchpfad an allen folgenden Stellen festlegen:
- Der DHCP-Server sollte die DNS-Suchpfadoptionen senden
- Bei statisch konfigurierten Computern sollte der DNS-Suchpfad festgelegt sein
- Clients, die DHCP verwenden, sollten so konfiguriert werden, dass die
corp.example.com
Domäne vor dem Suchpfad angezeigt wird, sofern der DHCP-Server dies nicht bereits getan hat.
Im Folgenden finden Sie Anweisungen dazu, wie dies auf verschiedenen DHCP-Servern und Betriebssystemen durchgeführt wird.
Konfigurieren von DHCP-Servern, um einen DNS-Suchpfad einzuschließen:
- Windows DHCP-Anweisungen
MACHEN
- ISC DHCP-Anweisungen
Wenn der Suchpfad nur die Domäne ist, in der sich der Computer befinden soll, gilt Folgendes:
option domain-name "corp.example.com";
Wenn die Clients RFC 3397 zur Angabe eines Suchpfads unterstützen, können Sie dies tun, dies ist jedoch umständlich, da kein systemeigener Datentyp unterstützt wird, der eine Folge von DNS-Hosts ist, die jeweils wie in DNS als längenpräfixierte Bezeichnungen codiert sind. Es gibt keine Möglichkeit, die Werte einer Option zu schreiben, die als Array von Datensätzen definiert ist, wobei der Datensatz ein Array eines anderen Datensatzes enthält. Sie müssen also eine Datenzeichenfolge verwenden, um Dinge manuell zu codieren.
option dns-search-domains code 119 = string;
option dns-search-domains concat(
encode-int(4,1), "corp", encode-int(7,1), "example", encode-int(3,1), "com", encode-int(0,1),
encode-int(7,1), "example", encode-int(3,1), "com", encode-int(0,1)
);
Das sollte (ungetestet) eine Suchliste mit zwei Einträgen erzeugen.
- dnsmasq DHCP-Anweisungen
MACHEN
Statisch konfigurierte Maschinen konfigurieren:
- Windows
MACHEN
- Linux / Unix
Bearbeiten Sie /etc/resolv.conf
und stellen Sie sicher, dass (1) die "domain corp.example.com" die erste Zeile ist, (2) fügen Sie die "search" -Zeile hinzu / bearbeiten Sie sie, um die corp.example.com
Domain einzuschließen, (3) fügen Sie eine "options ndotes: 2" -Zeile hinzu Reduzieren Sie die Belastung Ihrer DNS-Server.
domain corp.example.com
search corp.example.com exmaple.com
options ndots:2
Konfigurieren von DHCP-Clients für andere DHCP-Server
TODO ausfüllen für Windows, Linux usw.
Schritt 7: Testen, testen, testen!
Jetzt sollten Benutzer Folgendes angeben können:
http: // go / foo http: //go.example/foo http://go.example.com/foo
Als Konfidenztest sollten Sie diese URLs in allen Situationen testen:
( each OS you support ) * ( internal LAN / at an Internet cafe / while on the VPN )
Schritt 8: Andere Ratschläge
Und zum Schluss noch ein Tipp: Auch wenn Sie dies perfekt gemacht haben, besteht das Risiko, dass eine http://go/foo
Verknüpfung nicht funktioniert, wenn eine Person versucht, sie auf einem Computer einzugeben, den Sie nicht für die Erzwingung der DNS-Suche konfiguriert haben Pfad zum Einbinden Ihrer Domain. Sie sollten daher veröffentlichen Links die vollständige URL verwenden: http://go.example.com/foo
; Nehmen Sie sich die Zeit, um die PR-Abteilung Ihres Unternehmens und andere zu schulen und immer so zu spezifizieren.
Oder codieren Sie sie zumindest in HTML, sodass "go" im Linktext angezeigt wird, die tatsächliche HREF jedoch an den FQDN:
<a href="http://go.example.com/lunch">go/lunch</a>
Es kann schwierig sein, die Leute in der PR-Abteilung dazu zu bringen. Vielleicht möchten Sie ihnen nur sagen, dass sie die long-Version ( go.example.com
) für alles verwenden müssen, was sie schreiben, da das kurze "go / lunch" nur zufällig funktioniert.
Schritt 8: HTTPS
TODO: Machen Sie sich ein Bild vom Umgang mit HTTPS (die Zertifizierung wird sehr schwierig, wenn nicht sogar unmöglich sein).