URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 94851
[ Назад ]

Исходное сообщение
"CENTOS 6, ip route, RTNETLINK answers: No such process"

Отправлено doutside , 19-Июл-13 18:58 
Здравствуйте, друзья!

Есть роутер (ip: 10.99.99.100/24).
Прописан статический маршрут в сеть 10.0.0.0/24

netstat -rn:
10.0.0.0        10.99.99.9      255.255.255.0   UG        0 0          0 eth0
10.99.99.0      0.0.0.0         255.255.255.0   U         0 0          0 eth0

Делаю прозрачный прокси на соседней коробке (ip: 10.0.0.5/24).
Вот по этому ману: http://www.tldp.org/HOWTO/TransparentProxy-6.html

Создаю таблицу:
ip rule add fwmark 2 table proxy

Пытаюсь сделать:
ip route add default via 10.0.0.5 dev eth0 table proxy

Получаю ошибку:
RTNETLINK answers: No such process

Нижеследующее, конечно же, работает, так как этот "via" находится в одной сети с роутером.
ip route add default via 10.99.99.5 dev eth0 table proxy

Помогите, пожалуйста, сделать дефолт роутинг помеченных пакетов на айпи из другой сети
(наверное, я правильно сформулировал).

Спасибо заранее!


Содержание

Сообщения в этом обсуждении
"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено LSTemp , 20-Июл-13 23:11 
>[оверквотинг удален]
> Пытаюсь сделать:
> ip route add default via 10.0.0.5 dev eth0 table proxy
> Получаю ошибку:
> RTNETLINK answers: No such process
> Нижеследующее, конечно же, работает, так как этот "via" находится в одной сети
> с роутером.
> ip route add default via 10.99.99.5 dev eth0 table proxy
> Помогите, пожалуйста, сделать дефолт роутинг помеченных пакетов на айпи из другой сети
> (наверное, я правильно сформулировал).
> Спасибо заранее!

кофиги показывай и runtime инфу - телепатов нет.


"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено doutside , 22-Июл-13 12:33 
>[оверквотинг удален]
>> ip route add default via 10.0.0.5 dev eth0 table proxy
>> Получаю ошибку:
>> RTNETLINK answers: No such process
>> Нижеследующее, конечно же, работает, так как этот "via" находится в одной сети
>> с роутером.
>> ip route add default via 10.99.99.5 dev eth0 table proxy
>> Помогите, пожалуйста, сделать дефолт роутинг помеченных пакетов на айпи из другой сети
>> (наверное, я правильно сформулировал).
>> Спасибо заранее!
> кофиги показывай и runtime инфу - телепатов нет.

ок, какие конфиги?
runtime?


"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено pavlinux , 22-Июл-13 00:32 
# cat /proc/net/netlink
# depmod -n | grep netlink

чё говорят?


"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено doutside , 22-Июл-13 12:36 
> # cat /proc/net/netlink
> # depmod -n | grep netlink
> чё говорят?

#cat /proc/net/netlink
sk       Eth Pid    Groups   Rmem     Wmem     Dump     Locks     Drops
f6a0a400 0   0      00000000 0        0        (null) 2        0
c16e5400 0   1639   00000110 0        0        (null) 2        0
f637ae00 6   0      00000000 0        0        (null) 2        0
f6273200 7   0      00000000 0        0        (null) 2        0
f6b31e00 9   1296   00000000 0        0        (null) 2        0
f621f600 9   0      00000000 0        0        (null) 2        0
f600d200 10  0      00000000 0        0        (null) 2        0
f6a8f400 11  0      00000000 0        0        (null) 2        0
f63fbe00 15  541    00000001 0        0        (null) 2        0
f6b31c00 15  -4263  00000000 0        0        (null) 2        0
c15d2c00 15  -4264  00000000 0        0        (null) 2        0
f6a0a200 15  0      00000000 0        0        (null) 2        0
f6aaec00 16  0      00000000 0        0        (null) 2        0
f6aaee00 18  0      00000000 0        0        (null) 2        0

