LINUX.ORG.RU
ФорумAdmin

Iptables -SNAT подмена ip

 ext ip, ,


0

2

Добрый день, Помогите пожалуйста разобраться с SNAT. Задача следующая. Нужно конкретному пользователю наружу дать конкретный IP. провайдер предоставляет их несколько... Собственно вот правила которые использую

-A POSTROUTING -s 10.0.0.40/32 -o eth0 -j SNAT --to-source 212.38.43.187 - то то что надо сделать

-A POSTROUTING -o eth0 -j SNAT --to-source 212.38.43.186 -это для всех

По каким-то непонятным мне причинам Первое правило для конкретного ip адресса не срабатывает. А вот второе для всех работает. местами менял 0 реакций. все равно с 40 ип-адресса наружу выходит с IP 186

Ubuntu Server 12.04

Заранее спасибо за помощь.



Последнее исправление: Finalls (всего исправлений: 1)

Ответ на: комментарий от anton_jugatsu
root@cisco:~# ip ro
default via 89.175.19.189 dev eth0  metric 100
10.0.0.0/24 dev eth1  proto kernel  scope link  src 10.0.0.1
89.175.19.188/30 dev eth0  proto kernel  scope link  src 89.175.99.190
212.38.43.0/23 via 212.48.34.185 dev eth0 - сам прописывал
212.38.43.184/29 dev eth0  proto kernel  scope link  src 212.38.43.186
Finalls
() автор топика
Ответ на: комментарий от Finalls

Теперь всё ясно, с этого и надо было начинать. Вам, батенька, policy based routing нужен, читать man ip, ip rule, в частности.

SNAT никакого отношения к маршрутизации не имеет.

Пришёл пакет на L3 с dst адресом 8.8.8.8 от 10.0.0.12 (или какой там у тебя). Ну и? Смотрим таблицу main - уйдёт в дефолт.

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

Сделал следующие. создал 2 таблиц маршрутизации

ip route add default via 89.175.19.189 table 101
ip route add default via 212.38.43.185 table 102

Создал 2 правила

ip rule add from 89.175.19.189 table 101
ip rule add from 212.38.43.185 table 102
Завернул трафик с маркировкой 0x2
ip rule add fwmark 0x2/0x2 lookup 102
В Iptables добавил 2 правила
-A POSTROUTING -m mark --mark 0x2 -j SNAT --to-source 212.38.43.187

-A FORWARD -s 10.0.0.12 -o eth0 -j MARK --set-mark 0x2
И ноль реакций... что я сделал не так ??? оО

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

У тебя правильные правила изначально, но где-то косяк который ты не замечаешь. SNAT меняет source address на любой, даже на которого нет у тебя (ответ не получишь, но пакет с левым исходным ИП уйдет). Так что проблема совсем в другом и все эти советы вне iptables -j SNAT, не помогут.

Поскольку правило

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source x.x.x.187

работает, а то же правило с "-s 10.0.0.12" не работает, предполагаю что сюда (в POSTROUTING) приходят пакеты с измененным соурс ИП. Перед правилами SNAT вставь правило -j LOG

