Здравствуйте
Сегодня подключил вторую выделенку, проверил пингом с адреса, который мне дал новый повайдер, все работает. ping -I новый_ип хост. Все пакеты бегают через сетевуху второго провайдера, все хорошо.
Но когда решил в iptables сделать для своей машинки адресом источника этот самый новый ип( через iptable -t nat -A POSTROUTING --src МОЙ_ЛОК_ИП -j SNAT --to source ИП_НОВОГО_ПРОВАЙДЕРА), то получил, что пакеты от меня идут с интерфейса старого провайдера, а ответы через нового. Как сделать нормальную схему, чтоб и уходило и приходило с нового, если ИП нового?
>Здравствуйте
>Сегодня подключил вторую выделенку, проверил пингом с адреса, который мне дал новый
>повайдер, все работает. 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...
>Например можно сделать две таблицы маршутизации (iproute2), и фильтр, который будет одни
>пакеты в оду таблицу а другие в другую кидать. Ну и
>нат, конечно, куда надо.
>
>Вот тут почитать можно:
>http://www.linux.com/howtos/Adv-Routing-HOWTO/lartc.rpdb.mul...
Дык я по ней и делал
Проблема-то в том, что при snat почему-то пакеты все равно уходят от старого провайдера, хотя если делаешь пинг от ип_нового провайдера, то пакеты идут через интерфейс нового провайдера.
>>Например можно сделать две таблицы маршутизации (iproute2), и фильтр, который будет одни
>>пакеты в оду таблицу а другие в другую кидать. Ну и
>>нат, конечно, куда надо.
>>
>>Вот тут почитать можно:
>>http://www.linux.com/howtos/Adv-Routing-HOWTO/lartc.rpdb.mul...
>
>
>Дык я по ней и делал
>Проблема-то в том, что при snat почему-то пакеты все равно уходят от
>старого провайдера, хотя если делаешь пинг от ип_нового провайдера, то пакеты
>идут через интерфейс нового провайдера.
Что показывают:
iptables -t nat -L
ip rule show
route
ifconfig -a
>Что показывают:
>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 eth2eth0 - сеть со старым провайдером и локалка в ней же
eth1 - vpn к удалённым отделениям, сетка на 10.0.0.0/16
eth2 - интерфейс к новому провайдеру
>>Что показывают:
>>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
>попробуй поставить 32764: from 192.168.1.0/24 lookup ruskom
>Ведь нат работает после роутинга (POSTROUTING), соответственно
>32765: from IP_ОТ_НОВОГО_ПРОВАЙДЕРА lookup ruskom
>не срабатывает, так как в тот момент source ip - 192.168.1.33
Ага, заработало :-)
Большое спасибо
>>попробуй поставить 32764: from 192.168.1.0/24 lookup ruskom
>>Ведь нат работает после роутинга (POSTROUTING), соответственно
>>32765: from IP_ОТ_НОВОГО_ПРОВАЙДЕРА lookup ruskom
>>не срабатывает, так как в тот момент source ip - 192.168.1.33
>
>
>Ага, заработало :-)
>Большое спасибоВсегда пожалуйста. Хорошо, не всегда чуть ли не в исходники лезть приходится, чтобы понять, как что то работает.