есть gate.domain.ru, две карты, одна вовне (подняты 81.30.201.6 + 81.30.201.5)
держит зону:
gate.domain.ru. in a 81.30.201.6
www.domain.ru. in a 81.30.201.5
вторая карта (192.168.0.1) смотрит внутрь сети..есть внутри веб-сервак (192.168.0.200 def. gateway: 192.168.0.1)
$IPTABLES -t nat -A PREROUTING -p TCP -i $INET_IFACE -d $HTTP_IP \
--dport 80 -j DNAT --to-destination $LAN_HTTP_IP:80это кидает внешних людей внутрь сетки на web-сервак
а как быть с локальными пользователями? (у них gateway тоже 192.168.0.1)
они набирают www.domain.ru -> resolve: 81,30,201,5 (порт есно 80)
а дальше как должен отработать iptables этот запрос пришедший на LAN_IFACE?Спасибо!!! Читал про iptables... нормально читал.. help..
>а дальше как должен отработать iptables этот запрос пришедший на LAN_IFACE?Нормально должен отработать. Но некрасиво это :-\
Весь вопрос: где лежит зона domain.ru физически?
Если у тебя BIND 9, делишь (split) зону на внешнюю и внутреннюю и для внутренней прописываешь
www.domain.ru. in a 192.168.0.200
Для внешних все останется по-прежнему, зато локальные юзеры будут прямо на сервак ходить.Ежели зона хостится где-то у провайдера, можно на шлюзе поставить dns forwarder (типа dnsmasq), в файле /etc/hosts прописать
192.168.0.200 www.domain.ru
и юзерам раздать через dhcp адрес nameserver - 192.168.0.1
Результат будет тот-же
Да, bin9 ver. 9.2.1-2 debianэ.. split.. примерно как это сделать?
спасибо!!!!
>Да, bin9 ver. 9.2.1-2 debian
>
>э.. split.. примерно как это сделать?Примерно так:
named.conf (не все, только по теме)
acl internal { 172.28.0.0/16; }; # Это у меня внутри
acl external { any; };
........
options {
allow-query { any; };
allow-recursion { "internal";};
.....
};view "int-zone" {
match-clients { "internal"; };zone "domain.ru" {
type master;
file "int.domain.ru";
notify no;
};
......
};view "ext-zone" {
match-clients { "external"; };zone "domain.ru" {
type master
file "ext.domain.ru";
notify yes;
};
.....
};В файле ext.domain.ru описана зона как есть сейчас, т.е. для всего интернета
А в файле int.domain.ru поставь
www.domain.ru. IN A <внутренний_IP>
Если еще есть серверы в domain.ru для внутренних пользователей, их нужно так-же описать в int.domain.ru (реальные или фиктивные адреса)Аналогично обратные зоны
>спасибо!!!!
Пожалуйста
это просто потрясающе!!! буду пробовать...Спасибо!
слов нет.. так круто! )))
ты знаешь, скорее всего в каждый из "view" надо засунуть зоны (которые идет стандартно) zone "." (рутовые), потом 127.0.0.1 ну и т.п. так?а то почему-то сам сервер самому себе перестал резолвить...
(при этом внешние и внутренные получает верный резолв...)
Спасибо.
>ты знаешь, скорее всего в каждый из "view" надо засунуть зоны (которые
>идет стандартно) zone "." (рутовые), потом 127.0.0.1 ну и т.п. так?
>
Стандартные зоны достаточно запихнуть в "ext-zone"
По крайней мере, у меня в "int-zone" нету "." и "127....">
>а то почему-то сам сервер самому себе перестал резолвить...
>
Вероятно, по причине того, что в int.domain.ru прописано NS на наружний адрес, а не на себя "внутреннего"Еще можно добавить
view "ext-zones" {
match-clients { "external"; };
allow-query { localhost; }; # вот эту запись
блин.. не получается ну никак...// --- named.conf ---------
options {
directory "/var/cache/bind";// - by aza -
forwarders {
213.24.96.233;
213.24.96.234;
};
allow-query { any; };
allow-recursion { "internal-ip"; };
// - by aza end -auth-nxdomain no; # conform to RFC1035
};
// add entries for other zones below here// - by aza -
acl internal-ip { 172.16.0.0/16; };
acl external-ip { any; };// - for *** internal *** users -
view "int-zone" {
match-clients { "internal-ip"; };zone "bashkortostan.ru" {
type master;
file "/etc/bind/masters/db.int.bashkortostan.ru";
notify no;
};
};// - for *** external *** clients -
view "ext-zone" {
match-clients { "external-ip"; };
// allow-query { localhost; }; - не помогло...// this was as defaults
zone "." {
type hint;
file "/etc/bind/db.root";
};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";
};
// defaults endzone "bashkortostan.ru" {
type master;
file "/etc/bind/masters/db.ext.bashkortostan.ru";
notify yes;
};
};----------- ext zone file-----------
;
; Internal zone bashkortostan.ru
;
$TTL 86400
@ IN SOA bashkortostan.ru. root.bashkortostan.ru. (
2003031910 ; Serial yyyymmddxx
10800 ; Refresh - 3 hour
3600 ; Retry - 1 hour
864000 ; Expire - 10 days
86400 ) ; Minimum - 1 day
;
IN NS ns.bashkortostan.ru. ; primary ns
IN NS nameserver.bashnet.ru. ; slave ns
;
IN MX 10 mail.bashkortostan.ru.
;
localhost A 127.0.0.1
;
bashkortostan.ru. A 213.24.203.25
ns A 213.24.203.25
mail A 213.24.203.25
;
www A 213.24.203.8
ftp A 213.24.203.8------------------- int zone -------------------
;
; External zone bashkortostan.ru
;
$TTL 86400
@ IN SOA bashkortostan.ru. root.bashkortostan.ru. (
2003031925 ; Serial yyyymmddxx
10800 ; Refresh - 3 hour
3600 ; Retry - 1 hour
864000 ; Expire - 10 days
86400 ) ; Minimum - 1 day
;
IN NS ns.bashkortostan.ru. ; primary ns
;
; IN MX 10 mail.bashkortostan.ru.
;
localhost A 127.0.0.1
;
bashkortostan.ru. A 172.16.0.250
ns A 172.16.0.250
mail A 172.16.0.250
;
www A 172.16.1.245
ftp A 172.16.1.245------------- resolv.conf -----------------------
nameserver 127.0.0.1
search bashkortostan.ru
nameserver 213.24.96.233
nameserver 213.24.96.234------------- daemon.log------------
starting BIND 9.2.1
using 1 CPU
loading configuration from '/etc/bind/named.conf'
no IPv6 interfaces found
listening on IPv4 interface lo, 127.0.0.1#53
listening on IPv4 interface eth0, 213.24.103.25#53
listening on IPv4 interface eth1, 172.16.0.250#53
command channel listening on 127.0.0.1#953
zone bashkortostan.ru/IN: loaded serial 2003031925
zone 0.in-addr.arpa/IN: loaded serial 1
zone 127.in-addr.arpa/IN: loaded serial 1
zone 255.in-addr.arpa/IN: loaded serial 1
zone localhost/IN: loaded serial 1
zone bashkortostan.ru/IN: loaded serial 2003031910
running
zone bashkortostan.ru/IN: sending notifies (serial 2003031910)----------------------
пока тачка в сети не зарегена.. тока ip, поэтому извне тестирую дигом типа так: dig @my-ip some-sub.mydomain.ru
результат:
1. для internal: ок (правильно резолвит мой (дает внутр-ip) и чужие домены www.ru - 194.87.0.50 и т.п.)
2. для external: ок (верно резолвит мой домен, но не резолвит чужые иди-ка ты, мол, к рутовым днс... :)
3. для самого себя: фиг - ни секунды думая говорит:
---
mail:/var/log# ping www.ru
ping: unknown host www.ru
mail:/var/log#
----Плиииз help!
Благодарю!
при ping www.ru
для самого себя он пытается отрезолвить www.ru.my-domain.ru :(вот. :(
дело в том, что на данный момент мой домен реально сущ-ет в инете... (его держат другие ns (точнее другие ip) может из-за этого траблы..
>при ping www.ru
>для самого себя он пытается отрезолвить www.ru.my-domain.ru :(
>
Это-то понятно.
Ты же ему сказал в resolv.conf
search bashkortostan.ru
вот он и добавляет к www.ruПохоже проблема в allow-recursion { "internal-ip"; };
сделай
allow-recursion { "internal-ip"; localhost; };
Все! Отлично все работает!Всем спасибо!!
Camb.
зоан физически у меня - master name server.. внеш ip адресов свободных достаточно.Спасибо.