sdio ★★★★★
()
Последнее исправление: sdio (всего исправлений: 2)
Ответ на: комментарий от sdio
09:26:21.992564 IP 10.0.0.12.2482 > www.netup.ru.http: Flags [S], seq 1343753635, win 65535, options [mss 1460,nop,nop,sackOK], length 0
09:26:21.992594 IP www.netup.ru.http > 10.0.0.12.2482: Flags [S.], seq 3556515668, ack 1343753636, win 14600, options [mss 1460,nop,nop,sackOK], length 0
09:26:21.992925 IP 10.0.0.12.2482 > www.netup.ru.http: Flags [.], ack 1, win 65535, length 0
09:26:21.993940 IP 10.0.0.12.2484 > www.netup.ru.http: Flags [S], seq 1505701571, win 65535, options [mss 1460,nop,nop,sackOK], length 0
09:26:21.993958 IP www.netup.ru.http > 10.0.0.12.2484: Flags [S.], seq 1759435790, ack 1505701572, win 14600, options [mss 1460,nop,nop,sackOK], length 0
09:26:21.994145 IP 10.0.0.12.2484 > www.netup.ru.http: Flags [.], ack 1, win 65535, length 0
09:26:22.072658 IP 10.0.0.12.2482 > www.netup.ru.http: Flags [P.], seq 1:340, ack 1, win 65535, length 339
09:26:22.072676 IP www.netup.ru.http > 10.0.0.12.2482: Flags [.], ack 340, win 15544, length 0
09:26:22.510463 IP www.netup.ru.http > 10.0.0.12.2482: Flags [P.], seq 1:523, ack 340, win 15544, length 522
09:26:22.534335 IP 10.0.0.12.2482 > www.netup.ru.http: Flags [P.], seq 340:694, ack 523, win 65013, length 354
09:26:22.534353 IP www.netup.ru.http > 10.0.0.12.2482: Flags [.], ack 694, win 16616, length 0
09:26:22.601087 IP www.netup.ru.http > 10.0.0.12.2482: Flags [.], seq 523:1983, ack 694, win 16616, length 1460
09:26:22.601099 IP www.netup.ru.http > 10.0.0.12.2482: Flags [P.], seq 1983:2104, ack 694, win 16616, length 121
09:26:22.601849 IP 10.0.0.12.2482 > www.netup.ru.http: Flags [.], ack 2104, win 65535, length 0
09:26:23.157138 IP 10.0.0.12.2482 > www.netup.ru.http: Flags [P.], seq 694:1183, ack 2104, win 65535, length 489
09:26:23.157157 IP www.netup.ru.http > 10.0.0.12.2482: Flags [.], ack 1183, win 17688, length 0
09:26:23.222598 IP www.netup.ru.http > 10.0.0.12.2482: Flags [P.], seq 2104:2681, ack 1183, win 17688, length 577
09:26:23.383558 IP 10.0.0.12.2482 > www.netup.ru.http: Flags [.], ack 2681, win 64958, length 0


Finalls
() автор топика
Ответ на: комментарий от Finalls
ip route add default via 89.175.19.189 table 101
ip route add default via 212.38.43.185 table 102

А если так?

ip route add default via 89.175.19.189 dev eth0 src 212.38.43.187 table 102

ip rule add from 10.0.0.12 lookup 102