#depmod -n | grep netlink
kernel/net/netfilter/nfnetlink.ko:
kernel/net/netfilter/nfnetlink_queue.ko: kernel/net/netfilter/nfnetlink.ko
kernel/net/netfilter/nfnetlink_log.ko: kernel/net/netfilter/nfnetlink.ko
kernel/net/netfilter/nf_conntrack_netlink.ko: kernel/net/netfilter/nf_conntrack.ko kernel/net/netfilter/nfnetlink.ko
kernel/net/netfilter/xt_set.ko: kernel/net/netfilter/ipset/ip_set.ko kernel/net/netfilter/nfnetlink.ko
kernel/net/netfilter/xt_NFLOG.ko: kernel/net/netfilter/nfnetlink_log.ko kernel/net/netfilter/nfnetlink.ko
kernel/net/netfilter/xt_osf.ko: kernel/net/netfilter/nfnetlink.ko
kernel/net/netfilter/ipset/ip_set.ko: kernel/net/netfilter/nfnetlink.ko
kernel/net/netfilter/ipset/ip_set_bitmap_ip.ko: kernel/net/netfilter/ipset/ip_set.ko kernel/net/netfilter/nfnetlink.ko
kernel/net/netfilter/ipset/ip_set_bitmap_ipmac.ko: kernel/net/netfilter/ipset/ip_set.ko kernel/net/netfilter/nfnetlink.ko
kernel/net/netfilter/ipset/ip_set_bitmap_port.ko: kernel/net/netfilter/ipset/ip_set.ko kernel/net/netfilter/nfnetlink.ko
kernel/net/netfilter/ipset/ip_set_hash_ip.ko: kernel/net/netfilter/ipset/ip_set.ko kernel/net/netfilter/nfnetlink.ko
kernel/net/netfilter/ipset/ip_set_hash_ipport.ko: kernel/net/netfilter/ipset/ip_set.ko kernel/net/netfilter/nfnetlink.ko
kernel/net/netfilter/ipset/ip_set_hash_ipportip.ko: kernel/net/netfilter/ipset/ip_set.ko kernel/net/netfilter/nfnetlink.ko
kernel/net/netfilter/ipset/ip_set_hash_ipportnet.ko: kernel/net/netfilter/ipset/ip_set.ko kernel/net/netfilter/nfnetlink.ko
kernel/net/netfilter/ipset/ip_set_hash_net.ko: kernel/net/netfilter/ipset/ip_set.ko kernel/net/netfilter/nfnetlink.ko
kernel/net/netfilter/ipset/ip_set_hash_netport.ko: kernel/net/netfilter/ipset/ip_set.ko kernel/net/netfilter/nfnetlink.ko
kernel/net/netfilter/ipset/ip_set_list_set.ko: kernel/net/netfilter/ipset/ip_set.ko kernel/net/netfilter/nfnetlink.ko
alias net-pf-16-proto-12 nfnetlink
alias nfnetlink-subsys-3 nfnetlink_queue
alias nfnetlink-subsys-4 nfnetlink_log
alias nfnetlink-subsys-2 nf_conntrack_netlink
alias nfnetlink-subsys-1 nf_conntrack_netlink
alias ip_conntrack_netlink nf_conntrack_netlink
alias nfnetlink-subsys-5 xt_osf
alias nfnetlink-subsys-6 ip_set
alias symbol:nfnetlink_parse_nat_setup_hook nf_conntrack
alias symbol:nfulnl_log_packet nfnetlink_log
alias symbol:nfnetlink_unicast nfnetlink
alias symbol:nfnetlink_subsys_register nfnetlink
alias symbol:nfnetlink_set_err nfnetlink
alias symbol:nfnl_unlock nfnetlink
alias symbol:nfnetlink_send nfnetlink
alias symbol:nfnl_lock nfnetlink
alias symbol:nfnetlink_subsys_unregister nfnetlink
alias symbol:nfnetlink_has_listeners nfnetlink


