Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

lug-bg: Рутинг одисея.


  • Subject: lug-bg: Рутинг одисея.
  • From: Daniel Ivanov <sertys@xxxxxxxxxxxxxx>
  • Date: Tue, 29 Nov 2005 18:25:15 +0200
  • Delivered-to: lug-bg-list@xxxxxxxxxxxxxxxxxx
  • Delivered-to: lug-bg@xxxxxxxxxxxxxxxxxx

Здрасти на сички земеделци. По същество:

клиентска мрежа -> рутер -> интернет (етх1 е вътрешен / етх3 външен итерфейс)
Всичко  ток и жици. Просто и работещо.
Сега обаче трябва да си добавя squid-а във веригата.
Тъй като ТРЯБВА да си запазя марките на пакети, защото са ми важни за traversal-а, не ползвам policy routing, а също и че мястото където решавам какъв трафик да отиде до squid-а е POSTROUTING веригата на mangle таблицата, което обезмисля слагането на марки(от опити го пиша). Както и да е. Слагам forced route с помощта на -j ROUTE (част от pom-ng) и пакетите, които искам отиват до прокси машината. Там има редирект, който праща сичко към локален сокет. Заявка минава, SYN отива, ACK се връща ,стига до рутер И НЕ НАПУСКА ИНТЕРФЕЙСА. Което е удивително.
tcpdump показва, че минава нещо от сорта на :
x.x.x.x : 80 -> 192.168.x.x : spt
на вътрешния интерфейс, но до клиентската машина така или иначе НЕ СТИГА.
Когато пакета се върне директно към клиента(все пак са в една и съща физическа мрежа), то той пристига успешно.Това обаче е безмислено, тъй като трябва да се шейпи.

Опитах следните варианти :
client -> eth1 -> proxy(eth0 on router) -> internet -> proxy -> router(eth1)
client -> eth1 -> proxy(eth1 on router) -> internet ->proxy -> router(eth1)

Истината е че играейки си с iptables не виждам ако сложа правило от сорта на iptables -t mangle -I POSTROUTING -p tcp --dport 80 -s internet.host -j ACCEPT
да се покачват броячите.

ако сложа същото правило в PREROUTING обаче, пакети удрят правилото.
Знам, че traversal-a е така :
mangle PREROUTING
nat PREROUTING
input FORWARD
mangle FORWARD
mangle POSTROUTING
nat POSTROUTING

Това е прекрасно, но root@roller:/home/httpd# iptables -t mangle -L PREROUTING
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
valid_macs  all  --  anywhere             anywhere

root@roller:/home/httpd# iptables -t mangle -L valid_macs
Chain valid_macs (1 references)
target     prot opt source               destination
DSCP all -- localnet/16 anywhere !set macs1 src DSCP set 0x0a DSCP all -- 212.72.216.0/24 anywhere !set macs3 src DSCP set 0x0a DSCP all -- 213.91.223.128/25 anywhere !set macs2 src DSCP set 0x0a

Нищо необикновено. Просто се слага DSCP стойност на пакети.

Няма правило или policy , което да спре пакета от травърсал.


Ето един tcpdump :
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes 18:19:53.670460 IP (tos 0x0, ttl 128, id 54945, offset 0, flags [DF], proto: TCP (6), length: 48) 192.168.10.2.3784 > 61.74.68.182.80: S, cksum 0x6ef4 (correct), 3511086128:3511086128(0) win 64240 <mss 1460,nop,nop,sackOK> 18:19:53.670518 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto: TCP (6), length: 48) 61.74.68.182.80 > 192.168.10.2.3784: S, cksum 0x66c6 (correct), 2500745007:2500745007(0) ack 3511086129 win 5840 <mss 1460,nop,nop,sackOK> 18:19:55.052399 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto: TCP (6), length: 48) 61.74.68.182.80 > 192.168.10.2.3780: S, cksum 0x8fa8 (correct), 2441684349:2441684349(0) ack 3499751735 win 5840 <mss 1460,nop,nop,sackOK>

Вижда се, че пакетите би следвало да стигнат до машината, но те просто не стигат(потвърдено с ethereal).

Дайте ми сламка, за която да се хвана.






 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.