areisp
()
Ответ на: комментарий от anton_jugatsu
root@cisco:~# tcpdump -e -i eth1 host 77.72.80.15
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
09:54:15.046390 00:15:5d:00:05:04 (oui Unknown) > 00:26:18:3a:59:d6 (oui Unknown), ethertype IPv4 (0x0800), length 618: 10.0.0.12.2509 > www.netup.ru.http: Flags [P.], seq 2226491576:2226492140, ack 2319895754, win 64958, length 564
09:54:15.046413 00:26:18:3a:59:d6 (oui Unknown) > 00:15:5d:00:05:04 (oui Unknown), ethertype IPv4 (0x0800), length 54: www.netup.ru.http > 10.0.0.12.2509: Flags [.], ack 564, win 19107, length 0
09:54:15.172419 00:26:18:3a:59:d6 (oui Unknown) > 00:15:5d:00:05:04 (oui Unknown), ethertype IPv4 (0x0800), length 576: www.netup.ru.http > 10.0.0.12.2509: Flags [P.], seq 1:523, ack 564, win 19107, length 522
09:54:15.188620 00:15:5d:00:05:04 (oui Unknown) > 00:26:18:3a:59:d6 (oui Unknown), ethertype IPv4 (0x0800), length 633: 10.0.0.12.2509 > www.netup.ru.http: Flags [P.], seq 564:1143, ack 523, win 64436, length 579
09:54:15.188641 00:26:18:3a:59:d6 (oui Unknown) > 00:15:5d:00:05:04 (oui Unknown), ethertype IPv4 (0x0800), length 54: www.netup.ru.http > 10.0.0.12.2509: Flags [.], ack 1143, win 20265, length 0
09:54:15.253256 00:26:18:3a:59:d6 (oui Unknown) > 00:15:5d:00:05:04 (oui Unknown), ethertype IPv4 (0x0800), length 1514: www.netup.ru.http > 10.0.0.12.2509: Flags [.], seq 523:1983, ack 1143, win 20265, length 1460
09:54:15.253269 00:26:18:3a:59:d6 (oui Unknown) > 00:15:5d:00:05:04 (oui Unknown), ethertype IPv4 (0x0800), length 175: www.netup.ru.http > 10.0.0.12.2509: Flags [P.], seq 1983:2104, ack 1143, win 20265, length 121
09:54:15.254039 00:15:5d:00:05:04 (oui Unknown) > 00:26:18:3a:59:d6 (oui Unknown), ethertype IPv4 (0x0800), length 60: 10.0.0.12.2509 > www.netup.ru.http: Flags [.], ack 2104, win 65535, length 0
09:54:15.478189 00:15:5d:00:05:04 (oui Unknown) > 00:26:18:3a:59:d6 (oui Unknown), ethertype IPv4 (0x0800), length 543: 10.0.0.12.2509 > www.netup.ru.http: Flags [P.], seq 1143:1632, ack 2104, win 65535, length 489
09:54:15.478203 00:26:18:3a:59:d6 (oui Unknown) > 00:15:5d:00:05:04 (oui Unknown), ethertype IPv4 (0x0800), length 54: www.netup.ru.http > 10.0.0.12.2509: Flags [.], ack 1632, win 21423, length 0
09:54:15.541159 00:26:18:3a:59:d6 (oui Unknown) > 00:15:5d:00:05:04 (oui Unknown), ethertype IPv4 (0x0800), length 631: www.netup.ru.http > 10.0.0.12.2509: Flags [P.], seq 2104:2681, ack 1632, win 21423, length 577
09:54:15.851617 00:15:5d:00:05:04 (oui Unknown) > 00:26:18:3a:59:d6 (oui Unknown), ethertype IPv4 (0x0800), length 60: 10.0.0.12.2509 > www.netup.ru.http: Flags [.], ack 2681, win 64958, length 0

Finalls
() автор топика
Ответ на: комментарий от sdio

сори ступил

root@cisco:~# tcpdump -i eth0 host 77.72.80.15
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
10:22:21.241768 IP 212.38.43.186.36258 > www.netup.ru.http: Flags [S], seq 872403493, win 14600, options [mss 1460,sackOK,TS val 9926425 ecr 0,nop,wscale 4], length 0
10:22:21.305576 IP www.netup.ru.http > 212.38.43.186.36258: Flags [S.], seq 3753433289, ack 872403494, win 5792, options [mss 1460,sackOK,TS val 62827175 ecr 9926425,nop,wscale 6], length 0
10:22:21.305604 IP 212.38.43.186.36258 > www.netup.ru.http: Flags [.], ack 1, win 913, options [nop,nop,TS val 9926441 ecr 62827175], length 0
10:22:21.305715 IP 212.38.43.186.36258 > www.netup.ru.http: Flags [P.], seq 1:628, ack 1, win 913, options [nop,nop,TS val 9926441 ecr 62827175], length 627
10:22:21.370130 IP www.netup.ru.http > 212.38.43.186.36258: Flags [.], ack 628, win 111, options [nop,nop,TS val 62827192 ecr 9926441], length 0
10:22:21.371496 IP www.netup.ru.http > 212.38.43.186.36258: Flags [P.], seq 1:437, ack 628, win 111, options [nop,nop,TS val 62827192 ecr 9926441], length 436
10:22:21.371510 IP 212.38.43.186.36258 > www.netup.ru.http: Flags [.], ack 437, win 980, options [nop,nop,TS val 9926457 ecr 62827192], length 0
10:22:21.390156 IP 212.38.43.186.36258 > www.netup.ru.http: Flags [P.], seq 628:1270, ack 437, win 980, options [nop,nop,TS val 9926462 ecr 62827192], length 642
10:22:21.455937 IP www.netup.ru.http > 212.38.43.186.36258: Flags [.], seq 437:1885, ack 1270, win 131, options [nop,nop,TS val 62827213 ecr 9926462], length 1448
10:22:21.455957 IP www.netup.ru.http > 212.38.43.186.36258: Flags [P.], seq 1885:1943, ack 1270, win 131, options [nop,nop,TS val 62827213 ecr 9926462], length 58
10:22:21.455966 IP 212.38.43.186.36258 > www.netup.ru.http: Flags [.], ack 1943, win 1161, options [nop,nop,TS val 9926478 ecr 62827213], length 0
10:22:21.717116 IP 212.38.43.186.36258 > www.netup.ru.http: Flags [P.], seq 1270:1854, ack 1943, win 1161, options [nop,nop,TS val 9926544 ecr 62827213], length 584
10:22:21.781775 IP www.netup.ru.http > 212.38.43.186.36258: Flags [P.], seq 1943:2445, ack 1854, win 151, options [nop,nop,TS val 62827294 ecr 9926544], length 502
10:22:21.820319 IP 212.38.43.186.36258 > www.netup.ru.http: Flags [.], ack 2445, win 1342, options [nop,nop,TS val 9926570 ecr 62827294], length 0

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

