Недавно я получил маршрутизатор, на котором установлена прошивка dd-wrt. Я использую HTTP-сервер за этим маршрутизатором, и, поскольку он имеет NAT, я установил соответствующие переадресации портов.
У меня также зарегистрировано доменное имя, скажем, example.org, которое указывает на мой общедоступный IP-адрес, скажем 123.123.123.123 При доступе к нему из-за пределов локальной сети все работает нормально. Однако при вводе example.org в браузер ВНУТРИ ЛВС, похоже, он разрешается в частный IP-адрес маршрутизатора, 192.168.1.1. Ну, 123.123.123.123 и 192.168.1.1, конечно, указывают на одно и то же устройство, но переадресация портов не работает при доступе с IP 192.168.1.1. Если я ввожу 123.123.123.123 в свой браузер, он работает.
Кажется, проблема в том, что DNS-сервер, поставляемый с dd-wrt, переводит общедоступный IP в частный. Использование dig подтверждает это. Это:
mycomp:~ me$ dig example.org
; <<>> DiG 9.8.3-P1 <<>> example.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29597
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;example.org. IN A
;; ANSWER SECTION:
example.org. 0 IN A 192.168.1.1
;; Query time: 7 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Fri Aug 1 15:40:17 2014
;; MSG SIZE rcvd: 42
по сравнению с этим: (спрашивая непосредственно с внешнего [здесь, Google] DNS-сервера)
mycomp:~ me$ dig @8.8.8.8 example.org
; <<>> DiG 9.8.3-P1 <<>> @8.8.8.8 example.org
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17481
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;example.org. IN A
;; ANSWER SECTION:
example.org. 59 IN A 84.248.86.142
;; Query time: 249 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Aug 1 15:27:36 2014
;; MSG SIZE rcvd: 42
Похоже, что dd-wrt вмешивается в запрос DNS. Как настроить это, чтобы не делать этого?