"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено izyk , 22-Июл-13 01:29 
Наверное:
ip route add to 10.99.99.0/24 dev eth0 table proxy
ip route add to 10.0.0.0/24 via 10.99.99.9 dev eth0 table proxy
ip route add default via 10.0.0.5 dev eth0 table proxy

А вообще-то, "default", должен быть в той-же самой сети, по определению.


"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено doutside , 22-Июл-13 12:45 
> Наверное:
> ip route add to 10.99.99.0/24 dev eth0 table proxy
> ip route add to 10.0.0.0/24 via 10.99.99.9 dev eth0 table proxy
> ip route add default via 10.0.0.5 dev eth0 table proxy
> А вообще-то, "default", должен быть в той-же самой сети, по определению.

К сожалению, опять не сработало:
#ip route add to 10.99.99.0/24 dev eth0 table proxy
#ip route add to 10.0.0.0/24 via 10.99.99.9 dev eth0 table proxy
#ip route add default via 10.0.0.5 dev eth0 table proxy
RTNETLINK answers: No such process


"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено doutside , 24-Июл-13 21:06 
> А вообще-то, "default", должен быть в той-же самой сети, по определению.

Ок!

Переделал сетевые настройки карточки роутера на 10.99.99.100/8 (чтобы 10.0.0.5 оказался в той же сети).

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
UUID=4021d250-a1d3-4421-8258-7265f9c4b5d3
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPV6INIT=no
USERCTL=no
IPADDR=10.99.99.100
NETMASK=255.0.0.0

#ip route
8x.xx.xx.0/25 dev eth1  proto kernel  scope link  src 8x.xx.xx.xx
10.0.0.0/24 via 10.99.99.9 dev eth0
169.254.0.0/16 dev eth0  scope link  metric 1002
169.254.0.0/16 dev eth1  scope link  metric 1003
10.0.0.0/8 dev eth0  proto kernel  scope link  src 10.99.99.100
default via 85.xx.xx.xx dev eth1

# ip rule
0:      from all lookup local
32765:  from all fwmark 0x2 lookup proxy
32766:  from all lookup main
32767:  from all lookup default

# ip route show table proxy
10.0.0.0/24 via 10.99.99.9 dev eth0
10.99.99.0/24 dev eth0  scope link
default via 10.0.0.5 dev eth0