О, бой продолжается? Я тут подумал что тебе iproute возможно и лишний будет. Надо просто промаркировать пакеты в PREROUTING, а потом в POSTROUTING уже натить по маркировке. Что-то типа такого:

# PREROUTING

-t mangle -A PREROUTING -s 10.0.0.40/32 -i eth0 -j MARK --set-mark 101
-t mangle -A PREROUTING -i eth0 -j MARK --set-mark 102

#POSTROUTING
-t nat -A POSTROUTING --mark 101 -j SNAT --to-source 212.38.43.187
-t nat -A POSTROUTING --mark 102 -j SNAT
anonymous
()
Ответ на: комментарий от anonymous

Если делаю так

iptables -t mangle -A PREROUTING -s 10.0.0.12/32 -i eth0 -j MARK --set-mark 101
iptables -t mangle -A PREROUTING -i eth0 -j MARK --set-mark 102


iptables -t nat -A POSTROUTING -m mark --mark 101 -j SNAT --to-source 212.38.43.187
iptables -t nat -A POSTROUTING -m mark --mark 102 -j SNAT --to-source 212.38.43.186
А иначе он не хочет. То в инте выхожу с 89.175..... адресом.

Finalls
() автор топика
Ответ на: комментарий от sdio
-A INPUT -p tcp -j LOG --log-prefix "input tcp"
-A INPUT -p icmp -j LOG --log-prefix "input icmp"
-A OUTPUT -o eth0 -j LOG

Давно добавил ещё когда вы 1 раз написали !

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

А, я щас только увидел твою таблицу маршрутизации. У тебя два интернет канала? Ну тогда да, так просто не получится, надо заворачивать в таблицы iproute.

В общем, напиши зачем тебе второй канал, и кто куда должен ходить, а то не очень понятно

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

Нету второго канала. Провайдер даёт 1 шнурок. В этом шнурке основной ip 89..... со шлюзом 89..... И Дополнительные IP 212...... со шлюзом 212....

Finalls
() автор топика
Ответ на: комментарий от sdio

В логах без изменений

