1 |
Или я что-то не так делаю? |
2 |
|
3 |
Anton S. Ustyuzhanin wrote: |
4 |
> Здравствуйте. |
5 |
> |
6 |
> Помогите понять одну вещь. |
7 |
> Дано: 1 комп, у компа есть два интерфейса: |
8 |
> eth0: addr:192.168.7.7 - шлюз установлен 192.168.7.1 |
9 |
> tun0: addr:10.1.0.2 P-t-P:10.1.0.1 |
10 |
> на компе рабоает 2 пользователя: kit и babaz. сейчас они оба ходят в |
11 |
> интернет через 192.168.7.1. |
12 |
> |
13 |
> Надо: Сделать так чтобы kit ходил в инет через 10.1.0.1, а babaz через |
14 |
> 192.168.7.1. |
15 |
> |
16 |
> Решение (как я сделал): |
17 |
> 1. Создать табличку маршрутизации for_kit: |
18 |
> /etc/iproute2/rt_table: |
19 |
> -------------------------- |
20 |
> # |
21 |
> # reserved values |
22 |
> # |
23 |
> 255 local |
24 |
> 254 main |
25 |
> 253 default |
26 |
> 0 unspec |
27 |
> # |
28 |
> # local |
29 |
> # |
30 |
> 1 for_kit |
31 |
> -------------------------- |
32 |
> |
33 |
> 2. С помощью ip route add добавить в for_kit следующие маршруты: |
34 |
> 10.1.0.1 dev tun0 proto kernel scope link src 10.1.0.2 |
35 |
> default via 10.1.0.1 dev tun0 |
36 |
> |
37 |
> 3. Пометить все пакеты от пользователя kit: |
38 |
> iptables -t mangle -A OUTPUT -m owner --uid-owner kit -j MARK --set-mark 0x1 |
39 |
> |
40 |
> 4. Добавить правило маршрутизации: |
41 |
> ip rule add fwmark 0x1 lookup for_kit |
42 |
> |
43 |
> 5. Ожидаемый результат: все должно работать. |
44 |
> |
45 |
> Однако все не работает :) |
46 |
> При снифинге интерфейса tun0 я вижу вот что: |
47 |
> --------------------------------------------- |
48 |
> tshark -i tun0 |
49 |
> Capturing on tun0 |
50 |
> 0.000000 192.168.7.7 -> 94.100.176.20 TCP 59027 > smtp [SYN] Seq=0 |
51 |
> Win=5840 Len=0 MSS=1460 TSV=47371023 TSER=0 WS=7 |
52 |
> 2.997266 192.168.7.7 -> 94.100.176.20 TCP 59027 > smtp [SYN] Seq=0 |
53 |
> Win=5840 Len=0 MSS=1460 TSV=47371923 TSER=0 WS=7 |
54 |
> --------------------------------------------- |
55 |
> Наши пакетики имеют не верный адрес источника. Это конечно же поправимо |
56 |
> правилом: |
57 |
> iptables -t nat -I POSTROUTING 1 -m mark --mark 0x1 -j SNAT --to-source |
58 |
> 10.1.0.2 |
59 |
> |
60 |
> После добавления такого правила все начинает рабоатать. Но не понятно |
61 |
> почему же пакетам назначается не правильный адрес источника? |
62 |
> |