LINUX.ORG.RU
ФорумAdmin

FreeBSD, перенаправить DNS-запросы через другой роут


0

1

Есть шлюз в Интернет, на нем же DNS-сервер bind. У шлюза прописан некоторый default-gw, часть клиентов ходят через него. Так же настроена policy-based-роутинг, чтобы часть клиентов ходила в инет через другой шлюз. Сделано на pf через route-to.

Теперь возникла необходимость, чтобы DNS-запросы от bind'а, который на этом же серваке, на вышестоящий DNS-сервер (гугловский 8.8.8.8) уходили через тот же второй шлюз в инет, который НЕ прописан как default-gw. Другими словами, нужно перенаправлять запросы с локалхоста на адрес 8.8.8.8 порт 53 через шлюз, отличный от дефолтного.

Подскажите, как такое сделать.

Пробовал так:

pass in quick route-to (em2 адрес_шлюза) proto {tcp udp} from 127.0.0.1 to 8.8.8.8 port 53

Но не сработало.



Последнее исправление: InfectedM (всего исправлений: 1)

А ты уверен что запросы с 127.0.0.1 уходят? Я думаю они идут с внешнего интерфейса.

true_admin ★★★★★
()
Ответ на: комментарий от Jetty

pass out уже пробовал, не работает.
Вместо from 127.0.0.1 прописал уже from any, все равно не работает.

InfectedM
() автор топика

а зачем тебе 8.8.8.8 ? Чтоб гугл знал, куда ходят люди в конторе? Не лучше, чтоб bind напрямую с корневыми серверами общался?

Harald ★★★★★
()

а вообще, не нужно трогать pf. Просто добавляешь отдельный маршрут в таблицу маршрутизации:

route add 8.8.8.8 gw IP.другого.шлюза

С поправкой на особенности freebsd-шного route

Harald ★★★★★
()
Ответ на: комментарий от Harald

Вообще хотелось это сделать на файрволе, причем чтобы только сам сервер на 8.8.8.8 ходил через второй шлюз. Но в принципе прописать роут - это тоже выход. Пожалуй, остановимся на этом, чтобы не городить огород. Спасибо :)

InfectedM
() автор топика
Ответ на: комментарий от InfectedM

policy routing во фряхе есть? Если да - рули через него

Pinkbyte ★★★★★
()

Это делается так

/etc/ipf.rules #Allow loopback pass in quick on lo0 all pass out quick on lo0 all

#Allow LAN pass out quick on vr0 all pass in quick on vr0 all

#Force routing specified ports to MegaFon pass out quick on ng0 to ng1 proto tcp from any to any port = 80 keep state #block in log quick on ng1 to ng0 from any to any keep state

#Via MegaFon pass out quick on ng1 proto tcp from any to any port = 80 flags S keep state block out quick on ng1 all keep state pass in quick on ng1 all keep state

#Via SkyLink

pass out quick on ng0 proto tcp from any to any flags S keep state pass out quick on ng0 proto udp from any to any keep state pass out quick on ng0 proto icmp from any to any keep state

#Allow inbound ICMP pass in quick on ng0 proto icmp from any to any keep state

#Allow inbound FTP #pass in quick on ng0 proto tcp from any to any port = 20 flags S keep state #pass in quick on ng0 proto tcp from any to any port = 21 flags S keep state

#Allow inbound SSH pass in quick on ng0 proto tcp from any to any port = 22 flags S keep state

#Allow inbound HTTP pass in quick on ng0 proto tcp from any to any port = 80 flags S keep state pass in quick on ng0 proto tcp from any to any port = 443 flags S keep state

#Allow inbound Battle.NET pass in quick on ng0 proto tcp from any to any port 6111 >< 6120 flags S keep state pass in quick on ng0 proto udp from any to any port 6111 >< 6120 keep state

#Allow inbound SIP pass in quick on ng0 proto udp from any to any port 4999 >< 5101 keep state

#Allow inbound STUN pass in quick on ng0 proto udp from any to any port 3477 >< 3480 keep state

#Allow inbound H323 pass in quick on ng0 proto tcp from any to any port = 1720 flags S keep state

#Allow inbound tor pass in quick on ng0 proto tcp from any to any port = 8082 flags S keep state pass in quick on ng0 proto tcp from any to any port = 8083 flags S keep state

#Block all other inbound block in quick on ng0 from any to any keep state

/etc/ipnat.rules #Just a NAT map ng0 from 172.24.71.0/24 to any -> 91.149.125.44/32 #map ng0 from 172.24.71.0/24 to any -> 10.200.117.11/32

map ng1 from 0.0.0.0/0 to any -> 10.200.98.140/32

#Battle.NET ports forwarding rdr ng0 91.149.125.44/32 port 6112-6119 -> 172.24.71.2 port 6112 tcp rdr ng0 91.149.125.44/32 port 6112-6119 -> 172.24.71.2 port 6112 udp

#SIP rdr ng0 91.149.125.44/32 port 5000-5100 -> 172.24.71.2 port 5000 udp

#STUN rdr ng0 91.149.125.44/32 port 3478-3479 -> 172.24.71.2 port 3478 udp

#H323 rdr ng0 91.149.125.44/32 port 1720 -> 172.24.71.2 port 1720 tcp

В данном случае все запросы с портом получателя перенаправляются с канала ng0 на канал ng1

FreeBSD 8.1 ipfilter + ipnat

fossa
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.