То есть, маршрут вписался, однако пакеты на 10.0.0.5 из этой таблицы уходят с интерфейса не via 10.99.99.9, а просто выпихиваются наружу (подключил в хаб к 10.10.10.100 машину с ip 10.0.0.5 и tcpdump'ом увидел пакеты).

При этом, из шелла пинг на 10.0.0.5 ходит правильным маршрутом.

Что ж делать-то?


"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено pavlinux , 24-Июл-13 22:32 
> Что ж делать-то?

Картинку структуры сети нарисуй, нифига ж непонятно, чё и куда пытаешься отправить!

вот тут какая-то жопа.

10.0.0.0/24 via 10.99.99.9 dev eth0
10.0.0.0/8 dev eth0  proto kernel  scope link  src 10.99.99.100


"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено doutside , 25-Июл-13 14:20 
>> Что ж делать-то?
> Картинку структуры сети нарисуй, нифига ж непонятно, чё и куда пытаешься отправить!
> вот тут какая-то жопа.
> 10.0.0.0/24 via 10.99.99.9 dev eth0
> 10.0.0.0/8 dev eth0  proto kernel  scope link  src 10.99.99.100

Картинка по ссылке. Полупрозрачный комп - это тот, который я подключал для теста.

http://leprastuff.ru/data/img/20130725/4e464bcd38048b1134437...


"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено doutside , 25-Июл-13 14:17 
>[оверквотинг удален]
> 32767:  from all lookup default
> # ip route show table proxy
> 10.0.0.0/24 via 10.99.99.9 dev eth0
> 10.99.99.0/24 dev eth0  scope link
> default via 10.0.0.5 dev eth0
> То есть, маршрут вписался, однако пакеты на 10.0.0.5 из этой таблицы уходят
> с интерфейса не via 10.99.99.9, а просто выпихиваются наружу (подключил в
> хаб к 10.10.10.100 машину с ip 10.0.0.5 и tcpdump'ом увидел пакеты).
> При этом, из шелла пинг на 10.0.0.5 ходит правильным маршрутом.
> Что ж делать-то?

Поправка:
(подключил в хаб к 10.99.99.100 машину с ip 10.0.0.5 и tcpdump'ом увидел пакеты)


"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено reader , 25-Июл-13 15:08 
>[оверквотинг удален]
>> 10.99.99.0/24 dev eth0  scope link
>> default via 10.0.0.5 dev eth0
>> То есть, маршрут вписался, однако пакеты на 10.0.0.5 из этой таблицы уходят
>> с интерфейса не via 10.99.99.9, а просто выпихиваются наружу (подключил в
>> хаб к 10.10.10.100 машину с ip 10.0.0.5 и tcpdump'ом увидел пакеты).
>> При этом, из шелла пинг на 10.0.0.5 ходит правильным маршрутом.
>> Что ж делать-то?
> Поправка:
> (подключил в хаб к 10.99.99.100 машину с ip 10.0.0.5 и tcpdump'ом увидел
> пакеты)

маркируете только в PREROUTING? если да, то из шелла пакеты не будут маркироваться и в table proxy не попадут, тогда по идее если уберете маркировку то пакет к 10.0.0.5 пойдет правильно.
если это верно, то проблема в table proxy

пробовали в table proxy
10.99.99.0/24 dev eth0  scope link изменить на
10.99.99.0/8 dev eth0  scope link


"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено doutside , 25-Июл-13 15:23 
>[оверквотинг удален]
>>> default via 10.0.0.5 dev eth0
>>> То есть, маршрут вписался, однако пакеты на 10.0.0.5 из этой таблицы уходят
>>> с интерфейса не via 10.99.99.9, а просто выпихиваются наружу (подключил в
>>> хаб к 10.10.10.100 машину с ip 10.0.0.5 и tcpdump'ом увидел пакеты).
>>> При этом, из шелла пинг на 10.0.0.5 ходит правильным маршрутом.
>>> Что ж делать-то?
>> Поправка:
>> (подключил в хаб к 10.99.99.100 машину с ip 10.0.0.5 и tcpdump'ом увидел
>> пакеты)
> маркируете только в PREROUTING?

Да, конечно. В POSTROUTING их маркировать уже нет смысла. Я делаю прозраный прокси и мне нужно, что бы с роутера покеты уходили на прокси, а не в интернет.

#port forward for SQUID
#$Ipt -t nat -A PREROUTING -p tcp -s 10.0.0.6 -i $INT_IFACE --dport 80 -j MARK --set-mark 2
#echo "nat21"; $Ipt -t mangle -A PREROUTING -m mark --mark 2 -j ACCEPT


> если да, то из шелла пакеты не будут
> маркироваться и в table proxy не попадут, тогда по идее если
> уберете маркировку то пакет к 10.0.0.5 пойдет правильно.

Все верно! Так и есть.

> если это верно, то проблема в table proxy
> пробовали в table proxy
> 10.99.99.0/24 dev eth0  scope link изменить на
> 10.99.99.0/8 dev eth0  scope link

Попробовал только что, неуспешно:
# ip route del 10.99.99.0/24 dev eth0 table proxy
# ip route add 10.99.99.0/8 dev eth0 scope link table proxy
RTNETLINK answers: Invalid argument



"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено reader , 25-Июл-13 16:38 
>[оверквотинг удален]
>>> пакеты)
>> маркируете только в PREROUTING?
> Да, конечно. В POSTROUTING их маркировать уже нет смысла. Я делаю прозраный
> прокси и мне нужно, что бы с роутера покеты уходили на
> прокси, а не в интернет.
> #port forward for SQUID
> #$Ipt -t nat -A PREROUTING -p tcp -s 10.0.0.6 -i $INT_IFACE --dport
> 80 -j MARK --set-mark 2
> #echo "nat21"; $Ipt -t mangle -A PREROUTING -m mark --mark 2 -j
> ACCEPT

может все таки через dnat сделать, а то вить еще и на 10.99.99.9 как то эти пакеты выщимлять придется, про ответные пакеты на прямую - это в обоих случаях.

>[оверквотинг удален]
>> уберете маркировку то пакет к 10.0.0.5 пойдет правильно.
> Все верно! Так и есть.
>> если это верно, то проблема в table proxy
>> пробовали в table proxy
>> 10.99.99.0/24 dev eth0  scope link изменить на
>> 10.99.99.0/8 dev eth0  scope link
> Попробовал только что, неуспешно:
> # ip route del 10.99.99.0/24 dev eth0 table proxy
> # ip route add 10.99.99.0/8 dev eth0 scope link table proxy
> RTNETLINK answers: Invalid argument

теоретически маршрут по умолчанию из другой подсети прописать можно, но учитывая что при этом передача идет по mac-адресу и ip не трогается, а у вас 10.0.0.5 отделен от 10.99.99.100, то придется еще и на 10.99.99.9 что то городить.


"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено doutside , 25-Июл-13 16:46 
>[оверквотинг удален]
>> прокси и мне нужно, что бы с роутера покеты уходили на
>> прокси, а не в интернет.
>> #port forward for SQUID
>> #$Ipt -t nat -A PREROUTING -p tcp -s 10.0.0.6 -i $INT_IFACE --dport
>> 80 -j MARK --set-mark 2
>> #echo "nat21"; $Ipt -t mangle -A PREROUTING -m mark --mark 2 -j
>> ACCEPT
> может все таки через dnat сделать, а то вить еще и на
> 10.99.99.9 как то эти пакеты выщимлять придется, про ответные пакеты на
> прямую - это в обоих случаях.

С DNAT'ом у меня не срослось - пакеты до прокси доходят, но она (прокси) их не обрабатывает. А все маны для сквида 2.4, где еще httpd_accel было.
Еще мне не понравилась оговорка, что вариант с DNAT не работает в "экзотических" случаях, а еще что-то про http/1.1
Хотя, это, определенно, решение проблемы.


>[оверквотинг удален]
>>> 10.99.99.0/24 dev eth0  scope link изменить на
>>> 10.99.99.0/8 dev eth0  scope link
>> Попробовал только что, неуспешно:
>> # ip route del 10.99.99.0/24 dev eth0 table proxy
>> # ip route add 10.99.99.0/8 dev eth0 scope link table proxy
>> RTNETLINK answers: Invalid argument
> теоретически маршрут по умолчанию из другой подсети прописать можно, но учитывая что
> при этом передача идет по mac-адресу и ip не трогается, а
> у вас 10.0.0.5 отделен от 10.99.99.100, то придется еще и на
> 10.99.99.9 что то городить.

Ой, тут не совсем понял, что имелось ввиду)


"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено reader , 25-Июл-13 17:09 
>[оверквотинг удален]
>>>> 10.99.99.0/8 dev eth0  scope link
>>> Попробовал только что, неуспешно:
>>> # ip route del 10.99.99.0/24 dev eth0 table proxy
>>> # ip route add 10.99.99.0/8 dev eth0 scope link table proxy
>>> RTNETLINK answers: Invalid argument
>> теоретически маршрут по умолчанию из другой подсети прописать можно, но учитывая что
>> при этом передача идет по mac-адресу и ip не трогается, а
>> у вас 10.0.0.5 отделен от 10.99.99.100, то придется еще и на
>> 10.99.99.9 что то городить.
> Ой, тут не совсем понял, что имелось ввиду)

10.99.99.9 физически разделяет 10.99.99.100 и 10.0.0.5?

10.0.0.5 - mac 1:2:3
10.99.99.9 - mac 4:5:6

10.99.99.100 допустим догадывается что шлюз по умолчанию за 10.99.99.9 и пересылает пакет на mac 4:5:6 , как 10.99.99.9 поймет что это пакет нужно переслать на mac 1:2:3, ip 10.0.0.5 вить в пакете не фигурирует ?


"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено doutside , 25-Июл-13 17:20 
>[оверквотинг удален]
>>>> Попробовал только что, неуспешно:
>>>> # ip route del 10.99.99.0/24 dev eth0 table proxy
>>>> # ip route add 10.99.99.0/8 dev eth0 scope link table proxy
>>>> RTNETLINK answers: Invalid argument
>>> теоретически маршрут по умолчанию из другой подсети прописать можно, но учитывая что
>>> при этом передача идет по mac-адресу и ip не трогается, а
>>> у вас 10.0.0.5 отделен от 10.99.99.100, то придется еще и на
>>> 10.99.99.9 что то городить.
>> Ой, тут не совсем понял, что имелось ввиду)
> 10.99.99.9 физически разделяет 10.99.99.100 и 10.0.0.5?

Ага.

> 10.0.0.5 - mac 1:2:3
> 10.99.99.9 - mac 4:5:6
> 10.99.99.100 допустим догадывается что шлюз по умолчанию за 10.99.99.9 и пересылает   пакет
> на mac 4:5:6 , как 10.99.99.9 поймет что это пакет нужно
> переслать на mac 1:2:3, ip 10.0.0.5 вить в пакете не фигурирует
> ?

Кажется, понял. Да, работать по макам - это не наш путь.
Может у вас есть успешный опыт настройки прозрачного прокси (squid-3.1) на отдельной от роутера коробке при помощи DNAT? Буду весьма признателен.


"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено reader , 25-Июл-13 17:42 
>[оверквотинг удален]
> Ага.
>> 10.0.0.5 - mac 1:2:3
>> 10.99.99.9 - mac 4:5:6
>> 10.99.99.100 допустим догадывается что шлюз по умолчанию за 10.99.99.9 и пересылает   пакет
>> на mac 4:5:6 , как 10.99.99.9 поймет что это пакет нужно
>> переслать на mac 1:2:3, ip 10.0.0.5 вить в пакете не фигурирует
>> ?
> Кажется, понял. Да, работать по макам - это не наш путь.
> Может у вас есть успешный опыт настройки прозрачного прокси (squid-3.1) на отдельной
> от роутера коробке при помощи DNAT? Буду весьма признателен.

есть.

для начала определитесь нужно ли что бы ip прокси был из той же подсети что и клиент , если да то на коробке придется еще и snat для заворачиваемых пакетов делать для правильного хождения ответов, но при этом в логах прокси будет ip роутера, а не клиента


"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено doutside , 25-Июл-13 17:51 
>[оверквотинг удален]
>>> ?
>> Кажется, понял. Да, работать по макам - это не наш путь.
>> Может у вас есть успешный опыт настройки прозрачного прокси (squid-3.1) на отдельной
>> от роутера коробке при помощи DNAT? Буду весьма признателен.
> есть.
> для начала определитесь нужно ли что бы ip прокси был из той
> же подсети что и клиент , если да то на коробке
> придется еще и snat для заворачиваемых пакетов делать для правильного хождения
> ответов, но при этом в логах прокси будет ip роутера, а
> не клиента

Клиент, прокси и роутер будут в разных сетях. Соответственно, для примера:

10.0.1.10/24 - клиент
10.0.0.5/24 - прокси
10.99.99.100/24 - роутер.

Если же в этом случае в логах прокси будут ip только роутера - тогда этот вариант не годится.

У меня всегда остается вариант поставить прокси в ту же сеть, что и роутер. Не очень желательно (придется менять архтектуру со всеми вытекающими), но как вариант.


"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено ALex_hha , 25-Июл-13 17:44 
> Может у вас есть успешный опыт настройки прозрачного прокси (squid-3.1) на отдельной
> от роутера коробке при помощи DNAT? Буду весьма признателен.

а в чем собственно проблема?


"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено doutside , 25-Июл-13 18:12 
>> Может у вас есть успешный опыт настройки прозрачного прокси (squid-3.1) на отдельной
>> от роутера коробке при помощи DNAT? Буду весьма признателен.
> а в чем собственно проблема?

делал вот так:

iptables -t nat -A PREROUTING -i eth0 ! -s squid-box -p tcp --dport 80 -j DNAT --to squid-box:3128

Пакет до прокси доходит, я вижу его tcpdump'ом. Но дальше ничего не происходит.

а когда вот так делаю:
iptables -t nat -A PREROUTING -i eth0 ! -s squid-box -p tcp --dport 80 -j DNAT --to squid-box:3128
iptables -t nat -A POSTROUTING -o eth0 -s local-network -d squid-box -j SNAT --to iptables-box

Пакет до прокси не доходит вообще, хотя выходят из роутера (видно tcpdump'ом). Наверное, из-за особенностей моей топологии.
Еще раз картинка:

http://leprastuff.ru/data/img/20130725/4e464bcd38048b1134437...


На всякий случай, конфиг прокси:

# cat /etc/squid/squid.conf


visible_hostname domain.local
#
# Recommended minimum configuration:
#
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32

# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
acl localnet src 10.0.0.0/8     # RFC1918 possible internal network
#acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
#acl localnet src 192.168.0.0/16        # RFC1918 possible internal network
#acl localnet src fc00::/7       # RFC 4193 local private network range
#acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines

acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT

#
# Recommended minimum Access Permission configuration:
#
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager

# Deny requests to certain unsafe ports
http_access deny !Safe_ports

# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports

# We strongly recommend the following be uncommented to protect innocent
# web applications running on the proxy server who think the only
# one who can access services on "localhost" is a local user
#http_access deny to_localhost

#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#

# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
http_access allow localnet
http_access allow localhost

# And finally deny all other access to this proxy
http_access deny all

# Squid normally listens to port 3128
http_port 3128 transparent

# We recommend you to use at least the following line.
hierarchy_stoplist cgi-bin ?

# Uncomment and adjust the following to add a disk cache directory.
#cache_dir ufs /var/spool/squid 100 16 256

# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid

# Add any of your own refresh_pattern entries above these.
refresh_pattern ^ftp:         &n... 1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320

cache deny all
no_cache deny all


"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено reader , 25-Июл-13 19:50 
>>> Может у вас есть успешный опыт настройки прозрачного прокси (squid-3.1) на отдельной
>>> от роутера коробке при помощи DNAT? Буду весьма признателен.
>> а в чем собственно проблема?
> делал вот так:
> iptables -t nat -A PREROUTING -i eth0 ! -s squid-box -p tcp
> --dport 80 -j DNAT --to squid-box:3128

tcpdump ответные пакеты показывал?
логи прокси смотрели?
прокси запустился и netstat видит что он слушает порт 3128?
были обращения клиентов в логах?

если клиенты тоже идут через 10.0.0.1/10.99.99.9 , то возможно ответ доходил до этого роутера и дальше шел клиенту, не дойдя до 10.99.99.100 и не пройдя обратного преобразования на nat

> Пакет до прокси доходит, я вижу его tcpdump'ом. Но дальше ничего не
> происходит.
> а когда вот так делаю:
> iptables -t nat -A PREROUTING -i eth0 ! -s squid-box -p tcp
> --dport 80 -j DNAT --to squid-box:3128
> iptables -t nat -A POSTROUTING -o eth0 -s local-network -d squid-box -j
> SNAT --to iptables-box
> Пакет до прокси не доходит вообще, хотя выходят из роутера (видно tcpdump'ом).

тогда смотреть настройки на 10.0.0.1/10.99.99.9

> Наверное, из-за особенностей моей топологии.
> Еще раз картинка:
> http://leprastuff.ru/data/img/20130725/4e464bcd38048b1134437...

10.0.0.1/10.99.99.9 может организовать логическую подсеть между 10.99.99.100 и прокси?

>[оверквотинг удален]
> 1440    20%     10080
> refresh_pattern ^gopher:        1440  
>  0%      1440
> refresh_pattern -i (/cgi-bin/|\?) 0     0%    
>   0
> refresh_pattern .          
>     0      
> 20%     4320
> cache deny all
> no_cache deny all


"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено doutside , 25-Июл-13 20:28 
Итак, я нашел у себя ошибку в схеме с DNAT'ом и схема заработала! Я в SNAT'e неправильно прописал последний ip.

$Ipt  -t nat -A PREROUTING -i eth0 ! -s $proxy -p tcp --dport 80 -j DNAT --to 10.0.0.5:3128
$Ipt -t nat -A POSTROUTING -o eth0 -s $int_net -d 10.0.0.5 -j SNAT --to 10.99.99.100

Верно ваше утверждение, что без SNATa, обратные пакеты не пройдут через 10.99.99.100. Тестовая машина тоже в сети 10.0.0.0/24. Ответ идет напрямую и ничего путного не получается.
Финита ля комедиа.

Спасибо вам большое, вы меня в правильную сторону развернули вопросами)

Тем не менее, моя задача не решена, поскольку на прокси сервере теперь нельзя дифференцировать запросы по айпи (все они приходят с роутера, естественно). Поэтому, придется работать через fwmark. А ввиду всей дискуссии выше, я понял, что роутер и прокси должны находиться в одной сети.


> 10.0.0.1/10.99.99.9 может организовать логическую подсеть между 10.99.99.100 и прокси?

Я к сожалению, не владею терминологией. Что имеется ввиду?


Спасибо вам за уделенное мне время!


"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено reader , 26-Июл-13 10:10 
>[оверквотинг удален]
> Тестовая машина тоже в сети 10.0.0.0/24. Ответ идет напрямую и ничего
> путного не получается.
> Финита ля комедиа.
> Спасибо вам большое, вы меня в правильную сторону развернули вопросами)
> Тем не менее, моя задача не решена, поскольку на прокси сервере теперь
> нельзя дифференцировать запросы по айпи (все они приходят с роутера, естественно).
> Поэтому, придется работать через fwmark. А ввиду всей дискуссии выше, я
> понял, что роутер и прокси должны находиться в одной сети.
>> 10.0.0.1/10.99.99.9 может организовать логическую подсеть между 10.99.99.100 и прокси?
> Я к сожалению, не владею терминологией. Что имеется ввиду?

vlan, bridge если можно прокси воткнуть в отдельный интерфейс

> Спасибо вам за уделенное мне время!


"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено doutside , 26-Июл-13 10:21 
>>> 10.0.0.1/10.99.99.9 может организовать логическую подсеть между 10.99.99.100 и прокси?
>> Я к сожалению, не владею терминологией. Что имеется ввиду?
> vlan, bridge если можно прокси воткнуть в отдельный интерфейс

Понял вас. Что-то подобное я и сделаю. Но это уже за пределами топика.
Еще раз спасибо!


"CENTOS 6, ip route, RTNETLINK answers: No such process"
Отправлено izyk , 26-Июл-13 14:23 

> А ввиду всей дискуссии выше, я
> понял, что роутер и прокси должны находиться в одной сети.

Нет, могут и в разных, но на разных интерфейсах - eth{0,1}, тогда если
все с маршрутами верно(на обоих устройствах) SNAT не нужен.

Если честно можно и вашу схему, реализовать c помощью alias -
eth0 - 10.99.99.100/24 eth0:1 - 10.0.0.2/24, но не советую,
гонять туда-сюда по одному проводу, одни и теже пакеты,
как минимум два раза, плохая затея, на уровне МАС адресов будет чехорда и плохо
уловимые ошибки.