From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Sun, 11 Nov 2007 22:21:34 +0500 From: Igor Solovyov To: sysadmins@lists.altlinux.org Message-Id: <20071111222134.b40c6234.gosha@anti.su> In-Reply-To: <200711021554.18387.peet@altlinux.ru> References: <47282362.80006@aaanet.ru> <200710311425.16908.peet@altlinux.ru> <20071102172834.deb03b36.gosha@anti.su> <200711021554.18387.peet@altlinux.ru> Organization: JSC "ANTi" X-Mailer: Sylpheed 2.4.5 (GTK+ 2.12.0; i486-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 8bit Subject: Re: [Sysadmins] =?koi8-r?b?xNfBINvMwNrBIMkg0NLPwtLP0yDXzyDXztXU0sXO?= =?koi8-r?b?zsDAICDTxdTY?= X-BeenThere: sysadmins@lists.altlinux.org X-Mailman-Version: 2.1.9 Precedence: list Reply-To: ALT Linux sysadmin discuss List-Id: ALT Linux sysadmin discuss List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Nov 2007 17:21:35 -0000 Archived-At: List-Archive: Hi! On Fri, 2 Nov 2007 15:54:18 +0300 "Peter V. Saveliev" 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