Здравствуйте.
Имеется потенциальный шлюз на Debian с сетевыми и-фейсами eth0-eth2.
eth0 смотрит в локалку
eth1 смотрит «в модем»
eth2 смотрит в другую подсеть со своим web-сервером.
Сделал так чтобы по дефолту запросы из локалки уходили через eth1.
/etc/network/interfaces:
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.251
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
up /sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 192.168.3.13
allow-hotplug eth1
iface eth1 inet static
address 192.168.3.13
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255
gateway 192.168.3.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 127.0.0.1
allow-hotplug eth2
iface eth2 inet static
address 192.168.10.2
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255
# gateway 192.168.10.1
А вот как развернуть запросы для example.dom(например) через eth2?
Собственно больше ничего не нужно. Может завернуть всё на squid и там acl'ами напралять?
Подскажите как правильнее решить в данном случае?
Использовать прокси, ибо если за example.dom стоит рандомные конечные адреса, то iptables не поможет. Если конечно никакой модуль с траф-аналайзером за последние 6 лет не придумали.
Если точно известен адрес/а удалённого ресурса и там содержится только необходимый ресурс а не например куча виртуальных хостов, то вполне себе можно маршрутизировать пакеты средствами iproute2.
Сработает первое, всего-то добавил условие, с какого интерфейса выходит трафик, на основе этого подменяем source адрес.
На бинд пофиг, в iptables надо добавлять ip, если ip у домена меняется то можно менять переодически правила скриптом. Либо использовать прокси.
В iptables есть модуль strings(кажется так), с помощью которого можно понять к какому домену идет обращение(просто проверять на совпадение содержимое пакетов), но на этом этапе tcp соединение уже установлено и перенаправить его на другой веб сервер не получится.
IP у домена не поменяется, но выходит что шлюзу нужно знать не только IP основного домена но или одождествлять поддомены с ним.
Пока что домен просто вписан в hosts...
2 imb: Хосты наши. И как я написал нужно как-то дать знать шлюзу что могут быть и поддомены.
Похоже squid не решит проблему полностью, с ftp он не работает.
Но есть идея(вопрос) проще - как при при запросе определённого домена(и его поддоменов) сопоставлять их с определённым IP? Тут и squid не понадобится, только маршрутизацией обойдусь.