The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Проблемы с маршрутизацией, !*! Sintezzz, 05-Май-06, 12:44  [смотреть все]
Есть 2 канала в интернет ppp0 и eth1
Есть локальная сетевуха eth0
Сеть 192.168.1.0/24
Хочу настроить, чтоб smtp трафик шел через интерфейс ррр0, а весь остальной через eth1.
на iptables включен маскарадинг для ppp0 и eth1. ip адреса везде статические
INPUT, OUTPUT, FORWARD - все ACCEPT.
маркирую smtp пакеты
iptables -A PREROUTING -i eth0 -t mangle -p tcp --dport 25 -j MARK --set-mark 1
В ip route добавил
echo 201 mail.out >> /etc/iproute2/rt_tables
ip rule add fwmark 1 table mail.out
ip route add default via 195.96.98.253 dev ppp0 table mail.out
ip route flush cache
маршрут по умолчанию через eth1
ПРОБЛЕМА:
Пакеты с локального интерфейса (допустим 192.168.1.7) -> на smtp.mail.ru идут на роутер
далее с интерфейса ррр0 -> smtp.mail.ru
далее ответ smtp.mail.ru -> ррр0
а вот с ррр0 на  192.168.1.7 он не приходит.
Мож кто сталкивался с подобной проблемой?
Заранее всем спасибо!

  • Проблемы с маршрутизацией, !*! Голышев Михаил, 15:18 , 05-Май-06 (1)
    >Есть 2 канала в интернет ppp0 и eth1
    >Есть локальная сетевуха eth0
    >Сеть 192.168.1.0/24
    >Хочу настроить, чтоб smtp трафик шел через интерфейс ррр0, а весь остальной
    >через eth1.
    >на iptables включен маскарадинг для ppp0 и eth1. ip адреса везде статические
    >
    >INPUT, OUTPUT, FORWARD - все ACCEPT.
    >маркирую smtp пакеты
    >iptables -A PREROUTING -i eth0 -t mangle -p tcp --dport 25 -j
    >MARK --set-mark 1
    >В ip route добавил
    >echo 201 mail.out >> /etc/iproute2/rt_tables
    >ip rule add fwmark 1 table mail.out
    >ip route add default via 195.96.98.253 dev ppp0 table mail.out
    >ip route flush cache
    >маршрут по умолчанию через eth1
    >ПРОБЛЕМА:
    >Пакеты с локального интерфейса (допустим 192.168.1.7) -> на smtp.mail.ru идут на роутер
    >далее с интерфейса ррр0 -> smtp.mail.ru
    >далее ответ smtp.mail.ru -> ррр0
    >а вот с ррр0 на  192.168.1.7 он не приходит.
    >Мож кто сталкивался с подобной проблемой?
    >Заранее всем спасибо!

    Чтобы не городить огород с изменением таблицы маршрутизации, советую воспользоваться расширением POM для iptables, а имеено модулем ROUTE

    Он позволит одним простым правилом сделать то, что Вы задумали:
    iptables -A POSTROUTING -t mangle -p tcp --dport 25 -j ROUTE --oif ppp0

    Скачать POM можно с офиц. сайта:
    http://www.netfilter.org/patch-o-matic/


    • Проблемы с маршрутизацией, !*! Sintezzz, 16:13 , 05-Май-06 (2)
      >>Есть 2 канала в интернет ppp0 и eth1
      >>Есть локальная сетевуха eth0
      >>Сеть 192.168.1.0/24
      >>Хочу настроить, чтоб smtp трафик шел через интерфейс ррр0, а весь остальной
      >>через eth1.
      >>на iptables включен маскарадинг для ppp0 и eth1. ip адреса везде статические
      >>
      >>INPUT, OUTPUT, FORWARD - все ACCEPT.
      >>маркирую smtp пакеты
      >>iptables -A PREROUTING -i eth0 -t mangle -p tcp --dport 25 -j
      >>MARK --set-mark 1
      >>В ip route добавил
      >>echo 201 mail.out >> /etc/iproute2/rt_tables
      >>ip rule add fwmark 1 table mail.out
      >>ip route add default via 195.96.98.253 dev ppp0 table mail.out
      >>ip route flush cache
      >>маршрут по умолчанию через eth1
      >>ПРОБЛЕМА:
      >>Пакеты с локального интерфейса (допустим 192.168.1.7) -> на smtp.mail.ru идут на роутер
      >>далее с интерфейса ррр0 -> smtp.mail.ru
      >>далее ответ smtp.mail.ru -> ррр0
      >>а вот с ррр0 на  192.168.1.7 он не приходит.
      >>Мож кто сталкивался с подобной проблемой?
      >>Заранее всем спасибо!
      >
      >Чтобы не городить огород с изменением таблицы маршрутизации, советую воспользоваться расширением POM
      >для iptables, а имеено модулем ROUTE
      >
      >Он позволит одним простым правилом сделать то, что Вы задумали:
      >iptables -A POSTROUTING -t mangle -p tcp --dport 25 -j ROUTE --oif
      >ppp0
      >
      >Скачать POM можно с офиц. сайта:
      >http://www.netfilter.org/patch-o-matic/

      А чтоб не компилить ядро и не переустанавливать iptables?

      • Проблемы с маршрутизацией, !*! Голышев Михаил, 16:37 , 05-Май-06 (3)
        >А чтоб не компилить ядро и не переустанавливать iptables?
        Ядро компилить не надо, надо скомпилить модуль для ядра - полминуты
        если iptables 1.3.5, то его тоже не надо переустанавливать. А если меньше, то стоит обновить и по другим соображениям.

        А по сути, попробуй добавить в фаервол
        iptables -A POSTROUTING -t nat -o ppp0 -j SNAT --to-source айпи_адрес_интерфейса_ppp0

        Если не поможет, положи сюда результат работы этих команд
        #tcpdump -vni ppp0 tcp port 25
        #tcpdump -vni eth0 tcp port 25
        #tcpdump -vni eth1 tcp port 25

        Естественно при попытке соединения с smtp.mail.ru:25

        Также было бы приятно увидеть
        #iptables -vL -n
        #iptables -vL -n -t mangle
        #iptables -vL -n -t nat

        • Проблемы с маршрутизацией, !*! Sintezzz, 14:45 , 12-Май-06 (4)
          >>А чтоб не компилить ядро и не переустанавливать iptables?
          >Ядро компилить не надо, надо скомпилить модуль для ядра - полминуты
          >если iptables 1.3.5, то его тоже не надо переустанавливать. А если меньше,
          >то стоит обновить и по другим соображениям.
          >
          >А по сути, попробуй добавить в фаервол
          >iptables -A POSTROUTING -t nat -o ppp0 -j SNAT --to-source айпи_адрес_интерфейса_ppp0
          >
          >Если не поможет, положи сюда результат работы этих команд
          >#tcpdump -vni ppp0 tcp port 25
          >#tcpdump -vni eth0 tcp port 25
          >#tcpdump -vni eth1 tcp port 25
          >
          >Естественно при попытке соединения с smtp.mail.ru:25
          >
          >Также было бы приятно увидеть
          >#iptables -vL -n
          >#iptables -vL -n -t mangle
          >#iptables -vL -n -t nat

          Поставил я РОМ, все равно не помогло. :(
          При добавлении правила:
          iptables -A POSTROUTING -t mangle -p tcp --dport 25 -j ROUTE --oif ppp0
          пакеты в инет уходят с локальным айпишником 1.7.

          Выкладываю...
          #tcpdump -vni ppp0 tcp port 25
          tcpdump -i ppp0 port smtp
          tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
          listening on ppp0, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
          13:38:10.277518 IP as-1-19.ar23-1s.kharkov.ukrtel.net.1810 > smtp.mail.ru.smtp: S 1318081599:1318081599(0) win 64240 <mss 1460,nop,nop,sackOK>
          13:38:10.381995 IP smtp.mail.ru.smtp > as-1-19.ar23-1s.kharkov.ukrtel.net.1810: S 319225599:319225599(0) ack 1318081600 win 32768 <mss 1460>
          13:38:13.213546 IP as-1-19.ar23-1s.kharkov.ukrtel.net.1810 > smtp.mail.ru.smtp: S 1318081599:1318081599(0) win 64240 <mss 1460,nop,nop,sackOK>
          13:38:13.320545 IP smtp.mail.ru.smtp > as-1-19.ar23-1s.kharkov.ukrtel.net.1810: S 319225599:319225599(0) ack 1318081600 win 32768 <mss 1460>
          13:38:16.319091 IP smtp.mail.ru.smtp > as-1-19.ar23-1s.kharkov.ukrtel.net.1810: S 319225599:319225599(0) ack 1318081600 win 32768 <mss 1460>
          13:38:19.231705 IP as-1-19.ar23-1s.kharkov.ukrtel.net.1810 > smtp.mail.ru.smtp: S 1318081599:1318081599(0) win 64240 <mss 1460,nop,nop,sackOK>
          13:38:19.338634 IP smtp.mail.ru.smtp > as-1-19.ar23-1s.kharkov.ukrtel.net.1810: S 319225599:319225599(0) ack 1318081600 win 32768 <mss 1460>
          13:38:25.342719 IP smtp.mail.ru.smtp > as-1-19.ar23-1s.kharkov.ukrtel.net.1810: S 319225599:319225599(0) ack 1318081600 win 32768 <mss 1460>
          13:38:37.336895 IP smtp.mail.ru.smtp > as-1-19.ar23-1s.kharkov.ukrtel.net.1810: S 319225599:319225599(0) ack 1318081600 win 32768 <mss 1460>

          >#tcpdump -vni eth1 tcp port 25
          Пусто
          tcpdump -i eth0 port smtp
          tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
          listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
          13:20:33.100342 IP 192.168.1.7.1797 > smtp.mail.ru.smtp: S 1053990361:1053990361
          (0) win 64240 <mss 1460,nop,nop,sackOK>
          13:20:36.025077 IP 192.168.1.7.1797 > smtp.mail.ru.smtp: S 1053990361:1053990361
          (0) win 64240 <mss 1460,nop,nop,sackOK>
          13:20:41.942916 IP 192.168.1.7.1797 > smtp.mail.ru.smtp: S 1053990361:1053990361
          (0) win 64240 <mss 1460,nop,nop,sackOK>
          13:21:31.737733 IP 192.168.1.7.1798 > smtp.mail.ru.smtp: S 1068649774:1068649774(0) win 64240 <mss 1460,nop,nop,sackOK>
          13:21:34.702040 IP 192.168.1.7.1798 > smtp.mail.ru.smtp: S 1068649774:1068649774(0) win 64240 <mss 1460,nop,nop,sackOK>
          13:21:40.720182 IP 192.168.1.7.1798 > smtp.mail.ru.smtp: S 1068649774:1068649774(0) win 64240 <mss 1460,nop,nop,sackOK>
          13:22:37.568108 IP 192.168.1.7.1799 > smtp.mail.ru.smtp: S 1085098239:1085098239(0) win 64240 <mss 1460,nop,nop,sackOK>
          13:22:40.500480 IP 192.168.1.7.1799 > smtp.mail.ru.smtp: S 1085098239:1085098239(0) win 64240 <mss 1460,nop,nop,sackOK>
          13:22:46.518632 IP 192.168.1.7.1799 > smtp.mail.ru.smtp: S 1085098239:1085098239(0) win 64240 <mss 1460,nop,nop,sackOK>

          iptables -vL

          Chain INPUT (policy ACCEPT 5131 packets, 1797K bytes)
          pkts bytes target     prot opt in     out     source               destination
              0     0 ACCEPT     all  --  lo     any     anywhere             anywhere
              0     0 ACCEPT     tcp  --  ppp0   any     anywhere             anywhere            tcp spt:smtp

          Chain FORWARD (policy ACCEPT 258 packets, 28810 bytes)
          pkts bytes target     prot opt in     out     source               destination
              3   144 ACCEPT     tcp  --  eth0   ppp0    anywhere             anywhere            tcp dpt:smtp
              0     0 ACCEPT     tcp  --  ppp0   eth0    anywhere             anywhere            tcp dpt:smtp

          Chain OUTPUT (policy ACCEPT 5767 packets, 1778K bytes)
          pkts bytes target     prot opt in     out     source               destination
              0     0 ACCEPT     all  --  any    lo      anywhere             anywhere
              0     0 ACCEPT     tcp  --  any    ppp0    anywhere             anywhere            tcp dpt:smtp

          iptables -vL -t mangle
          Chain PREROUTING (policy ACCEPT 14337 packets, 3520K bytes)
          pkts bytes target     prot opt in     out     source               destination
              3   144 MARK       tcp  --  eth0   any     anywhere             anywhere            tcp dpt:smtp MARK set 0x1

          Chain INPUT (policy ACCEPT 13115 packets, 3402K bytes)
          pkts bytes target     prot opt in     out     source               destination

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

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

          Chain POSTROUTING (policy ACCEPT 15969 packets, 4007K bytes)
          pkts bytes target     prot opt in     out     source               destination

          iptables -vL -t nat
          Chain PREROUTING (policy ACCEPT 988 packets, 68447 bytes)
          pkts bytes target     prot opt in     out     source               destination

          Chain POSTROUTING (policy ACCEPT 13 packets, 1430 bytes)
          pkts bytes target     prot opt in     out     source               destination
            254 15152 MASQUERADE  all  --  any    eth1    anywhere             anywhere
              1    48 SNAT       all  --  any    ppp0    192.168.1.0/24       anywhere            to:82.207.76.51

          Chain OUTPUT (policy ACCEPT 343 packets, 21309 bytes)
          pkts bytes target     prot opt in     out     source               destination

          • Проблемы с маршрутизацией, !*! Голышев Михаил, 20:48 , 12-Май-06 (5)
            >Поставил я РОМ, все равно не помогло. :(
            >При добавлении правила:
            >iptables -A POSTROUTING -t mangle -p tcp --dport 25 -j ROUTE --oif
            >ppp0
            >пакеты в инет уходят с локальным айпишником 1.7.
            >
            >Выкладываю...
            >#tcpdump -vni ppp0 tcp port 25
            >tcpdump -i ppp0 port smtp
            >tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
            >
            >listening on ppp0, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
            >13:38:10.277518 IP as-1-19.ar23-1s.kharkov.ukrtel.net.1810 > smtp.mail.ru.smtp: S 1318081599:1318081599(0) win 64240 <mss 1460,nop,nop,sackOK>
            Ушел правильный SYN пакет. Все в порядке.
            >13:38:10.381995 IP smtp.mail.ru.smtp > as-1-19.ar23-1s.kharkov.ukrtel.net.1810: S 319225599:319225599(0) ack 1318081600 win 32768 <mss 1460>
            Получен правильный SYN-ACK пакет. Все в порядке.
            >13:38:13.213546 IP as-1-19.ar23-1s.kharkov.ukrtel.net.1810 > smtp.mail.ru.smtp: S 1318081599:1318081599(0) win 64240 <mss 1460,nop,nop,sackOK>
            А вот тут, можно заметить, что конечный адресат предыдущего пакета, его не получил. И пытаеться посылать снова.

            >tcpdump -i eth0 port smtp
            >tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
            >
            >listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
            >13:20:33.100342 IP 192.168.1.7.1797 > smtp.mail.ru.smtp: S 1053990361:1053990361 (0) win 64240 <mss 1460,nop,nop,sackOK>
            Посылаем SYN пакет, все в порядке
            >13:20:36.025077 IP 192.168.1.7.1797 > smtp.mail.ru.smtp: S 1053990361:1053990361 (0) win 64240 <mss 1460,nop,nop,sackOK>
            Не получаем ответа на SYN пакет, пытаемся послать снова.

            Дальше становится понятным где искать ошибку.

            1.Клиент из локальной сети отправляет SYN
            2.SYN доходит до адресата
            3.Адресат возвращает SYN-ACK на роутер
            4.А вот до клиента сети этот SYN-ACK не доходит.

            >
            >iptables -vL
            >
            >Chain INPUT (policy ACCEPT 5131 packets, 1797K bytes)
            > pkts bytes target     prot opt in  
            >   out     source  
            >          
            > destination
            >    0     0 ACCEPT  
            >   all  --  lo    
            > any     anywhere    
            >        anywhere
            >    0     0 ACCEPT  
            >   tcp  --  ppp0   any
            >    anywhere      
            >      anywhere    
            >       tcp spt:smtp
            >
            >Chain FORWARD (policy ACCEPT 258 packets, 28810 bytes)
            > pkts bytes target     prot opt in  
            >   out     source  
            >          
            > destination
            >    3   144 ACCEPT    
            > tcp  --  eth0   ppp0  
            > anywhere          
            >   anywhere        
            >    tcp dpt:smtp
            >    0     0 ACCEPT  
            >   tcp  --  ppp0   eth0
            >   anywhere        
            >     anywhere      
            >      tcp dpt:smtp
            Ошибка тут. tcp dpt надо изменить на src dpt.

          • Проблемы с маршрутизацией, !*! Голышев Михаил, 20:52 , 12-Май-06 (6)
            Опечатка.
            Надо заменить tcp dpt:smtp на tcp src:smtp
            • Проблемы с маршрутизацией, !*! Sintezzz, 14:11 , 15-Май-06 (7)
              >Опечатка.
              >Надо заменить tcp dpt:smtp на tcp src:smtp

              В любом случае политика по умолчанию для цепочки forward- Accept
              но тем не менее действительно опечатался.
              заменил
              tcp src:smtp
              но проблема не решилась, все равно пакеты не проходят на локальный интерфейс и не доходят до локальной машины. :(

              • Проблемы с маршрутизацией, !*! Sintezzz, 14:27 , 15-Май-06 (8)
                Если я правильно понимаю ситуацию, то локальный пакет приходит на роутер, маркируеться, для него выбираеться маршрут через ppp0, маскарадиться, отправляеться на мэил.ру
                Оттуда приходит ответ, обратное преобразование айпи адреса, пакет уходит в локальную сеть.
                Так вот, я подозреваю что пакет, который приходит с меил.ру на ppp0, попадает не в ту таблицу обратного преобразования...
                И я даже не знаю, как это все проверить.. :)



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру