URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 59191
[ Назад ]

Исходное сообщение
"маршрутизация по источнику и iptables"

Отправлено сергей , 15-Авг-05 10:38 
Здравствуйте
Сегодня подключил вторую выделенку, проверил пингом с адреса, который мне дал новый повайдер, все работает. ping -I новый_ип хост. Все пакеты бегают через сетевуху второго провайдера, все хорошо.
Но когда решил в iptables сделать для своей машинки адресом источника этот самый новый ип( через iptable -t nat -A POSTROUTING --src МОЙ_ЛОК_ИП -j SNAT --to source ИП_НОВОГО_ПРОВАЙДЕРА), то получил, что пакеты от меня идут с интерфейса старого провайдера, а ответы через нового. Как сделать нормальную схему, чтоб и уходило и приходило с нового, если ИП нового?

Содержание

Сообщения в этом обсуждении
"маршрутизация по источнику и iptables"
Отправлено Neon777 , 15-Авг-05 10:46 
>Здравствуйте
>Сегодня подключил вторую выделенку, проверил пингом с адреса, который мне дал новый
>повайдер, все работает. ping -I новый_ип хост. Все пакеты бегают через
>сетевуху второго провайдера, все хорошо.
>Но когда решил в iptables сделать для своей машинки адресом источника этот
>самый новый ип( через iptable -t nat -A POSTROUTING --src МОЙ_ЛОК_ИП
>-j SNAT --to source ИП_НОВОГО_ПРОВАЙДЕРА), то получил, что пакеты от меня
>идут с интерфейса старого провайдера, а ответы через нового. Как сделать
>нормальную схему, чтоб и уходило и приходило с нового, если ИП
>нового?

Например можно сделать две таблицы маршутизации (iproute2), и фильтр, который будет одни пакеты в оду таблицу а другие в другую кидать. Ну и нат, конечно, куда надо.

Вот тут почитать можно:
http://www.linux.com/howtos/Adv-Routing-HOWTO/lartc.rpdb.mul...


"маршрутизация по источнику и iptables"
Отправлено сергей , 15-Авг-05 11:29 
>Например можно сделать две таблицы маршутизации (iproute2), и фильтр, который будет одни
>пакеты в оду таблицу а другие в другую кидать. Ну и
>нат, конечно, куда надо.
>
>Вот тут почитать можно:
>http://www.linux.com/howtos/Adv-Routing-HOWTO/lartc.rpdb.mul...


Дык я по ней и делал
Проблема-то в том, что при snat почему-то пакеты все равно уходят от старого провайдера, хотя если делаешь пинг от ип_нового провайдера, то пакеты идут через интерфейс нового провайдера.


"маршрутизация по источнику и iptables"
Отправлено Neon777 , 15-Авг-05 11:55 
>>Например можно сделать две таблицы маршутизации (iproute2), и фильтр, который будет одни
>>пакеты в оду таблицу а другие в другую кидать. Ну и
>>нат, конечно, куда надо.
>>
>>Вот тут почитать можно:
>>http://www.linux.com/howtos/Adv-Routing-HOWTO/lartc.rpdb.mul...
>
>
>Дык я по ней и делал
>Проблема-то в том, что при snat почему-то пакеты все равно уходят от
>старого провайдера, хотя если делаешь пинг от ип_нового провайдера, то пакеты
>идут через интерфейс нового провайдера.


Что показывают:
iptables -t nat -L
ip rule show
route
ifconfig -a


"маршрутизация по источнику и iptables"
Отправлено сергей , 15-Авг-05 12:12 
>Что показывают:
>iptables -t nat -L
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
SNAT       all  --  192.168.1.33        !192.168.0.0/16     to:IP_ОТ_НОВОГО_ПРОВАЙДЕРА

>ip rule show
0:      from all lookup local
32765:  from IP_ОТ_НОВОГО_ПРОВАЙДЕРА lookup ruskom
32766:  from all lookup main
32767:  from all lookup 253

>route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.16.0     0.0.0.0         255.255.255.252 U     0      0        0 eth1
СЕТЬ_НОВОГО_ПРВ 0.0.0.0         255.255.255.224 U     0      0        0 eth2
СЕТЬ_СТАРОГО_ПР 0.0.0.0         255.255.255.224 U     0      0        0 eth0
10.0.0.0        172.16.16.1     255.255.0.0     UG    0      0        0 eth1
192.168.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         ШЛЮЗ_СТАРОГО_ПР 0.0.0.0         UG    0      0        0 eth0


