* [Sysadmins] два шлюза и проброс во внутреннюю сеть @ 2007-10-31 6:40 altlinux 2007-10-31 11:25 ` Peter V. Saveliev 0 siblings, 1 reply; 18+ messages in thread From: altlinux @ 2007-10-31 6:40 UTC (permalink / raw) To: ALT Linux sysadmin discuss всем привет! есть два шлюза в инет (канал U и канал S) и сервер во внутренней сети на котором есть ftp. Нужно обеспечить доступ к ftp с этих двух каналов. Шлюзом по умолчанию является канал U. Если я с инета пытаюсь соединиться через канал S то пакеты доходят до внутреннего ftp, но возращаются не через канал S, а через шлюз по умолчанию т.е. U. проброс осуществляется $IPTABLES -t nat -A PREROUTING -p TCP -d $EXTERNAL_U_ADDRESS --dport 21 -j DNAT --to-destination 192.168.100.8:21 $IPTABLES -t nat -A PREROUTING -p TCP -d $EXTERNAL_S_ADDRESS --dport 21 -j DNAT --to-destination 192.168.100.8:21 Как можно решить эту проблему. ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sysadmins] два шлюза и проброс во внутреннюю сеть 2007-10-31 6:40 [Sysadmins] два шлюза и проброс во внутреннюю сеть altlinux @ 2007-10-31 11:25 ` Peter V. Saveliev 2007-11-01 7:25 ` altlinux 2007-11-02 12:28 ` Igor Solovyov 0 siblings, 2 replies; 18+ messages in thread From: Peter V. Saveliev @ 2007-10-31 11:25 UTC (permalink / raw) To: ALT Linux sysadmin discuss On Wednesday 31 October 2007, altlinux@aaanet.ru wrote: > всем привет! > есть два шлюза в инет (канал U и канал S) и сервер во внутренней сети на > котором есть ftp. Нужно обеспечить доступ к ftp с этих двух каналов. > Шлюзом по умолчанию является канал U. Если я с инета пытаюсь соединиться > через канал S то пакеты доходят до внутреннего ftp, но возращаются не > через канал S, а через шлюз по умолчанию т.е. U. > проброс осуществляется > $IPTABLES -t nat -A PREROUTING -p TCP -d $EXTERNAL_U_ADDRESS --dport 21 > -j DNAT --to-destination 192.168.100.8:21 > $IPTABLES -t nat -A PREROUTING -p TCP -d $EXTERNAL_S_ADDRESS --dport 21 > -j DNAT --to-destination 192.168.100.8:21 > Как можно решить эту проблему. > в идеале -- самое простое -- это иметь по интерфейсу к каждому из шлюзов. Тогда: ip route add default via S table S ip route add default via U table U ip route add default via U table main ip rule add dev ethS table S ip rule add dev ethU table U Эта схема опробована и работает на мэйл-сервере, который глядит в две разных AS. Возможно, что можно следить и не по интерфейсам, а по меткам, но это не пробовал, а с интерфейсами работает. -- Peter V. Saveliev ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sysadmins] два шлюза и проброс во внутреннюю сеть 2007-10-31 11:25 ` Peter V. Saveliev @ 2007-11-01 7:25 ` altlinux 2007-11-01 7:50 ` Peter V. Saveliev 2007-11-02 12:28 ` Igor Solovyov 1 sibling, 1 reply; 18+ messages in thread From: altlinux @ 2007-11-01 7:25 UTC (permalink / raw) To: ALT Linux sysadmin discuss а у вас этот почтовик на самом сервере или в локальной сети? если сервис на самом сервере проблем нет, а вот с пробросом во внутреннюю сеть ..... > On Wednesday 31 October 2007, altlinux@aaanet.ru wrote: > >> всем привет! >> есть два шлюза в инет (канал U и канал S) и сервер во внутренней сети на >> котором есть ftp. Нужно обеспечить доступ к ftp с этих двух каналов. >> Шлюзом по умолчанию является канал U. Если я с инета пытаюсь соединиться >> через канал S то пакеты доходят до внутреннего ftp, но возращаются не >> через канал S, а через шлюз по умолчанию т.е. U. >> проброс осуществляется >> $IPTABLES -t nat -A PREROUTING -p TCP -d $EXTERNAL_U_ADDRESS --dport 21 >> -j DNAT --to-destination 192.168.100.8:21 >> $IPTABLES -t nat -A PREROUTING -p TCP -d $EXTERNAL_S_ADDRESS --dport 21 >> -j DNAT --to-destination 192.168.100.8:21 >> Как можно решить эту проблему. >> >> > > в идеале -- самое простое -- это иметь по интерфейсу к каждому из шлюзов. > Тогда: > > ip route add default via S table S > ip route add default via U table U > ip route add default via U table main > ip rule add dev ethS table S > ip rule add dev ethU table U > > Эта схема опробована и работает на мэйл-сервере, который глядит в две разных > AS. > > Возможно, что можно следить и не по интерфейсам, а по меткам, но это не > пробовал, а с интерфейсами работает. > > ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sysadmins] два шлюза и проброс во внутреннюю сеть 2007-11-01 7:25 ` altlinux @ 2007-11-01 7:50 ` Peter V. Saveliev 2007-11-02 5:57 ` altlinux 0 siblings, 1 reply; 18+ messages in thread From: Peter V. Saveliev @ 2007-11-01 7:50 UTC (permalink / raw) To: ALT Linux sysadmin discuss В сообщении от Thursday 01 November 2007 10:25:21 altlinux@aaanet.ru написал(а): > а у вас этот почтовик на самом сервере или в локальной сети? Да, сам сервер двумя внешними ip/24 глядит через два разных раутера в две разные автономные системы. > если сервис на самом сервере проблем нет, а вот с пробросом во > внутреннюю сеть ..... Вообще говоря, есть трансанальный воркэраунд для такого случая. Поток с одного провайдера на mail-сервер заворачиваем в один vlan, с другого -- в другой. На самом mail-сервере имеем абсолютно ту же картинку, что я и описал: ip rule по интерфейсам (vlan-интерфейсы) в разные таблицы. Если честно, я ещё не смотрел, почему ядро разворачивает _исходящий_ поток через таблицу на основании интерфейса _входящего_ потока, но тем не ме, работает (если ещё не починили ;) или не починят в будущем) <skip /> -- Peter V. Saveliev ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sysadmins] два шлюза и проброс во внутреннюю сеть 2007-11-01 7:50 ` Peter V. Saveliev @ 2007-11-02 5:57 ` altlinux 2007-11-02 7:11 ` Peter V. Saveliev 0 siblings, 1 reply; 18+ messages in thread From: altlinux @ 2007-11-02 5:57 UTC (permalink / raw) To: ALT Linux sysadmin discuss сервак на который происходит проброс под windows. 1. не подскажите, а поможет ли мне если я на сервере(шлюзе) добавлю алиас IP адрес и добавлю таблицу маршрутов для этих адресов и на сервере на который осуществляется проброс добавить алиас IP адрес, вместо отдельных сетей/vlan. 2. и еще один вопрос, нет ли какого нибудь TCP прокси который бы пробрасывал трафик, который мог бы заменить dnat > В сообщении от Thursday 01 November 2007 10:25:21 altlinux@aaanet.ru > написал(а): > >> а у вас этот почтовик на самом сервере или в локальной сети? >> > > Да, сам сервер двумя внешними ip/24 глядит через два разных раутера в две > разные автономные системы. > > >> если сервис на самом сервере проблем нет, а вот с пробросом во >> внутреннюю сеть ..... >> > > Вообще говоря, есть трансанальный воркэраунд для такого случая. Поток с одного > провайдера на mail-сервер заворачиваем в один vlan, с другого -- в другой. На > самом mail-сервере имеем абсолютно ту же картинку, что я и описал: ip rule по > интерфейсам (vlan-интерфейсы) в разные таблицы. > > Если честно, я ещё не смотрел, почему ядро разворачивает _исходящий_ поток > через таблицу на основании интерфейса _входящего_ потока, но тем не ме, > работает (если ещё не починили ;) или не починят в будущем) > > <skip /> > > ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sysadmins] два шлюза и проброс во внутреннюю сеть 2007-11-02 5:57 ` altlinux @ 2007-11-02 7:11 ` Peter V. Saveliev 2007-11-02 7:36 ` altlinux 0 siblings, 1 reply; 18+ messages in thread From: Peter V. Saveliev @ 2007-11-02 7:11 UTC (permalink / raw) To: ALT Linux sysadmin discuss В сообщении от Friday 02 November 2007 08:57:36 altlinux@aaanet.ru написал(а): > сервак на который происходит проброс под windows. Час от часу не легче :)) Короче, Вы можете разгребать ответы в ту же AS, откуда были запросы, но для этого Вам нужно знать или хранить, откуда эти запросы таки пришли. Если сервис не на самом шлюзе, тогда у routing engine просто нет шансов узнать, к какому запросу относится ответ, не залезая в connection tracking. А туда оно лазить не умеет, iirc. Поскольку перед нами не стоит задачи научить rpdb смотреть в таблицы connection tracking (что было бы нарушением иерархии протоколов -- ip не должен ничего знать про вышележащее (что не мешает tcp нарушать иерархию, однако, но опустим этот момент)), самое простое -- изолировать траффик. Можно раскидать на разные интерфейсы, разные vlan или разные ip. > 1. не подскажите, а поможет ли мне если я на сервере(шлюзе) добавлю алиас > IP адрес и добавлю таблицу маршрутов для этих адресов и на сервере на > который осуществляется проброс добавить алиас IP адрес, вместо отдельных > сетей/vlan. Может сработать. > 2. и еще один вопрос, нет ли какого нибудь TCP прокси который > бы пробрасывал трафик, который мог бы заменить dnat # apt-cache show simpleproxy Package: simpleproxy <skip /> Description: Simple TCP/IP proxy Simpleproxy program acts as simple TCP proxy. It listens on a local socket, and any connection to this port will be forwarded to another socket at the remote host. It can also use an HTTPS proxy server to forward connections, and can be configured via command line as well as a config file. Ну, есть ещё xinetd. <skip /> -- Peter V. Saveliev ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sysadmins] два шлюза и проброс во внутреннюю сеть 2007-11-02 7:11 ` Peter V. Saveliev @ 2007-11-02 7:36 ` altlinux 2007-11-02 8:03 ` Peter V. Saveliev 0 siblings, 1 reply; 18+ messages in thread From: altlinux @ 2007-11-02 7:36 UTC (permalink / raw) To: ALT Linux sysadmin discuss Большое спасибо !!! буду теперь решать проблему, единственно непонял чем мне xinetd может помочь, извиняюсь за незнание. > В сообщении от Friday 02 November 2007 08:57:36 altlinux@aaanet.ru написал(а): > >> сервак на который происходит проброс под windows. >> > > Час от часу не легче :)) > > Короче, Вы можете разгребать ответы в ту же AS, откуда были запросы, но для > этого Вам нужно знать или хранить, откуда эти запросы таки пришли. Если > сервис не на самом шлюзе, тогда у routing engine просто нет шансов узнать, к > какому запросу относится ответ, не залезая в connection tracking. А туда оно > лазить не умеет, iirc. > > Поскольку перед нами не стоит задачи научить rpdb смотреть в таблицы > connection tracking (что было бы нарушением иерархии протоколов -- ip не > должен ничего знать про вышележащее (что не мешает tcp нарушать иерархию, > однако, но опустим этот момент)), самое простое -- изолировать траффик. Можно > раскидать на разные интерфейсы, разные vlan или разные ip. > > >> 1. не подскажите, а поможет ли мне если я на сервере(шлюзе) добавлю алиас >> IP адрес и добавлю таблицу маршрутов для этих адресов и на сервере на >> который осуществляется проброс добавить алиас IP адрес, вместо отдельных >> сетей/vlan. >> > > Может сработать. > > >> 2. и еще один вопрос, нет ли какого нибудь TCP прокси который >> бы пробрасывал трафик, который мог бы заменить dnat >> > > # apt-cache show simpleproxy > Package: simpleproxy > <skip /> > Description: Simple TCP/IP proxy > Simpleproxy program acts as simple TCP proxy. It listens on a local > socket, and any connection to this port will be forwarded to another > socket at the remote host. It can also use an HTTPS proxy server to > forward connections, and can be configured via command line as well as a > config file. > > Ну, есть ещё xinetd. > > <skip /> > > ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sysadmins] два шлюза и проброс во внутреннюю сеть 2007-11-02 7:36 ` altlinux @ 2007-11-02 8:03 ` Peter V. Saveliev 2007-11-02 10:43 ` altlinux 0 siblings, 1 reply; 18+ messages in thread From: Peter V. Saveliev @ 2007-11-02 8:03 UTC (permalink / raw) To: ALT Linux sysadmin discuss В сообщении от Friday 02 November 2007 10:36:14 altlinux@aaanet.ru написал(а): > Большое спасибо !!! > буду теперь решать проблему, Главное, напишите, как решилось. Или не решилось, и будем пытацо решить дальше. > единственно непонял чем мне xinetd может > помочь, извиняюсь за незнание. Ой, ну как же. Читаем man xinetd.conf, ищем строчку redirect. Но вообще, simpleproxy может оказаться проще. <skip /> -- Peter V. Saveliev ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sysadmins] два шлюза и проброс во внутреннюю сеть 2007-11-02 8:03 ` Peter V. Saveliev @ 2007-11-02 10:43 ` altlinux 2007-11-02 11:11 ` Peter V. Saveliev 2007-11-02 14:18 ` Serge 0 siblings, 2 replies; 18+ messages in thread From: altlinux @ 2007-11-02 10:43 UTC (permalink / raw) To: ALT Linux sysadmin discuss simpleproxy решил проблему за 5 мин спасибо большое!!! > В сообщении от Friday 02 November 2007 10:36:14 altlinux@aaanet.ru написал(а): > >> Большое спасибо !!! >> буду теперь решать проблему, >> > > Главное, напишите, как решилось. Или не решилось, и будем пытацо решить > дальше. > > >> единственно непонял чем мне xinetd может >> помочь, извиняюсь за незнание. >> > > Ой, ну как же. Читаем man xinetd.conf, ищем строчку redirect. Но вообще, > simpleproxy может оказаться проще. > > <skip /> > > > ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sysadmins] два шлюза и проброс во внутреннюю сеть 2007-11-02 10:43 ` altlinux @ 2007-11-02 11:11 ` Peter V. Saveliev 2007-11-06 10:26 ` altlinux 2007-11-02 14:18 ` Serge 1 sibling, 1 reply; 18+ messages in thread From: Peter V. Saveliev @ 2007-11-02 11:11 UTC (permalink / raw) To: ALT Linux sysadmin discuss В сообщении от Friday 02 November 2007 13:43:53 altlinux@aaanet.ru написал(а): > simpleproxy > решил проблему за 5 мин > спасибо большое!!! <skip /> не за что :) то есть, схема теперь такая, я правильно понял: /-------------------------------------\ /------------\ uplink S --->+ ip rule dev S table S | | win mail | . | service simpleproxy tcp:25 +------->+ server | uplink U --->+ ip rule dev U table U | | | \-------------------------------------/ \------------/ ? или проще ? ЗЫ: если simpleproxy на 25 порту из-под рута, то тогда имеет смысл также подумать, не посадить ли его на 2225 порт + редирект, но при этом не из-под рута -- чорт его знает, какие в simpleproxy могут быть переполнения... -- Peter V. Saveliev ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sysadmins] два шлюза и проброс во внутреннюю сеть 2007-11-02 11:11 ` Peter V. Saveliev @ 2007-11-06 10:26 ` altlinux 0 siblings, 0 replies; 18+ messages in thread From: altlinux @ 2007-11-06 10:26 UTC (permalink / raw) To: ALT Linux sysadmin discuss DNAT для uplink U а на uplink S повесил simpleproxy > /----------------------\ /------------\ > uplink S - service simpleproxy ExtIp:port| | | win mail | > . | +------->+ server | > uplink U ---> + ip rule dev U table U | | | > \----------------------/ \------------/ > ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sysadmins] два шлюза и проброс во внутреннюю сеть 2007-11-02 10:43 ` altlinux 2007-11-02 11:11 ` Peter V. Saveliev @ 2007-11-02 14:18 ` Serge 2007-11-02 14:48 ` Peter V. Saveliev 1 sibling, 1 reply; 18+ messages in thread From: Serge @ 2007-11-02 14:18 UTC (permalink / raw) To: ALT Linux sysadmin discuss > simpleproxy > решил проблему за 5 мин > спасибо большое!!! я так и не понял, почему DNAT не устроил, поясните плиз ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sysadmins] два шлюза и проброс во внутреннюю сеть 2007-11-02 14:18 ` Serge @ 2007-11-02 14:48 ` Peter V. Saveliev 2007-11-06 7:56 ` Alexey I. Froloff 0 siblings, 1 reply; 18+ messages in thread From: Peter V. Saveliev @ 2007-11-02 14:48 UTC (permalink / raw) To: ALT Linux sysadmin discuss В сообщении от Friday 02 November 2007 17:18:23 Serge написал(а): > > simpleproxy > > решил проблему за 5 мин > > спасибо большое!!! > > я так и не понял, почему DNAT не устроил, поясните плиз > При наличии двух аплинков возникает проблема двух умолчательных шлюзов. Потенциально, запрос с внешнего адреса Ы может придти через любой из аплинков, и ответить надо именно через тот шлюз, через который пришёл запрос, ибо асимметричный раутинг иногда работает совсем не так, как ожидалось. При использовании DNAT нет бескровного способа выяснить, через какой шлюз пришёл запрос, на который сейчас идёт ответ из внутренней сети. Приходится думать разные схемы. -- Peter V. Saveliev ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sysadmins] два шлюза и проброс во внутреннюю сеть 2007-11-02 14:48 ` Peter V. Saveliev @ 2007-11-06 7:56 ` Alexey I. Froloff 0 siblings, 0 replies; 18+ messages in thread From: Alexey I. Froloff @ 2007-11-06 7:56 UTC (permalink / raw) To: sysadmins [-- Attachment #1: Type: text/plain, Size: 469 bytes --] * Peter V. Saveliev <peet@> [071102 17:49]: > При использовании DNAT нет бескровного способа выяснить, через > какой шлюз пришёл запрос, на который сейчас идёт ответ из > внутренней сети. Приходится думать разные схемы. Хм. А у меня работает рецепт из LARTC... Два аплинка и DNAT. -- Regards, Alexey I. Froloff AIF5-RIPN, AIF5-RIPE ------------------------------------------- Inform-Mobil, Ltd. System Administrator http://www.inform-mobil.ru/ [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sysadmins] два шлюза и проброс во внутреннюю сеть 2007-10-31 11:25 ` Peter V. Saveliev 2007-11-01 7:25 ` altlinux @ 2007-11-02 12:28 ` Igor Solovyov 2007-11-02 12:54 ` Peter V. Saveliev 1 sibling, 1 reply; 18+ messages in thread From: Igor Solovyov @ 2007-11-02 12:28 UTC (permalink / raw) To: sysadmins Hi! On Wed, 31 Oct 2007 14:25:16 +0300 "Peter V. Saveliev" <peet@altlinux.ru> wrote: > в идеале -- самое простое -- это иметь по интерфейсу к каждому из > шлюзов. Тогда: > > ip route add default via S table S > ip route add default via U table U > ip route add default via U table main > ip rule add dev ethS table S > ip rule add dev ethU table U > > Эта схема опробована и работает на мэйл-сервере, который глядит в две > разных AS. Вот у меня встала подобная задача сейчас и что-то никак сообразить не могу как лучше сделать... Есть два канала, один с и-нетовским айпишником (дорогой), назовем его канал 1, другой с приватным, но очень недорогой, назовем его каналом 2. Ставлю маршрутизатор, он же почтовик, он же прокси. Интерфейс eth0 смотрит в локалку и на циску в локалке, которая настроена провайдером так, что выпускает наружу только с адреса интерфейса eth0. Циска мне для руления недоступна. Есть eth1 (приватный адрес) смторит в канал 2. Планирую весь веб-трафик локалки через squid выпустить/впустить в канал 2. Почтовик нужно выпускать в канал 1 на реальный айпишник, он слушает на интерфейсе eth1. т.е. выглядит так: канал 1 <-- циска <-- eth0 postfix squid eth1 ---> канал 2 локалка <-------------^ Пока default gw сделал на 2-й канал. Вот что-то не могу сообразить как почтовику работать на канал 1. Если я сделаю второй default gw на адрес циски, как в приведенном выше примере, то postfix поймет, что для него выход наружу именно в циске? Что-то запутался я... :-( А потом мне еще нужно будет выпустить так же в канал 1, ситриксовский трафик локалки... :-) -- Best Regars! Igor Solovyov ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sysadmins] два шлюза и проброс во внутреннюю сеть 2007-11-02 12:28 ` Igor Solovyov @ 2007-11-02 12:54 ` Peter V. Saveliev 2007-11-02 17:58 ` Igor Solovyov 2007-11-11 17:21 ` Igor Solovyov 0 siblings, 2 replies; 18+ messages in thread From: Peter V. Saveliev @ 2007-11-02 12:54 UTC (permalink / raw) To: ALT Linux sysadmin discuss В сообщении от Friday 02 November 2007 15:28:34 Igor Solovyov написал(а): <skip /> > Пока default gw сделал на 2-й канал. Вот что-то не могу сообразить как > почтовику работать на канал 1. Если я сделаю второй default gw на адрес > циски, как в приведенном выше примере, то postfix поймет, что для него > выход наружу именно в циске? Что-то запутался я... :-( > А потом мне еще нужно будет выпустить так же в канал 1, ситриксовский > трафик локалки... :-) Давайте посмотрим, как вообще можно управлять классами маршрутизации в Linux. Их нам доступно 255 - 4 == 251. Зарезервирвано четыре класса: $ cat /etc/iproute2/rt_tables # # reserved values # 255 local 254 main 253 default 0 unspec Остальные доступны. По традиции, классы называют "таблицами маршрутизации". Выбирать, какая таблица для чего доступна, можно с помощью rpdb (routing policy database), она rpdb рулицо через ip rule: # ip rule add help Usage: ip rule [ list | add | del | flush ] SELECTOR ACTION SELECTOR := [ not ] [ from PREFIX ] [ to PREFIX ] [ tos TOS ] [ fwmark FWMARK[/MASK] ] [ dev STRING ] [ pref NUMBER ] ACTION := [ table TABLE_ID ] [ prohibit | reject | unreachable ] [ realms [SRCREALM/]DSTREALM ] TABLE_ID := [ local | main | default | NUMBER ] То есть, реально мы можем зарулить пакет по fwmark и dev, т.к. src/dst могут быть любые в любом случае. Итого, наиболее корректный пример был бы такой (подразумеваются: S,U -- шлюзы провайдеров; нужно также внести записи в rt_tables, где S и U < 253, например, 100 и 101 соотв.): # добавим деволтные шлюзы для каждого из провадеров в свой класс ip route add default via S table S ip route add default via U table U # добавим один из них как "совсем-совсем" дефолтный для всего траффика, # который мы не учтём ip route add default via U table main # дальше: первые два правила -- "откуда пришло -- туда ушло" # (надо заметить -- работает только для локальных сервисов) ip rule add pref 100 dev S table S ip rule add pref 101 dev U table U # дальше: раскидываем по портам (всё, что на 80 порт -- через провайдера U) iptables -t mangle -I FORWARD -m tcp -p tcp --dport 80 -j MARK --set-mark 80 ip rule add pref 200 fwmark 80 table U ну, или OUTPUT или попробовать POSTROUTING -- но я не помню, POSTROUTING в mangle отрабатывает до или после rpdb. Легко выясняется эмпирически. # итеративно, пока сервисы не кончатся :) ... В этой же схеме можно использовать l7-filter и ставить марки не по портам, а по результатам анализа траффика. -- Peter V. Saveliev ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sysadmins] два шлюза и проброс во внутреннюю сеть 2007-11-02 12:54 ` Peter V. Saveliev @ 2007-11-02 17:58 ` Igor Solovyov 2007-11-11 17:21 ` Igor Solovyov 1 sibling, 0 replies; 18+ messages in thread From: Igor Solovyov @ 2007-11-02 17:58 UTC (permalink / raw) To: sysadmins Hi! On Fri, 2 Nov 2007 15:54:18 +0300 "Peter V. Saveliev" <peet@altlinux.ru> wrote: Спасибо. Все понял. > # дальше: раскидываем по портам (всё, что на 80 порт -- через > # провайдера U) > iptables -t mangle -I FORWARD -m tcp -p tcp --dport 80 -j MARK > --set-mark 80 ip rule add pref 200 fwmark 80 table U А этого не потребуется. Веб-трафик будет идти через squid, который и слушает на нужном интерфейсе, да и у него есть вроде настройка с какого интерфейса наружу отправлять. > ну, или OUTPUT или попробовать POSTROUTING -- но я не помню, > POSTROUTING в mangle отрабатывает до или после rpdb. Легко выясняется > эмпирически. > > # итеративно, пока сервисы не кончатся :) Ага. Понял. > ... > > В этой же схеме можно использовать l7-filter и ставить марки не по > портам, а по результатам анализа траффика. Ладно, интересно. Поковыряюсь. Большое спасибо! -- Best Regars! Igor Solovyov ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [Sysadmins] два шлюза и проброс во внутреннюю сеть 2007-11-02 12:54 ` Peter V. Saveliev 2007-11-02 17:58 ` Igor Solovyov @ 2007-11-11 17:21 ` Igor Solovyov 1 sibling, 0 replies; 18+ messages in thread From: Igor Solovyov @ 2007-11-11 17:21 UTC (permalink / raw) To: sysadmins Hi! On Fri, 2 Nov 2007 15:54:18 +0300 "Peter V. Saveliev" <peet@altlinux.ru> wrote: > Давайте посмотрим, как вообще можно управлять классами маршрутизации > в Linux.... В общем докладываю. На всякий случай напомню, схема такова: маршрутизатор, два канала, оба с приватными адресами на моей стороне, но один из них nat-ится циской, которая имеет реальный ip: канал 2 - сюда нужно выпустить web-трафик adsl-модем (192.168.1.1) | 192.168.1.2 маршрутизатор (прокси, почта) 192.168.151.22 | |<- локалка 192.168.151.0/24 | (192.168.151.254) cisco канал 1 - сюда нужно выпустить почту интрефейсы: # ifconfig eth0 Link encap:Ethernet HWaddr 00:80:48:22:BA:94 inet addr:192.168.151.22 Bcast:192.168.151.255 ..... eth1 Link encap:Ethernet HWaddr 00:80:48:4F:A1:E3 inet addr:192.168.1.2 Bcast:192.168.151.255 .... lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 .... Слушающие сервисы: 192.168.151.22:25 0.0.0.0:* LISTEN 4838/master 192.168.151.22:110 0.0.0.0:* LISTEN 4761/cyrmaster 192.168.151.22:143 0.0.0.0:* LISTEN 4761/cyrmaster 192.168.151.22:8080 0.0.0.0:* LISTEN 4987/(squid) 192.168.151.22:53 0.0.0.0:* LISTEN 4710/named 127.0.0.1:53 0.0.0.0:* LISTEN 4710/named 127.0.0.1:953 0.0.0.0:* LISTEN 4710/named т.е. почта и прокси слушают только на eth0, глядящий в локалку и на циску с реальным айпишником снаружи (канал 1). маршрут по умолчанию установлен на канал 2: # route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.151.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth1 Теперь iproute: # cat /etc/iproute2/rt_tables 255 local 254 main 253 default 0 unspec 150 adsltab # таблица для канала 2 151 dtab # таблица для канала 1 # ip ru l 0: from all lookup local 150: from all iif eth1 lookup adsltab 151: from all iif eth0 lookup dtab 200: from all fwmark 0x19 lookup dtab 201: from all fwmark 0x6e lookup dtab 202: from all fwmark 0x8f lookup dtab 204: from all fwmark 0xe4 lookup adsltab 32766: from all lookup main 32767: from all lookup default # ip ro l t adsltab default via 192.168.1.1 dev eth1 # ip ro l t dtab default via 192.168.151.254 dev eth0 так выглядит маркировка пакетов: # iptables -t mangle -nL Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination MARK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 MARK set 0x19 MARK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:110 MARK set 0x6e MARK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:143 MARK set 0x8f MARK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080 MARK set 0xe4 Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination В результате всего этого squid исправно выгоняет трафик в канал 2(eth1) как и задумывалось, а вот postfix тоже упорно пытается выйти наружу через этот же канал 2 вместо канала 1, что наблюдается tcpdump-ом. :-( В общем пока получилось только наполовину. Squid выходит в нужный канал, но он бы и так туда выходил бы, раз default gw туда прописан. :-( Где же грабли порылись? Уже второй день эротикой занимаюсь... -- Best Regars! Igor Solovyov ^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2007-11-11 17:21 UTC | newest] Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2007-10-31 6:40 [Sysadmins] два шлюза и проброс во внутреннюю сеть altlinux 2007-10-31 11:25 ` Peter V. Saveliev 2007-11-01 7:25 ` altlinux 2007-11-01 7:50 ` Peter V. Saveliev 2007-11-02 5:57 ` altlinux 2007-11-02 7:11 ` Peter V. Saveliev 2007-11-02 7:36 ` altlinux 2007-11-02 8:03 ` Peter V. Saveliev 2007-11-02 10:43 ` altlinux 2007-11-02 11:11 ` Peter V. Saveliev 2007-11-06 10:26 ` altlinux 2007-11-02 14:18 ` Serge 2007-11-02 14:48 ` Peter V. Saveliev 2007-11-06 7:56 ` Alexey I. Froloff 2007-11-02 12:28 ` Igor Solovyov 2007-11-02 12:54 ` Peter V. Saveliev 2007-11-02 17:58 ` Igor Solovyov 2007-11-11 17:21 ` Igor Solovyov
ALT Linux sysadmins discussion This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/sysadmins/0 sysadmins/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 sysadmins sysadmins/ http://lore.altlinux.org/sysadmins \ sysadmins@lists.altlinux.org sysadmins@lists.altlinux.ru sysadmins@lists.altlinux.com public-inbox-index sysadmins Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.sysadmins AGPL code for this site: git clone https://public-inbox.org/public-inbox.git