1

У меня есть веб-сервер, сидящий за NAT. Таким образом, веб-сервер имеет два IP-адреса: один виден всему миру, а другой - только в локальной сети.

Для мобильных устройств я хотел бы иметь возможность ссылаться на страницы на сервере с одного адреса, например, www.myhost.com в обоих случаях, вместо использования локального IP-адреса, такого как 192.168.1.x когда устройство находится в локальной сети и www.myhost.com когда устройство находится за пределами локальной сети. Для этого есть две причины: во-первых, довольно неудобно вручную переключаться между адресами в зависимости от того, где они находятся. Во-вторых, не существует отдельного сертификата SSL для IP-адреса локальной сети, что приводит к появлению раздражающих предупреждений браузера, по которым нужно переходить.

Однако, предположительно, из-за того, что трафик через адрес в стиле www.myhost.com должен проходить через NAT, а трафик 192.168.1.x - нет, существует существенная разница в производительности - скорость передачи в локальной сети более чем в 6 раз выше ,

Есть ли какой-нибудь способ всегда использовать имя, видимое всему миру, и в то же время получить производительность локальной сети в локальной сети?

У меня нет доступа к DNS-серверу в любом случае, но будет ли работать что-то вроде многоадресного DNS (он же Bonjour)?

Чтобы все было немного сложнее, я бы хотел, чтобы он работал на втором сайте. У него другой домен, например, www.myhost2.com который реплицирует первый хост. В идеале www.myhost.com чтобы разрешить IP для www.myhost2.com в локальной сети второго сайта.

1 ответ1

2

Предположения

  • FW пересылает 80/ TCP и 443/ TCP 192.168.1.5 (зеленый httpd)
  • FW выдает опцию DHCP 6, которая в настоящее время указывает на внешний сервер имен в Интернете (красный общедоступный DNS)
  • Общедоступная запись DNS для www.myhost.com - 198.51.100.20.

Решение

  • Создайте DNS Resolver на 192.168.1.10 для вашей частной сети (темно-красный bind / bonjour)
  • Добавьте файл приватной зоны на свой личный DNS для myhost.com (темно-красный bind / bonjour)
  • Настройте параметр DHCP вашего DHCP-сервера 6 (Сервер доменных имен), чтобы он указывал на 192.168.1.10

Почему ваш веб-сервер работает медленно

Некоторые брандмауэры не знают, как выполнить NAT для 198.51.100.20 из внутреннего интерфейса, поэтому они отправляют весь трафик провайдеру (который затем отправляет трафик для www.myhost.com обратно на 198.51.100.20). Это обратное путешествие к маршрутизатору ISP и обратно - это то, что замедляет вас.

Ссылка на схему:

Домашняя сеть

Ваша сеть может выглядеть по-другому, но единственное, что действительно важно, это ваш веб-сервер и внутренний сервер имен.

Пример конфигурации распознавателя bind для этой сети

Похоже, вы работаете с OSX, поэтому я дам * nix конфиги, но вы можете настроить аналогичный разрешающий сервер имен в Windows.

Я должен сделать что-то подобное дома; это расшифрованная версия моих конфигов bind . Помните, что bind любит вкладки. Как только вы запустите bind вы сможете интегрировать связывание с Bonjour, но это не обязательно.

Технически можно свернуть ваш сервер имен и httpd на одной машине, но я бы держал их отдельно в целях безопасности. Еще одно замечание: хостинг веб-сервера без реальной DMZ несколько рискован, но сейчас мы выходим за рамки вашего вопроса.

Файл /etc/bind/named.conf:
include "/etc/bind/named.conf.options";

// prime the server with knowledge of the root servers
zone "." {
    type hint;
    file "/etc/bind/db.root";
};

// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912

zone "localhost" {
    type master;
    file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
    type master;
    file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
    type master;
    file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
    type master;
    file "/etc/bind/db.255";
};

include "/etc/bind/named.conf.local";
Файл /etc/bind/named.conf.options:
acl kill_clients {
        192.168.1.32;  // Black hole requests here (I have a cheap webcam)
};
acl valid_clients {
        192.168.1.0/24;
        127.0.0.0/8;
};

options {
    directory "/var/cache/bind";

    // If there is a firewall between you and nameservers you want
    // to talk to, you may need to fix the firewall to allow multiple
    // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

    // If your ISP provided one or more IP addresses for stable 
    // nameservers, you probably want to use them as forwarders.  
    // Uncomment the following block, and insert the addresses replacing 
    // the all-0's placeholder.

    // forwarders {
    //  0.0.0.0;
    // };

    auth-nxdomain no;    # conform to RFC1035
    listen-on-v6 { any; };
    listen-on { any; };
    blackhole { kill_clients; };
    forwarders {4.2.2.2; 8.8.8.8; };  // Replace with your ISP DNS servers
};
// Configure the communication channel for Administrative BIND9 with rndc
// By default, they key is in the rndc.key file and is used by rndc and bind9 
// on the localhost
controls {
        inet 127.0.0.1 port 953 allow { 127.0.0.1; };
};
Файл /etc/bind/named.conf.local:
//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

zone "myhost.com" {
        type master;
        file "/etc/bind/db.myhost";
};

zone "1.168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/db.192.168.1.0";
};
Файл /etc/bind/db.myhost:
;
; BIND data file for local loopback interface
;
$TTL    3600
myhost.com. IN  SOA ns.myhost.com. hostmaster.myhost.com. (
           201301091350     ; Serial
               3600     ; Refresh
              86400     ; Retry
            2419200     ; Expire
               3600 )   ; Negative Cache TTL
;
myhost.com. IN  NS  ns.myhost.com.

www IN  A   192.168.1.5
www-public  IN  A   198.51.100.20
ns  IN  A   192.168.1.10
fw  IN  A   192.168.1.254
Файл /etc/bind/db.192.168.1.0:
@   IN  SOA ns.myhost.com. root..     (
2013010901  ;serial
14400   ;refresh
3600    ;retry
604800  ;expire
10800   ;minimum
)

1.168.192.in-addr.arpa. IN  NS  ns.myhost.com.

10  IN  PTR ns.myhost.com.
5   IN  PTR www.myhost.com.
254 IN  PTR fw.myhost.com.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .