Друзья, окажите, пожалуйста, помощь к конфигурации роутера.Что имеем:
Router DIR-320 (последняя прошивка от Олега http://code.google.com/p/wl500g/wiki/NEWS)
IP роутера 128.0.0.1, раздает сеть 128.0.0.xx/255.255.255.0Есть 2 проводных провайдера:
1) Дом.ru, PPPoE, динамический IP.2) Trinity, PPTP (поднимается вручную при необходимости), статический IP 192.168.111.39
GW: 192.168.111.1
DNS: 192.168.111.1, 192.168.0.99, 192.168.0.100
Маршруты сети провайдера 2:
192.168.0.0/255.255.0.0 gw 192.168.111.1
172.16.0.0/255.240.0.0 gw 192.168.111.1
10.0.0.0/255.0.0.0 gw 192.168.111.1Задачи:
1) ходить в инет через провайдера 1 (настроено через web-interface роутера).
2) иметь доступ к локальным ресурсам провайдера 2.Что делаю:
В /usr/local/sbin/post-boot прописываю:
#!/bin/sh
# отдаю 1 порт роутера на VLAN 2
robocfg vlan 0 ports "2 3 4 5t" vlan 2 ports "1 5t"
vconfig add eth0 2
ifconfig vlan2 192.168.111.39 netmask 255.255.255.0 up
# прописываю маршруты
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.111.1 dev vlan2
route add -net 172.16.0.0 netmask 255.240.0.0 gw 192.168.111.1 dev vlan2
route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.111.1 dev vlan2В /usr/local/sbin/post-firewall прописываю:
#!/bin/sh
#настраиваю nat для VLAN 2
iptables -t nat -A POSTROUTING -j SNAT -o vlan2 -s 128.0.0.0/24
#удаляю дефолтный маршрут на VLAN2, чтобы он всегда был поверх остальных с метрикой 1
iptables -t filter -A FORWARD -i ! br0 -o vlan2 -j DROP
route del default dev vlan2
route add default gw 192.168.111.1 dev vlan2 metric 1В /tmp/local/etc/dnsmasq.conf прописываю ДНС серверы:
server=192.168.111.1
server=192.168.0.99
server=192.168.0.100Что имеем в итоге:
1) пинг до шлюза 192.168.111.1
2) пинг до 192.168.0.1, но нет пинга до ДНС серверов этой подсети (0.99 и 0.100)Прошу не тыкать носом в RTFM, помогите, пожалуйста, готовыми конфигами.
>[оверквотинг удален]
># прописываю маршруты
>route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.111.1 dev vlan2
>route add -net 172.16.0.0 netmask 255.240.0.0 gw 192.168.111.1 dev vlan2
>route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.111.1 dev vlan2
>
#!/bin/sh
SNAT куда?
это что ?128.0.0.0/24? локальная сеть?
>#удаляю дефолтный маршрут на VLAN2, чтобы он всегда был поверх остальных с
> метрикой 1
>iptables -t filter -A FORWARD -i ! br0 -o vlan2 -j DROP
это к маршрутам не имеет никакого отношения
>
>route del default dev vlan2
>route add default gw 192.168.111.1 dev vlan2 metric 1
т.е. в тырнет через второго прова?
>[оверквотинг удален]
>server=192.168.111.1
>server=192.168.0.99
>server=192.168.0.100
>
>Что имеем в итоге:
>1) пинг до шлюза 192.168.111.1
>2) пинг до 192.168.0.1, но нет пинга до ДНС серверов этой подсети
>(0.99 и 0.100)
>
>Прошу не тыкать носом в RTFM, помогите, пожалуйста, готовыми конфигами.
а придётся - читайте доку по iptables и статической маршрутизации в linux
>SNAT куда?--to-source 192.168.111.39 (статический IP, выдаваемый провайдером №2)
>это что ?128.0.0.0/24? локальная сеть?
Да, локальная сеть, раздаваемая роутером.
>это к маршрутам не имеет никакого отношения
>>route del default dev vlan2
>>route add default gw 192.168.111.1 dev vlan2 metric 1Грохнул дефолтный и создал заново, что не так тут?
>т.е. в тырнет через второго прова?
От второго провайдера нужна только локаль
>>SNAT куда?
>
>--to-source 192.168.111.39 (статический IP, выдаваемый провайдером №2)
>
>>это что ?128.0.0.0/24? локальная сеть?
>
>Да, локальная сеть, раздаваемая роутером.очень оригинально. Лучше 127.0.0.0/24 :)
>>это к маршрутам не имеет никакого отношения
>>>route del default dev vlan2
>>>route add default gw 192.168.111.1 dev vlan2 metric 1
>
>Грохнул дефолтный и создал заново, что не так тут?
>
>>т.е. в тырнет через второго прова?
>
>От второго провайдера нужна только локальпокажи вывод
# ip ro sh
>покажи вывод
># ip ro sh
85.113.63.105 dev ppp0 proto kernel scope link src 95.79.231.183
128.0.0.0/24 dev br0 proto kernel scope link src 128.0.0.1
192.168.111.0/24 dev vlan2 proto kernel scope link src 192.168.111.39
192.168.0.0/16 via 192.168.111.1 dev vlan2
172.16.0.0/12 via 192.168.111.1 dev vlan2
10.0.0.0/8 via 192.168.111.1 dev vlan2
127.0.0.0/8 dev lo scope link
default via 85.113.63.105 dev ppp0
default via 192.168.111.1 dev vlan2 metric 1
>default via 192.168.111.1 dev vlan2 metric 1зачем этот маршрут?
>>default via 192.168.111.1 dev vlan2 metric 1
>
>зачем этот маршрут?это перестраховка, работает и без него.
На текущий момент пакеты нормально маршрутизируются во всех направлениях.
Остался один нерешенный вопрос: как/где правильно указать DNS серверы 2-го провайдера (в resolv.conf указаны DNS первого)
/etc/dnsmasq.conf
user=nobody
resolv-file=/tmp/resolv.conf
no-poll
interface=br0
no-negcache
cache-size=512
dhcp-leasefile=/tmp/dnsmasq.log
dhcp-range=lan,128.0.0.10,128.0.0.254,86400
read-ethers
dhcp-authoritative
server=192.168.111.1
server=192.168.0.99последние две строки - DNS серверы сети на которую смотрит vlan2, тем не менее имена этой сети не резольвятся.
Какой ДНС прописан у клиента?
>Какой ДНС прописан у клиента?Кто клиент в данном случае?
1) На локальных машинах 128.0.0.0/24 ничего не прописано, зачем?
2) На роутере 128.0.0.1 ДНСы в /etc/dnsmasq.conf:
2.1) от 1го провайдера получаются автоматически и пишутся в resolv-file=/tmp/resolv.conf при создании pppoe соединения;
2.2) от 2го провайдера пишу ручками в /usr/local/etc/dnsmasq.conf:
server=192.168.111.1
server=192.168.0.99
но не резольвят ничего..., может форвардить на них надо?
>>Какой ДНС прописан у клиента?
>
>Кто клиент в данном случае?локальная сеть, если я правильно понял
>1) На локальных машинах 128.0.0.0/24 ничего не прописано, зачем?
а как они будут резолвить имена?
>2) На роутере 128.0.0.1 ДНСы в /etc/dnsmasq.conf:
> 2.1) от 1го провайдера получаются автоматически и пишутся в
>resolv-file=/tmp/resolv.conf при создании pppoe соединения;
> 2.2) от 2го провайдера пишу ручками в /usr/local/etc/dnsmasq.conf:
> server=192.168.111.1
> server=192.168.0.99
> но не резольвят ничего...,
>может форвардить на них надо?# nslookup test.domain 192.168.111.1
# nslookup test.domain 192.168.0.99что говорит?
>>>Какой ДНС прописан у клиента?
>>
>>Кто клиент в данном случае?
>
>локальная сеть, если я правильно понял
>
>>1) На локальных машинах 128.0.0.0/24 ничего не прописано, зачем?
>
>а как они будут резолвить имена?Этим шлюз должен заниматься по идее 128.0.0.1 (т.е. роутер), для этого и прописывал в конфиге dnsmasq.conf
>[оверквотинг удален]
>> 2.2) от 2го провайдера пишу ручками в /usr/local/etc/dnsmasq.conf:
>> server=192.168.111.1
>> server=192.168.0.99
>> но не резольвят ничего...,
>>может форвардить на них надо?
>
># nslookup test.domain 192.168.111.1
># nslookup test.domain 192.168.0.99
>
>что говорит?Вечером гляну дома и отвечу
>[оверквотинг удален]
>>>Кто клиент в данном случае?
>>
>>локальная сеть, если я правильно понял
>>
>>>1) На локальных машинах 128.0.0.0/24 ничего не прописано, зачем?
>>
>>а как они будут резолвить имена?
>
>Этим шлюз должен заниматься по идее 128.0.0.1 (т.е. роутер), для этого и
>прописывал в конфиге dnsmasq.confКлиент у себя набирает в проводнике mail.ru, в настройках у него нет ни одного ДНС, как ты думаешь что он получит в ответ?
Роутер у тебя выступает в качестве "ДНС сервера", а локалка в качестве "ДНС клиентов", но для этого они должны знать адрес сервера
>[оверквотинг удален]
>>>>1) На локальных машинах 128.0.0.0/24 ничего не прописано, зачем?
>>>
>>>а как они будут резолвить имена?
>>
>>Этим шлюз должен заниматься по идее 128.0.0.1 (т.е. роутер), для этого и
>>прописывал в конфиге dnsmasq.conf
>
>Клиент у себя набирает в проводнике mail.ru, в настройках у него нет
>ни одного ДНС, как ты думаешь что он получит в ответ?
>Клиенты получают все необходимые данные от DHCP.
>
>Роутер у тебя выступает в качестве "ДНС сервера", а локалка в качестве
>"ДНС клиентов", но для этого они должны знать адрес сервераДа, все верно, забудем на время о локалке, раздаваемой роутером.
Переформулирую вопрос: как научить роутер обращаться за резолвом имен не только к ДНС серверам 1го интерфейса, но и к ДНС серверам 2го интерфейса?
Видимо primary dns надо прописать для зоны .local. Как и где это делается, можно на примере?
>[оверквотинг удален]
>>>>а как они будут резолвить имена?
>>>
>>>Этим шлюз должен заниматься по идее 128.0.0.1 (т.е. роутер), для этого и
>>>прописывал в конфиге dnsmasq.conf
>>
>>Клиент у себя набирает в проводнике mail.ru, в настройках у него нет
>>ни одного ДНС, как ты думаешь что он получит в ответ?
>>
>
>Клиенты получают все необходимые данные от DHCP.:) ну так какой ДНС они получают?!!!
>Переформулирую вопрос: как научить роутер обращаться за резолвом имен не только к
>ДНС серверам 1го интерфейса, но и к ДНС серверам 2го интерфейса?зачем? Используй один ДНС
>[оверквотинг удален]
>>>>Этим шлюз должен заниматься по идее 128.0.0.1 (т.е. роутер), для этого и
>>>>прописывал в конфиге dnsmasq.conf
>>>
>>>Клиент у себя набирает в проводнике mail.ru, в настройках у него нет
>>>ни одного ДНС, как ты думаешь что он получит в ответ?
>>>
>>
>>Клиенты получают все необходимые данные от DHCP.
>
>:) ну так какой ДНС они получают?!!!получают ДНС от 1го провайдера:
nameserver 85.113.62.227
nameserver 85.113.63.252
которые не знают локальных имен второго провайдера :)>
>>Переформулирую вопрос: как научить роутер обращаться за резолвом имен не только к
>>ДНС серверам 1го интерфейса, но и к ДНС серверам 2го интерфейса?
>
>зачем? Используй один ДНСВ общем если на локальных машинах 128.0.0.0/24 прописать вручную ДНСы 2го провайдера, то все ок, но я хочу делать это на роутере :)
Ладно, спасибо всем за участие, буду курить доки по dnsmasq
>[оверквотинг удален]
>>>>
>>>
>>>Клиенты получают все необходимые данные от DHCP.
>>
>>:) ну так какой ДНС они получают?!!!
>
>получают ДНС от 1го провайдера:
>nameserver 85.113.62.227
>nameserver 85.113.63.252
>которые не знают локальных имен второго провайдера :)выдавай всем один ДНС, который знает локальные имена, на нем настрой форфард на ДНС провайдера
>[оверквотинг удален]
>>>
>>>:) ну так какой ДНС они получают?!!!
>>
>>получают ДНС от 1го провайдера:
>>nameserver 85.113.62.227
>>nameserver 85.113.63.252
>>которые не знают локальных имен второго провайдера :)
>
>выдавай всем один ДНС, который знает локальные имена, на нем настрой форфард
>на ДНС провайдераПроблема решена:
Указал основным ДНСом - тот что по pppoe
добавил слейв зону - .local, а хранителем её - 192.168.0.99Спасибо за участие!