>
> Hi!
>
> >> Так цель моего документа - просто задокументировать это. А то поиск в
> >> FAQ/dejanews/altavista/rambler/UGU/доках на ipfilter не дал _ничего_
> >> работоспособного. Задокументировали бы и положили в "отстойник" - о чем
> >> собственно я речь и веду.
> ier> Отличная идея,но боюсь не жизнеспособная - по причине опять же всеобщей
> ier> ленности. :)
> Вот мы и посмотрим. Но вообще, отечественная привычка не документировать то что
> сделано бъет по самим же сисадминам. Как доктор вам говорю :)
>
> >> Так тут более-менее понятно что делать. Заворачивать icmp 'packet too
> >> big' на ту же машину, где работает proxy, скармливать их там программе,
> >> которая будет делать NAT lookup и соответственно принимать во внимание
> >> или отсылать дальше по роутингу (если через ту же Cisco, то нужно тогда
> >> подменять source addr у этого icmp на fake и для fake-адресов не делать
> >> policy routing).
> ier> Можно ли взглянуть на src ?
> Хм. Я не знаю, насколько "разглашаемо" то, что мне присылал Ярослав Тихий
> <yar@comp.chem.msu.su>, лучше переспросите у него (блин, работа с американцами
> дает о себе знать - все про что не знаешь, сразу считаешь non-disclosure).
>
> А в общих чертах в RadioMSU все устроено так - все icmp 'too big', кроме идущих
> с fake addr заворачиваются на машину с natd. Natd _сам_ и без каких-либо правок
> находит там свои пакеты (это встроенная фича), остаток работы - подменить
> source address у всех остальных icmp-пакетов на fake и отослать обратно.
> Примерно 20 строчек кода. На что тут, собственно, смотреть.
>
>
> BTW, вторые возможные грабли, о которых писал Илья - это то, что стандартный
> Squid без заголовка Host: работать не будет. Это лечится моим патчем,
> подключающим к Squid'у NAT lookup.
The CURE :)
--- squid-1.1.18.orig/src/icp.c Thu Oct 9 02:18:29 1997
+++ squid-1.1.18/src/icp.c Wed Oct 29 01:31:36 1997
@@ -1654,16 +1654,7 @@
/* see if we running in httpd_accel_mode, if so got to convert it to URL */
if (httpd_accel_mode && *url == '/') {
/* prepend the accel prefix */
- if (vhost_mode) {
- /* Put the local socket IP address as the hostname */
- url_sz = strlen(url) + 32 + Config.appendDomainLen;
- icpState->url = xcalloc(url_sz, 1);
- sprintf(icpState->url, "http://%s:%d%s",
- inet_ntoa(icpState->me.sin_addr),
- (int) Config.Accel.port,
- url);
- debug(12, 5, "VHOST REWRITE: '%s'\n", icpState->url);
- } else if (opt_accel_uses_host && (t = mime_get_header(req_hdr, "Host"))
) {
+ if (opt_accel_uses_host && (t = mime_get_header(req_hdr, "Host"))) {
/* If a Host: header was specified, use it to build the URL
* instead of the one in the Config file. */
/*
@@ -1678,6 +1669,16 @@
icpState->url = xcalloc(url_sz, 1);
sprintf(icpState->url, "http://%s:%d%s",
t, (int) Config.Accel.port, url);
+ if (vhost_mode) debug(12, 5, "VHOST REWRITE: '%s'\n", icpState->url)
;
+ }else if (vhost_mode) {
+ /* Put the local socket IP address as the hostname */
+ url_sz = strlen(url) + 32 + Config.appendDomainLen;
+ icpState->url = xcalloc(url_sz, 1);
+ sprintf(icpState->url, "http://%s:%d%s",
+ inet_ntoa(icpState->me.sin_addr),
+ (int) Config.Accel.port,
+ url);
+ debug(12, 5, "VHOST REWRITE: '%s'\n", icpState->url);
} else {
url_sz = strlen(Config.Accel.prefix) + strlen(url) +
Config.appendDomainLen + 1;
>
> С уважением,Alex Tutubalin
>
> --- GoldED 2.42.G1114+
>
>
> =============================================================================
> "inet-admins" Internet access mailing list. Maintained by East Connection ISP.
> Mail "unsubscribe inet-admins" to Majordomo@info.east.ru if you want to quit.
>
=============================================================================
"inet-admins" Internet access mailing list. Maintained by East Connection ISP.
Mail "unsubscribe inet-admins" to Majordomo@info.east.ru if you want to quit.