root@cisco:~# tcpdump -i eth0 host 77.72.80.15
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
11:17:54.679618 IP 212.38.43.186.34781 > www.netup.ru.http: Flags [S], seq 3887359300, win 14600, options [mss 1460,sackOK,TS val 10759781 ecr 0,nop,wscale 4], length 0
11:17:54.741213 IP www.netup.ru.http > 212.38.43.186.34781: Flags [S.], seq 1872227753, ack 3887359301, win 5792, options [mss 1460,sackOK,TS val 63660484 ecr 10759781,nop,wscale 6], length 0
11:17:54.741246 IP 212.38.43.186.34781 > www.netup.ru.http: Flags [.], ack 1, win 913, options [nop,nop,TS val 10759796 ecr 63660484], length 0
11:17:54.741427 IP 212.38.43.186.34781 > www.netup.ru.http: Flags [P.], seq 1:629, ack 1, win 913, options [nop,nop,TS val 10759796 ecr 63660484], length 628
11:17:54.803490 IP www.netup.ru.http > 212.38.43.186.34781: Flags [.], ack 629, win 111, options [nop,nop,TS val 63660500 ecr 10759796], length 0
11:17:54.805529 IP www.netup.ru.http > 212.38.43.186.34781: Flags [P.], seq 1:437, ack 629, win 111, options [nop,nop,TS val 63660500 ecr 10759796], length 436
11:17:54.805543 IP 212.38.43.186.34781 > www.netup.ru.http: Flags [.], ack 437, win 980, options [nop,nop,TS val 10759812 ecr 63660500], length 0
11:17:54.827540 IP 212.38.43.186.34781 > www.netup.ru.http: Flags [P.], seq 629:1272, ack 437, win 980, options [nop,nop,TS val 10759818 ecr 63660500], length 643
11:17:54.891080 IP www.netup.ru.http > 212.38.43.186.34781: Flags [.], seq 437:1885, ack 1272, win 131, options [nop,nop,TS val 63660522 ecr 10759818], length 1448
11:17:54.891098 IP www.netup.ru.http > 212.38.43.186.34781: Flags [P.], seq 1885:1943, ack 1272, win 131, options [nop,nop,TS val 63660522 ecr 10759818], length 58
11:17:54.891112 IP 212.38.43.186.34781 > www.netup.ru.http: Flags [.], ack 1943, win 1161, options [nop,nop,TS val 10759834 ecr 63660522], length 0
11:17:55.756860 IP 212.38.43.186.34781 > www.netup.ru.http: Flags [P.], seq 1272:1856, ack 1943, win 1161, options [nop,nop,TS val 10760050 ecr 63660522], length 584
11:17:55.819389 IP www.netup.ru.http > 212.38.43.186.34781: Flags [P.], seq 1943:2445, ack 1856, win 151, options [nop,nop,TS val 63660754 ecr 10760050], length 502
11:17:55.858033 IP 212.38.43.186.34781 > www.netup.ru.http: Flags [.], ack 2445, win 1342, options [nop,nop,TS val 10760076 ecr 63660754], length 0

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

Нету второго канала. Провайдер даёт 1 шнурок. В этом шнурке основной ip 89..... со шлюзом 89..... И Дополнительные IP 212...... со шлюзом 212....

Тогда так?

ip route add default via 212.38.43.185 dev eth0 src 212.38.43.187 table 102

ip rule add from 10.0.0.12 lookup 102

Очень уж сильно ситуация напоминает такую: http://lartc.org/howto/lartc.rpdb.html#LARTC.RPDB.SIMPLE

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

Вообще ничгео туда не пишет.... все что косаемо iptables вот там какие записи

[   28.204137] init: plymouth-upstart-bridge main process (566) killed by TERM signal
[ 2832.713574] 8139too 0000:03:00.0: eth0: link up, 100Mbps, full-duplex, lpa 0x4181
[ 2832.829292] ATL1E 0000:01:00.0: eth1: NIC Link is Up <1000 Mbps Full Duplex>
[ 2832.829559] ADDRCONF(NETDEV_UP): eth1: link is not ready
[ 2832.829761] ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready

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

Эпс вру... пишет

