Предположения
- 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.