W blogu „Usługa„ tinyurl ”dla Twojej domeny ” wyjaśnia, jak skonfigurować usługę ShortName dla swojej domeny za pomocą Google Apps. Na przykład jeśli Twoja domena jest example.com
i korzystasz z Google Apps, możesz ją skonfigurować tak, http://go.example.com
aby była osobistą usługą ShortName Twojego przedsiębiorstwa.
UWAGA: Tu nie chodzi o stworzenie usługi „tinyurl” dla świata. To jest dla przedsiębiorstwa.
Przydatne jest posiadanie usługi skróconej nazwy, z której mogą korzystać tylko użytkownicy, aby można było tworzyć linki do stron wewnętrznych. Zamiast mówić ludziom o długim, trudnym adresie URL, możesz powiedzieć: „Dzisiejsze menu na lunch znajduje się na stronie http://go.example.com/lunch ”. Wpis na blogu dokumentuje niektóre korzyści płynące z umożliwienia ludziom zakładania własnych linków. (Najważniejsze: nie muszą Ci przeszkadzać, aby założyć nowy link!)
Problem
Problem z systemem polega na tym, że adres URL jest wciąż dość długi. Ludzie wolą wpisać „go / lunch” w swojej przeglądarce i włączyć. Niestety Google Apps nie może tego obsłużyć ze względu na techniczną funkcjonalność protokołu HTTP. Nagłówek „Host:” w HTTP 1.1 zawiera domenę wpisaną przez użytkownika w przeglądarce internetowej, a nie nazwę FQDN . Innymi słowy, gdy Google Apps otrzyma żądanie HTTP „ http: // go / lunch ”, serwer internetowy otrzymuje „go” jako nazwę hosta. Ponieważ Google Apps zapewnia tę usługę dla wielu domen, nie może powiedzieć, czy chcesz, go.example.com
czy go.some-other-example.com
.
W rezultacie użytkownicy muszą za każdym razem wpisywać „go.example.com/lunch”, co jest znacznie dłuższe niż „go / lunch”.
Rozwiązanie
Google może rozwiązać ten problem za pomocą internetowych plików cookie lub innego programu. Żaden z nich nie jest szczególnie czysty ani łatwy. Do tego czasu możesz rozwiązać problem, konfigurując własny komputer, który akceptuje żądania jako „idź” i przekierowuje je.
Serwer akceptuje żądania HTTP dotyczące witryny o nazwie „go” i przekierowuje żądanie do go.example.com
. Następnie tworzysz odpowiednie rekordy DNS, aby działało, i przekręcasz konfiguracje DHCP, aby Twoje laptopy / stacje robocze działały poprawnie.
Celem tego dokumentu o błędzie serwera jest wyjaśnienie tego procesu, a następnie podanie przykładów konfiguracji, które pomogą ci to zrobić dla swojej witryny. Ponieważ nie mam dostępu ani wiedzy o każdym systemie operacyjnym na świecie, robię z tego „wiki społeczności”, aby ludzie mogli wypełniać fragmenty konfiguracji, gdy tylko będą dla nich działać. Umieściłem „TODO” w obszarze, który szczególnie wymaga poprawy.
Szczegóły
W tym przykładzie użyjemy „example.com” jako domeny.
Krok 1. Skonfiguruj usługę Google Apps w normalny sposób.
Skonfiguruj usługę go.example.com
tak, jak zwykle. Przetestuj to i upewnij się, że taki adres URL http://go.example.com/foo
działa. Nie kontynuuj, jeśli nie jest to kompletne. To byłoby jak próba naprawy samochodu przed jego posiadaniem.
Krok 2: Wybierz nazwę hosta readresatora
Jeśli twoją usługą krótkich go.example.com
nazw jest , najlepiej byłoby nadać nazwę swojemu readresatorowi go.example.com
. Niestety fizyka uniemożliwia dwóm ciałom przebywanie w tym samym miejscu w tym samym czasie, a DNS przestrzega praw fizyki.
Sztuką jest, aby readresator miał taką samą nazwę hosta jak usługa ShortName, ale w innej domenie. Na przykład go.corp.example.com
, go.ext.google.com
albo go.this-is-different.example.com
.
Duże firmy zwykle mają wewnętrzną poddomenę, która nie jest narażona na świat zewnętrzny. Zwykle są to hosty wewnętrzne INSIDEHOST.corp.google.com
. Tam umieszczasz readresator.
Niektóre firmy przydzielają poddomenę pełną nazw CNAME wskazujących usługi, do których dostęp powinien mieć zarówno firma, jak i firma. W ten sposób istnieje jedna subdomena, którą należy umieścić w ścieżce wyszukiwania DNS osób. (Ludzie uniksowi mogą myśleć o tym jako o /usr/local/bin
podkatalogu pełnym dowiązań symbolicznych) Tradycyjnie ta subdomena jest ext.example.com
. W tym subdomeny są rekordy CNAME jak mail.ext.example.com
, calendar.ext.example.com
, vpn.ext.example.com
i tak dalej).
Ostrzeżenie: dodanie kolejnego elementu do ścieżki wyszukiwania DNS to kolejny sposób na spowolnienie działania komputerów. Wykonanie dodatkowego zapytania DNS KAŻDY CZAS jest powolny, a surfowanie po Internecie będzie zauważalnie wolniejsze. O wiele lepiej jest dodać ten readresator do subdomeny, która znajduje się już na ścieżce wyszukiwania DNS komputera, nawet jeśli oznacza to dodanie CNAME w wielu subdomenach. Na przykład, jeśli Twoje maszyny wewnętrzne i maszyny podłączone do VPN już znajdują się corp.example.com
w ścieżce wyszukiwania, dodaj tam CNAME. Jeśli chcesz, aby zewnętrzne maszyny, które nie są podłączone do sieci VPN, miały dostęp do readresatora, może to być dziwne, jeśli kod jest sztywny corp.example.com
w ścieżce wyszukiwania, jeśli jest to poddomena komputerów, do których nigdy nie masz dostępu z zewnątrz. W takim przypadku można dodać kolejną CNAME do zewnętrznej subdomeny (npext.example.com
), aby wskazać przekierowanie. Zaktualizuj konfigurację serwera WWW, aby obsługiwała oba te elementy.
W tym przykładzie załóżmy, że wybrałeś przekierowanie go.ext.example.com
. Maszynę można nazwać jak tylko zechcesz, zrobimy całą magię w DNS i konfiguracji serwera WWW.
Krok 3: Planowanie przekierowania
Serwer internetowy, który zamierzasz skonfigurować, może znajdować się na istniejącym serwerze internetowym lub nowym, zbudowanym właśnie do tego celu. Kluczem jest to, że maszyna musi być dostępna z dowolnego miejsca, w którym ma działać usługa ShortName: wewnątrz firmy, poza firmą, gdy użytkownik jest połączony przez VPN. (Możesz zrezygnować z pracy spoza firmy ze względów bezpieczeństwa. Możesz również, ze względów bezpieczeństwa, skonfigurować jedną maszynę wewnątrz i drugą na zewnątrz).
Uwaga: Nie musisz w tym celu konfigurować nowego serwera WWW. Możesz dodać to do istniejącego serwera WWW, dopóki konfiguracja nie istnieje.
Uwaga: może to być dość skomplikowane. Możesz skoncentrować się na uruchomieniu tego w najprostszym przypadku, a następnie po pracy i przetestowaniu spraw, aby działał w innych sytuacjach. W szczególności spraw, aby działał w następującej kolejności: 1. stacje robocze / laptopy wewnątrz firmy 2. NASTĘPNIE maszyny połączone przez VPN, a następnie maszyny spoza firmy (na przykład w kafejce internetowej). 3. NASTĘPNIE maszyny poza siecią, bez włączonej sieci VPN 4. NASTĘPNIE przetestuj to na innych systemach operacyjnych
W tym przykładzie założymy, że serwer WWW jest dostępny pod tym samym adresem IP, niezależnie od tego, czy jesteś w firmie, czy poza nią.
W naszym przykładzie „go. Corp .example.com” oznacza to, że „go” znajduje się w subdomenie, która jest dostępna tylko dla osób z zewnątrz i wymaga VPN do korzystania z usługi ShortName. Ponieważ Google Apps jest zwykle skonfigurowane do pracy bez VPN (ponieważ cały dostęp to HTTPS), jest to nieoptymalne.
W naszym przykładzie „go. Ext .example.com” oznacza to, że subdomena jest dostępna zarówno w firmie, jak i poza nią, a A
rekord wskazuje na zewnętrzny adres IP.
Krok 4: Dodaj rekordy DNS dla swojego readresatora
Oto wymagane rekordy DNS:
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
Pierwszy rekord DNS (go.example.com) powinien już istnieć w ramach kroku 1.
Drugi rekord DNS (go. Ext .example.com) to A
rekord wskazujący na adres IP nowego konfigurowanego serwera internetowego.
Trzeci rekord DNS (go-redirector) ma pomóc w debugowaniu.
Krok 5: Skonfiguruj serwer WWW
Dodaj przekierowanie do serwera WWW. (Zakłada się, że serwer WWW jest już zainstalowany i działa).
Oto fragment konfiguracji Apache:
<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>
Jak to przetestować. http://go-redirector.example.com
powinien działać w tym momencie.
Nie kontynuuj, dopóki ten test nie zadziała. Dziecięce kroki.
Krok 6: Skonfiguruj ścieżkę wyszukiwania DNS klienta
Teraz skonfigurujemy maszyny (wszystko, co działa w przeglądarce), aby ścieżka wyszukiwania DNS zawierała „ext.example.com”
Na serwerze DHCP i serwerze VPN wyślij ścieżkę wyszukiwania DNS, która jest:
corp.example.com.
(subdomena z hostem przekierowującym, a następnie „.”)
Alternatywnie możesz użyć ścieżki wyszukiwania, takiej jak:
corp.example.com example.com.
To jednak doda dodatkowe wyszukiwanie DNS dla KAŻDEJ cholernej strony internetowej, na którą się znajdujemy. Ponieważ zawiodą one w 99% przypadków, spowoduje to spowolnienie surfowania po Internecie.
Na stacjach roboczych i laptopach należy upewnić się, że subdomena znajduje się w ścieżce wyszukiwania DNS. W ten sposób, gdy użytkownik wpisze „go”, oprogramowanie znajdzie go w domenie.
Chcemy skonfigurować ścieżkę wyszukiwania komputera, tak aby zawierała tę subdomenę na każdy sposób, w jaki można ustawić ścieżkę wyszukiwania:
Pierwotnie ścieżka wyszukiwania DNS nie mogła być ustawiona przez DHCP. Jest to nowo dodana funkcja i nie wszyscy klienci DHCP ją obsługują. Nawet klienci DHCP, którzy go obsługują, wymagają modyfikacji, ponieważ gdy laptop znajduje się (na przykład) w kafejce internetowej, rozmawia z serwerem DHCP, którego nie kontrolujesz. Gdy laptop korzysta z VPN, oprogramowanie klienckie VPN tak naprawdę nie korzysta z DHCP, ale zwykle istnieje sposób, w jaki serwer VPN przesyła ustawienia, które zwykle otrzymuje się z serwera DHCP.
Dlatego chcesz ustawić ścieżkę wyszukiwania DNS we wszystkich tych miejscach:
- Serwer DHCP powinien wysłać opcje ścieżki wyszukiwania DNS
- Komputery skonfigurowane statycznie powinny mieć ustawioną ścieżkę wyszukiwania DNS
- Klienci korzystający z DHCP powinni zostać skonfigurowani w taki sposób,
corp.example.com
aby domena była wstępnie umieszczona w ścieżce wyszukiwania, jeśli serwer DHCP jeszcze jej nie uwzględnił.
Poniżej znajdują się instrukcje, jak to zrobić na różnych serwerach DHCP i systemach operacyjnych.
Konfigurowanie serwerów DHCP w celu uwzględnienia ścieżki wyszukiwania DNS:
- Instrukcje Windows DHCP
DO ZROBIENIA
- Instrukcje ISC DHCP
Jeśli ścieżka wyszukiwania to tylko domena, w której powinien znajdować się komputer, to:
option domain-name "corp.example.com";
Jeśli klienci obsługują RFC 3397 w celu zapewnienia ścieżki wyszukiwania, możesz to zrobić, ale jest to niewygodne, ponieważ nie ma natywnej obsługi typu danych, który jest sekwencją hostów DNS, z których każdy jest zakodowany jako etykieta z prefiksem długości, jak w DNS. Nie ma sposobu na zapisanie wartości opcji zdefiniowanej jako tablica rekordów, w której rekord zawiera tablicę innego rekordu, więc sprowadzasz się do używania ciągu danych do ręcznego kodowania.
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)
);
które powinny (nieprzetestowane) wygenerować listę wyszukiwania dwóch elementów.
- Instrukcje DHCP dnsmasq
DO ZROBIENIA
Konfigurowanie statycznie skonfigurowanych maszyn:
- Windows
DO ZROBIENIA
- Linux / Unix
Edytuj /etc/resolv.conf
i upewnij się, że (1) „domena corp.example.com” jest pierwszym wierszem, (2) dodaj / edytuj wiersz „search”, aby uwzględnić corp.example.com
domenę, (3) dodaj wiersz „opcje ndotes: 2” do zmniejsz obciążenie serwerów DNS.
domain corp.example.com
search corp.example.com exmaple.com
options ndots:2
Konfigurowanie klientów DHCP do pracy na innych serwerach DHCP
Wypełnij TODO dla Windows, Linux itp.
Krok 7: Testuj, testuj, testuj!
Teraz użytkownicy powinni mieć możliwość określenia:
http: // go / foo http: //go.example/foo http://go.example.com/foo
W rzeczywistości jako test zaufania chcesz przetestować te adresy URL we wszystkich sytuacjach:
( each OS you support ) * ( internal LAN / at an Internet cafe / while on the VPN )
Krok 8: Inne porady
I na koniec jedna rada: nawet jeśli wykonałeś perfekcyjną robotę, nadal istnieje ryzyko, że http://go/foo
link nie będzie działał, gdy osoba spróbuje wpisać go na komputerze, którego nie skonfigurowałeś, aby wymusić wyszukiwanie DNS ścieżka do włączenia Twojej domeny. Dlatego należy publikować linki przy użyciu pełnego adresu URL http://go.example.com/foo
:; i poświęć czas na edukację działu PR firmy i innych, aby zawsze tak to określać.
Lub przynajmniej zakoduj je w HTML, aby „go” było widoczne w tekście łącza, ale rzeczywisty HREF przechodzi do nazwy FQDN:
<a href="http://go.example.com/lunch">go/lunch</a>
Nauczenie ludzi z działu PR może być trudne. Możesz po prostu powiedzieć im, że muszą używać długiej wersji ( go.example.com
) we wszystkim, co piszą, ponieważ krótkie „idź / lunch” działa tylko przypadkowo.
Krok 8: HTTPS
DO ZROBIENIA: Dowiedz się, jak postępować z HTTPS (uzyskanie prawidłowych certyfikatów będzie bardzo trudne, jeśli nie niemożliwe).