root@cisco:~# dmesg | grep 10.0.0.12
[ 3198.972964] input tcpIN=eth1 OUT= MAC=00:26:18:3a:59:d6:00:15:5d:00:05:04:08:00 SRC=10.0.0.12 DST=10.0.0.1 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=62165 DF PROTO=TCP SPT=2907 DPT=3128 WINDOW=65535 RES=0x00 SYN URGP=0
[ 3205.469280] input tcpIN=eth1 OUT= MAC=00:26:18:3a:59:d6:00:15:5d:00:05:04:08:00 SRC=10.0.0.12 DST=10.0.0.1 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=62342 DF PROTO=TCP SPT=2909 DPT=3128 WINDOW=65535 RES=0x00 SYN URGP=0
Вот 1 запрос. Но только правила я тут не вижу (

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

Так. И тебе нужно всю подсеть 10.0.0.0/8 направить через 212.38.43.186, а 10.0.0.40 через 212.38.43.187? Игнорируя «основной» адрес, который 89.чего-то, так?

Если все так, то алгоритм приблизительно (я не проверял, может и забыл что-то) такой:

Добавляем две строчки в файл /etc/iproute2/rt_tables

101     USERS
102     USER40

В /etc/network/interfaces для интерфейса eth0 (у тебя же он внешний?)

ip route add default via <адрес_шлюза_212> dev eth0 table USERS
ip rule add fwmark 101 table USERS
ip rule add fwmark 102 table USER40

Правила iptables:

iptables -t mangle -A PREROUTING -s 10.0.0.12/32 -i eth1 -j MARK --set-mark 102
iptables -t mangle -A PREROUTING -i eth1 ! -s 10.0.0.12/32 -j MARK --set-mark 101


iptables -t nat -A POSTROUTING -m mark --mark 102 -j SNAT --to-source 212.38.43.187
iptables -t nat -A POSTROUTING -m mark --mark 101 -j SNAT --to-source 212.38.43.186

И нужно сделать

echo 0 >| /proc/sys/net/ipv4/conf/all/rp_filter
echo 0 >| /proc/sys/net/ipv4/conf/eth0/rp_filter
echo 0 >| /proc/sys/net/ipv4/conf/eth1/rp_filter
ip route flush cache

Да, с логами, конечно, нужно что-то сделать, без них ничего не увидишь

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

Не хочет добавлять

root@cisco:~# ip route add default via 212.48.34.185 dev eth0 table USERS
Error: argument "USERS" is wrong: "table" value is invalid
root@cisco:~# ip rule add fwmark 102 table «USER» 
Error: argument «USER» is wrong: invalid table ID

Только цифры почемуто добавляет!!!

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

Да поменял все на цифры....

в итоге получилось вот что

IPTABLES

# Generated by iptables-save v1.4.12 on Thu Aug 15 13:47:49 2013
*filter
:INPUT ACCEPT [2329:850087]
:FORWARD ACCEPT [3278:1865508]
:OUTPUT ACCEPT [2670:1243680]
-A INPUT -i lo -j ACCEPT
-A FORWARD ! -s 10.0.0.68/32 -o eth0 -p tcp -m tcp --dport 25 -j DROP
COMMIT
# Completed on Thu Aug 15 13:47:49 2013
# Generated by iptables-save v1.4.12 on Thu Aug 15 13:47:49 2013
*nat
:PREROUTING ACCEPT [384:36286]
:INPUT ACCEPT [263:18778]
:OUTPUT ACCEPT [155:9988]
:POSTROUTING ACCEPT [156:10036]
-A PREROUTING -d 212.38.43.188/32 -j DNAT --to-destination 10.0.0.12
-A PREROUTING -i eth1 -p tcp -m multiport --dports 80,8080 -j REDIRECT --to-ports 3128
-A PREROUTING -d 212.38.43.186/32 -p tcp -m tcp --dport 25 -j DNAT --to-destination 10.0.0.68
-A PREROUTING -d 212.38.43.186/32 -p udp -m udp --dport 25 -j DNAT --to-destination 10.0.0.68
-A PREROUTING -d 212.38.43.186/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.0.4
-A PREROUTING -d 212.38.43.186/32 -p tcp -m tcp --dport 443 -j DNAT --to-destination 10.0.0.4
-A PREROUTING -d 212.38.43.186/32 -p udp -m udp --dport 443 -j DNAT --to-destination 10.0.0.4
-A PREROUTING -d 212.38.43.187/32 -j DNAT --to-destination 10.0.0.7
-A PREROUTING -s 10.0.0.12/32 -i eth1 -j MARK --set-xmark 0x66/0xffffffff
-A PREROUTING ! -s 10.0.0.12/32 -i eth1 -j MARK --set-xmark 0x65/0xffffffff
-A INPUT -p tcp -j LOG --log-prefix "input tcp"
-A INPUT -p icmp -j LOG --log-prefix "input icmp"
-A OUTPUT -o eth0 -j LOG
-A POSTROUTING -o eth0 -j LOG
-A POSTROUTING -m mark --mark 0x66 -j SNAT --to-source 212.38.43.187
-A POSTROUTING -m mark --mark 0x65 -j SNAT --to-source 212.38.43.186
COMMIT
# Completed on Thu Aug 15 13:47:49 2013
IP RO
root@cisco:/network/if-up.d# ip ru
0:      from all lookup local
32764:  from all fwmark 0x66 lookup 2
32765:  from all fwmark 0x65 lookup 1
32766:  from all lookup main
32767:  from all lookup default
И на выхлопе я везде получил ip 89......

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

Не надо менять на цифры.

Вот это

32764:  from all fwmark 0x66 lookup 2
32765:  from all fwmark 0x65 lookup 1

неправильно. Здесь должны быть названия таблиц вместо 1 и 2

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

А по другому он не даёт их добавить ! вываливает ошибки\


root@cisco:~# ip route add default via 212.48.34.185 dev eth0 table USERS
Error: argument "USERS" is wrong: "table" value is invalid
root@cisco:~# ip rule add fwmark 102 table «USER» 
Error: argument «USER» is wrong: invalid table ID
[\code]

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

Эти таблицы нужно сначала добавить в файл. Я же написал:

Добавляем две строчки в файл /etc/iproute2/rt_tables

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

Я так и делал !!!.. строго по мануалу

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

сделал и так

root@cisco:~# ip ru
0:      from all lookup local
32764:  from all fwmark 0x66 lookup USERS40
32765:  from all fwmark 0x65 lookup USERS
32766:  from all lookup main
32767:  from all lookup default

Finalls
() автор топика
Ответ на: комментарий от Finalls
ip route flush cache

Так как я написал, должно работать. Ну, может быть, где-то с правилами для пометки (--set-mark) накосячил, проверять лень, можешь сам проверить логами. Нужно включить протоколирование этих правил и смотреть как они срабатывают

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

Уважаемый анонимус, не мог бы ты объяснить, почему должна не работать комбинация

ip r a default via 212.38.43.185 dev eth0 src 212.38.43.187 table usr1
ip ru a from 10.0.0.12 lookup usr1
в случае обычного маскарадинга вместо SNAT'а? Весьма заинтересовал этот вопрос, а проверить негде.

Кроме того, не должна ли маркировка производиться в цепочке mangle?

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

не мог бы ты объяснить, почему должна не работать комбинация

А почему она должна не работать? Проверять же надо? Или ты хочешь такое ТС посоветовать? Ну, пусть попробует, второй день же мучается человек, вдруг получится

не должна ли маркировка производиться в цепочке mangle?

Так я в mangle и написал:

iptables -t mangle -A PREROUTING -s 10.0.0.12/32 -i eth1 -j MARK --set-mark 102
iptables -t mangle -A PREROUTING -i eth1 ! -s 10.0.0.12/32 -j MARK --set-mark 101

И только сейчас увидел что TC это в nat записал. Ну, даже и не знаю, я уже утомился одно и то же несколько раз писать. Кстати, все может быть гораздо проще, возможно если сбросить rp_filter, то заработает --to-source без гоняния трафика в таблицы. А может быть и не заработает. ТС в любом случае придется что-то делать с его «основным» адресом (и маршрутом), так что PBR будет нужен

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

Или ты хочешь такое ТС посоветовать?

Я бы посоветовал ему выспаться. ☺

Так я в mangle и написал

Хотя и я невнимателен.

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

Да ошибся с записью. Исправил вот вывод..

root@cisco:~# iptables-save
# Generated by iptables-save v1.4.12 on Thu Aug 15 16:37:00 2013
*mangle
:PREROUTING ACCEPT [26067:24238201]
:INPUT ACCEPT [1313:395935]
:FORWARD ACCEPT [24750:23842046]
:OUTPUT ACCEPT [1366:405017]
:POSTROUTING ACCEPT [25786:24227263]
-A PREROUTING -s 10.0.0.12/32 -i eth1 -j MARK --set-xmark 0x66/0xffffffff
-A PREROUTING ! -s 10.0.0.12/32 -i eth1 -j MARK --set-xmark 0x65/0xffffffff
COMMIT
# Completed on Thu Aug 15 16:37:00 2013
# Generated by iptables-save v1.4.12 on Thu Aug 15 16:37:00 2013
*filter
:INPUT ACCEPT [1234:386505]
:FORWARD ACCEPT [24568:23951304]
:OUTPUT ACCEPT [1439:415202]
-A INPUT -i lo -j ACCEPT
-A FORWARD ! -s 10.0.0.68/32 -o eth0 -p tcp -m tcp --dport 25 -j DROP
COMMIT
# Completed on Thu Aug 15 16:37:00 2013
# Generated by iptables-save v1.4.12 on Thu Aug 15 16:37:00 2013
*nat
:PREROUTING ACCEPT [541:35582]
:INPUT ACCEPT [203:13111]
:OUTPUT ACCEPT [229:16113]
:POSTROUTING ACCEPT [261:19368]
-A PREROUTING -d 212.38.43.188/32 -j DNAT --to-destination 10.0.0.12
-A PREROUTING -i eth1 -p tcp -m multiport --dports 80,8080 -j REDIRECT --to-ports 3128
-A PREROUTING -d 212.38.43.186/32 -p tcp -m tcp --dport 25 -j DNAT --to-destination 10.0.0.68
-A PREROUTING -d 212.38.43.186/32 -p udp -m udp --dport 25 -j DNAT --to-destination 10.0.0.68
-A PREROUTING -d 212.38.43.186/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.0.4
-A PREROUTING -d 212.38.43.186/32 -p tcp -m tcp --dport 443 -j DNAT --to-destination 10.0.0.4
-A PREROUTING -d 212.38.43.186/32 -p udp -m udp --dport 443 -j DNAT --to-destination 10.0.0.4
-A PREROUTING -d 212.38.43.187/32 -j DNAT --to-destination 10.0.0.7
-A INPUT -p tcp -j LOG --log-prefix "input tcp"
-A INPUT -p icmp -j LOG --log-prefix "input icmp"
-A OUTPUT -o eth0 -j LOG
-A POSTROUTING -o eth0 -j LOG
COMMIT
# Completed on Thu Aug 15 16:37:00 2013



root@cisco:~# wget http://www.myip.ru/ru-RU/index.php -q -O - |grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>'
89.175.19.190

Finalls
() автор топика
Ответ на: комментарий от Finalls
-A POSTROUTING -m mark --mark 0x66 -j SNAT --to-source 212.38.43.187
-A POSTROUTING -m mark --mark 0x65 -j SNAT --to-source 212.38.43.186

Эти правила зря из таблицы nat убрал, они на своём месте были. Вот только я уже не успеваю за мыслью. Теперь 10.0.0.12 должен выходить с .188, а 10.0.0.7 с .187?

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

Так это правило и было оно с наружи трафик заворачивает на 10.0.0.7 А 12 должен выходить с 87 наружу !!!

Finalls
() автор топика
Ответ на: комментарий от Finalls
-A POSTROUTING -m mark --mark 0x66 -j SNAT --to-source 212.48.34.187
-A POSTROUTING -m mark --mark 0x65 -j SNAT --to-source 212.48.34.186

вернул на старое место... Без изменений (

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

почитайте здесь - http://sys.dmitrow.com/node/35

Я думаю вам нужно отказаться от линков, интерфейсов типа eth0:1 и т.п. и перейти на использование vlan, и уж тогда с помощью таблиц маршрутизации и vlan-ов рулить через какой интерфейс и с каким адресом должны вылетать пакеты

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