ip route list table ruskom
СЕТЬ_НОВОГО_ПРОВАЙДЕРА dev eth2  scope link  src IP_ОТ_НОВОГО_ПРОВАЙДЕРА default via ШЛЮЗ_НОВОГО_ПР dev eth2

eth0 - сеть со старым провайдером и локалка в ней же
eth1 - vpn к удалённым отделениям, сетка на 10.0.0.0/16
eth2 - интерфейс к новому провайдеру


"маршрутизация по источнику и iptables"
Отправлено Neon777 , 15-Авг-05 12:33 
>>Что показывают:
>>iptables -t nat -L
>Chain POSTROUTING (policy ACCEPT)
>target     prot opt source    
>          destination
>
>SNAT       all  --  192.168.1.33
>       !192.168.0.0/16    
> to:IP_ОТ_НОВОГО_ПРОВАЙДЕРА
>
>>ip rule show
>0:      from all lookup local
>32765:  from IP_ОТ_НОВОГО_ПРОВАЙДЕРА lookup ruskom
>32766:  from all lookup main
>32767:  from all lookup 253
>
>>route
>Kernel IP routing table
>Destination     Gateway      
>  Genmask        
>Flags Metric Ref    Use Iface
>172.16.16.0     0.0.0.0      
>  255.255.255.252 U     0  
>   0        
>0 eth1
>СЕТЬ_НОВОГО_ПРВ 0.0.0.0         255.255.255.224 U
>    0      0
>       0 eth2
>СЕТЬ_СТАРОГО_ПР 0.0.0.0         255.255.255.224 U
>    0      0
>       0 eth0
>10.0.0.0        172.16.16.1    
> 255.255.0.0     UG    0
>     0      
>  0 eth1
>192.168.0.0     0.0.0.0      
>  255.255.0.0     U    
> 0      0    
>    0 eth0
>127.0.0.0       0.0.0.0    
>    255.0.0.0      
>U     0      
>0        0 lo
>0.0.0.0         ШЛЮЗ_СТАРОГО_ПР 0.0.0.0  
>       UG    
>0      0    
>   0 eth0
>
>
>ip route list table ruskom
>СЕТЬ_НОВОГО_ПРОВАЙДЕРА dev eth2  scope link  src IP_ОТ_НОВОГО_ПРОВАЙДЕРА default via ШЛЮЗ_НОВОГО_ПР
>dev eth2
>
>
>
>eth0 - сеть со старым провайдером и локалка в ней же
>eth1 - vpn к удалённым отделениям, сетка на 10.0.0.0/16
>eth2 - интерфейс к новому провайдеру


попробуй поставить 32764:  from 192.168.1.0/24 lookup ruskom
Ведь нат работает после роутинга (POSTROUTING), соответственно
32765:  from IP_ОТ_НОВОГО_ПРОВАЙДЕРА lookup ruskom
не срабатывает, так как в тот момент source ip - 192.168.1.33


"маршрутизация по источнику и iptables"
Отправлено сергей , 15-Авг-05 13:01 
>попробуй поставить 32764:  from 192.168.1.0/24 lookup ruskom
>Ведь нат работает после роутинга (POSTROUTING), соответственно
>32765:  from IP_ОТ_НОВОГО_ПРОВАЙДЕРА lookup ruskom
>не срабатывает, так как в тот момент source ip - 192.168.1.33


Ага, заработало :-)
Большое спасибо


"маршрутизация по источнику и iptables"
Отправлено Neon777 , 15-Авг-05 13:03 
>>попробуй поставить 32764:  from 192.168.1.0/24 lookup ruskom
>>Ведь нат работает после роутинга (POSTROUTING), соответственно
>>32765:  from IP_ОТ_НОВОГО_ПРОВАЙДЕРА lookup ruskom
>>не срабатывает, так как в тот момент source ip - 192.168.1.33
>
>
>Ага, заработало :-)
>Большое спасибо

Всегда пожалуйста. Хорошо, не всегда чуть ли не в исходники лезть приходится, чтобы понять, как что то работает.