LINUX.ORG.RU
ФорумAdmin

Непонятно с маршрутизацией...


0

0

есть скрипт для ротинга
------------------------------------
#!/bin/bash

IR="/sbin/ip"
IT="/sbin/iptables"

IP_LIST="192.168.0.32 192.168.0.33"

$IR rule add fwmark 1 table adsl
$IR route add default via 192.168.1.1 dev eth1 table adsl
$IR route flush cache

echo 1 > /proc/sys/net/ipv4/ip_forward
$IT -t mangle -F

for IP in $IP_LIST
do
$IT -t mangle -A PREROUTING -i eth0 -s $IP -j MARK --set-mark 1
done

$IT -t mangle -A PREROUTING -i eth0 -p tcp -m multiport --dport 25,110,5190,5222 -j MARK --set-mark 1

$IT -t nat -F
$IT -t nat -A POSTROUTING -s 192.168.0.0/24 -m mark --mark 1 -o eth1 -j MASQUERADE
$IT -t nat -A POSTROUTING -s 192.168.0.0/24 -o tun0 -j MASQUERADE
----------------------------------------------
не могу понять, почему почта идет как надо через eth1, а
траффик с $IP через tun0. $IP статические.
где я ошибся?

anonymous

Это задача для настоящих джедаев --- мысленно выполнить скрипт, предположить какие в системе есть интерфейсы, маршруты и т.д., а потом еще найти ошибку...

Есть команды:

ip addr show; ip route show; ip rule show; iptables -L -n ...

Чтобы понять, почему трафик идет так, а не иначе, нужно смотреть вывод этих команд, а не скрипт.

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

да с этим понятно, команды показывают то, что и должны после выполнения скрипта... и судя по ним все должно работать правильно.
но работате только почта так как нужно, вот я и подумал может просто скрипт неверен, или какой нюанс есть для iptables.

anonymous
()
Ответ на: комментарий от mky

eth1 - adsl tun0 - vpn для dvb

/sbin/ip rule ls 0: from all lookup local 32765: from all fwmark 0x1 lookup adsl 32766: from all lookup main 32767: from all lookup default

/sbin/ip route ls table adsl default via 192.168.1.1 dev eth1

/sbin/iptables -L -v -t nat Chain PREROUTING (policy ACCEPT 2022 packets, 290K bytes) pkts bytes target prot opt in out source destination

Chain POSTROUTING (policy ACCEPT 1609 packets, 104K bytes) pkts bytes target prot opt in out source destination 1 60 MASQUERADE all -- any eth1 192.168.0.0/24 anywhere MARK match 0x1 0 0 MASQUERADE all -- any tun0 192.168.0.0/24 anywhere

Chain OUTPUT (policy ACCEPT 1608 packets, 104K bytes) pkts bytes target prot opt in out source destination

/sbin/iptables -L -v -t mangle Chain PREROUTING (policy ACCEPT 143K packets, 47M bytes) pkts bytes target prot opt in out source destination 0 0 MARK all -- eth0 any 192.168.0.32 anywhere MARK set 0x1 0 0 MARK all -- eth0 any 192.168.0.33 anywhere MARK set 0x1 35 2077 MARK tcp -- eth0 any anywhere anywhere multiport dports smtp,pop3,aol,xmpp-client MARK set 0x1

Chain INPUT (policy ACCEPT 139K packets, 45M bytes) pkts bytes target prot opt in out source destination

Chain FORWARD (policy ACCEPT 3887 packets, 2047K bytes) pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 217K packets, 211M bytes) pkts bytes target prot opt in out source destination

Chain POSTROUTING (policy ACCEPT 221K packets, 213M bytes) pkts bytes target prot opt in out source destination

anonymous
()
Ответ на: комментарий от mky

eth1 - adsl tun0 - vpn для dvb

/sbin/ip rule ls 0: from all lookup local 32765: from all fwmark 0x1 lookup adsl 32766: from all lookup main 32767: from all lookup default

