1 |
Все равно не правильно работает. |
2 |
Пакеты не попадают в нужную таблицу маршрутизации. Не могу разобраться |
3 |
что происходит. |
4 |
Узнал об этом так: |
5 |
|
6 |
1. Пометил все пакеты от пользователя user в iptables: |
7 |
iptables -t mangle -A OUTPUT -m owner --uid-owner user -j MARK |
8 |
--set-mark 0x1 |
9 |
|
10 |
2. Добавил в табличку маршрутизации 'adsl' default route через одного |
11 |
провайдера: |
12 |
ip ro add default via 10.1.0.1 ta adsl |
13 |
|
14 |
3. Добавил в табличку маршрутизации 'knet' default route через другого |
15 |
провайдера: |
16 |
ip ro add default via 192.168.7.1 ta knet |
17 |
|
18 |
4. Удалил из таблички 'main' default route: |
19 |
ip ro del default ta main |
20 |
|
21 |
5. Привел ip ru sh к такому виду: |
22 |
0: from all lookup local |
23 |
10: from all lookup main |
24 |
32764: from all fwmark 0x1 lookup adsl |
25 |
32765: from all lookup knet |
26 |
32766: from all lookup main |
27 |
32767: from all lookup default |
28 |
|
29 |
Сейчас у всех кроме пользователя user есть интернет. А я хочу чтобы у |
30 |
всех был интернет через 192.168.7.1, а у user через 10.1.0.1. |
31 |
|
32 |
Вот что есть в табличках main, adsl и knet: |
33 |
|
34 |
cafe ~ # ip ro sh ta main |
35 |
192.168.7.0/24 dev eth0 proto kernel scope link src 192.168.7.7 |
36 |
192.168.50.0/24 dev eth1 proto kernel scope link src 192.168.50.1 |
37 |
10.1.0.0/24 dev tap0 proto kernel scope link src 10.1.0.2 |
38 |
127.0.0.0/8 dev lo scope link |
39 |
|
40 |
cafe ~ # ip ro sh ta adsl |
41 |
default via 10.1.0.1 dev tap0 |
42 |
|
43 |
cafe ~ # ip ro sh ta knet |
44 |
default via 192.168.7.1 dev eth0 |
45 |
|
46 |
|
47 |
|
48 |
Вот что показывает сниффер на tap0, когда я от имени user выполняю |
49 |
соединение с каким-нибудь компом из инета |
50 |
(я делаю user@cafe ~ $ telnet 94.100.176.20 25): |
51 |
|
52 |
Это когда в arp нет информации о 10.1.0.1 |
53 |
---------------------------------------------------------------- |
54 |
cafe ~ # tshark -i tap0 |
55 |
Running as user "root" and group "root". This could be dangerous. |
56 |
Capturing on tap0 |
57 |
0.000000 00:ff:28:82:a1:ac -> Broadcast ARP Who has 10.1.0.1? Tell |
58 |
192.168.7.7 |
59 |
0.999483 00:ff:28:82:a1:ac -> Broadcast ARP Who has 10.1.0.1? Tell |
60 |
192.168.7.7 |
61 |
1.999155 00:ff:28:82:a1:ac -> Broadcast ARP Who has 10.1.0.1? Tell |
62 |
192.168.7.7 |
63 |
---------------------------------------------------------------- |
64 |
|
65 |
А это когда есть: |
66 |
---------------------------------------------------------------- |
67 |
cafe ~ # tshark -i tap0 |
68 |
Running as user "root" and group "root". This could be dangerous. |
69 |
Capturing on tap0 |
70 |
0.000000 192.168.7.7 -> 94.100.176.20 TCP 51318 > smtp [SYN] Seq=0 |
71 |
Win=5840 Len=0 MSS=1460 TSV=57466008 TSER=0 WS=7 |
72 |
3.000071 192.168.7.7 -> 94.100.176.20 TCP 51318 > smtp [SYN] Seq=0 |
73 |
Win=5840 Len=0 MSS=1460 TSV=57466909 TSER=0 WS=7 |
74 |
4.996708 00:ff:28:82:a1:ac -> 00:ff:79:83:6b:e4 ARP Who has 10.1.0.1? |
75 |
Tell 10.1.0.2 |
76 |
4.997122 00:ff:79:83:6b:e4 -> 00:ff:28:82:a1:ac ARP 10.1.0.1 is at |
77 |
00:ff:79:83:6b:e4 |
78 |
9.003380 192.168.7.7 -> 94.100.176.20 TCP 51318 > smtp [SYN] Seq=0 |
79 |
Win=5840 Len=0 MSS=1460 TSV=57468709 TSER=0 WS=7 |
80 |
21.000047 192.168.7.7 -> 94.100.176.20 TCP 51318 > smtp [SYN] Seq=0 |
81 |
Win=5840 Len=0 MSS=1460 TSV=57472309 TSER=0 WS=7 |
82 |
---------------------------------------------------------------- |
83 |
|
84 |
Как видно, пакеты посланные user'ом попадают в tap0, но адрес источника |
85 |
почемуто стоит 192.168.7.7. При этом сниффер запущенный на eth0 вот так: |
86 |
tshark -i eth0 host 94.100.176.20 вообще молчит. |
87 |
|
88 |
Если из таблички knet удалить default route, то интернет пропадает у |
89 |
всех, включая user'а. |
90 |
Что я делаю не так? |
91 |
Спасибо. Пожалуйста. Ок. |