/sbin/ip route ls table adsl default via 192.168.1.1 dev eth1

/sbin/iptables -L -v -t nat Chain PREROUTING (policy ACCEPT 2022 packets, 290K bytes) pkts bytes target prot opt in out source destination

Chain POSTROUTING (policy ACCEPT 1609 packets, 104K bytes) pkts bytes target prot opt in out source destination 1 60 MASQUERADE all -- any eth1 192.168.0.0/24 anywhere MARK match 0x1 0 0 MASQUERADE all -- any tun0 192.168.0.0/24 anywhere

Chain OUTPUT (policy ACCEPT 1608 packets, 104K bytes) pkts bytes target prot opt in out source destination

/sbin/iptables -L -v -t mangle Chain PREROUTING (policy ACCEPT 143K packets, 47M bytes) pkts bytes target prot opt in out source destination 0 0 MARK all -- eth0 any 192.168.0.32 anywhere MARK set 0x1 0 0 MARK all -- eth0 any 192.168.0.33 anywhere MARK set 0x1 35 2077 MARK tcp -- eth0 any anywhere anywhere multiport dports smtp,pop3,aol,xmpp-client MARK set 0x1

Chain INPUT (policy ACCEPT 139K packets, 45M bytes) pkts bytes target prot opt in out source destination

Chain FORWARD (policy ACCEPT 3887 packets, 2047K bytes) pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 217K packets, 211M bytes) pkts bytes target prot opt in out source destination

Chain POSTROUTING (policy ACCEPT 221K packets, 213M bytes) pkts bytes target prot opt in out source destination

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

блин, чо за форматирование!!!

eth1 - adsl
tun0 - vpn для dvb

/sbin/ip rule ls
0: from all lookup local
32765: from all fwmark 0x1 lookup adsl
32766: from all lookup main
32767: from all lookup default

/sbin/ip route ls table adsl
default via 192.168.1.1 dev eth1

/sbin/iptables -L -v -t nat
Chain PREROUTING (policy ACCEPT 2022 packets, 290K bytes)
pkts bytes target prot opt in out source destination

Chain POSTROUTING (policy ACCEPT 1609 packets, 104K bytes)
pkts bytes target prot opt in out source destination
1 60 MASQUERADE all -- any eth1 192.168.0.0/24 anywhere MARK match 0x1
0 0 MASQUERADE all -- any tun0 192.168.0.0/24 anywhere

Chain OUTPUT (policy ACCEPT 1608 packets, 104K bytes)
pkts bytes target prot opt in out source destination

/sbin/iptables -L -v -t mangle
Chain PREROUTING (policy ACCEPT 143K packets, 47M bytes)
pkts bytes target prot opt in out source destination
0 0 MARK all -- eth0 any 192.168.0.32 anywhere MARK set 0x1
0 0 MARK all -- eth0 any 192.168.0.33 anywhere MARK set 0x1
35 2077 MARK tcp -- eth0 any anywhere anywhere multiport dports smtp,pop3,aol,xmpp-client MARK set 0x1

Chain INPUT (policy ACCEPT 139K packets, 45M bytes)
pkts bytes target prot opt in out source destination

Chain FORWARD (policy ACCEPT 3887 packets, 2047K bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 217K packets, 211M bytes)
pkts bytes target prot opt in out source destination

Chain POSTROUTING (policy ACCEPT 221K packets, 213M bytes)
pkts bytes target prot opt in out source destination

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

Что в default таблице маршрутизации?

По идее, "ip route flush cache" надо делать после "-t mangle -A PREROUTING -i eth0 -p tcp -m multiport --dport 25,110,5190,5222 -j MARK --set-mark 1" --- когда начнут появлятся маркированные пакеты.

А так, счетчики в правиле:

0 0 MARK all -- eth0 any 192.168.0.32 anywhere MARK set 0x1

показывают, что со 192.168.0.32 пакеты не приходили...

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