>>>Но особенность конфигурации провайдера такова, что сетка 34.33.22.252 - это техническая
>>>сеть, (как вы можете заметить - она всего на два реальных
>>>IP-адреса), через которую в и-нет попасть можно, но из которой! в
>>>и-нет попасть нельзя, т.е. в итоге имеем такую ситуацию, что гейту
>>>в и-нет не попасть, потому, как ядро эти пакеты заворачивает на
>>>eth0, т.е. в техническую сеть.
>>
>>Ж) А противоречия здесь никакого нет?
>
>нет, наверное6 транзитные пакеты в инет попадают, а все пакеты с этой
>сети режутся...
>линуксу тут ничего сказать нельзя, по крайней версии стандартными путями
>разный соят - mta, httpd, named обычно умеет сам биндиться к нужному
>порту
к нужному адресу, Вы хотели сказать ;)
Нет, противоречия никакого нет. Было бы противоречие - всё бы работало :) Моё понимание как это всё происходит. Я конечно понимаю, что для кого-то это прописные истины, но всё же... На клиентской машине появляется пакет. Машина по маске сети вытаскивает из него адрес сети, сравнивает со своим и решает: если это в той же сети, то пакет доставляется непосредственно, если из другой сети, то пакет отправляется на межсетевой гейт. Гейт, получив его, проделывает то же самое и смотрит, подключена ли какая-нибудь сетка к нему непосредственно и можно ли доставить пакет прямиком получателю. Если да, то так и происходит, если нет, то и гейт отправляет пакет на другой межсетевой гейт. Я конечно понимаю что всё гораздо сложнее, но чтобы не отклоняться от темы я позволю себе это упрощение. Заметим, что адрес отправителя при этом не меняется. Другой гейт, в данном случае гейт провайдера так же смотрит куда отправить пакет, но перед этим он смотрит "а вообще могу ли я пропускать пакеты от этого отправителя?". Так вот, в моём случае, если отправителем является машина в локальной сети (44.33.23.240-254), то пакеты пропускаются и всё нормально. Но если гейт сам захочет пойти в и-нет, а у него в раблице роутинга прописано, что дефолтный гейт - в сети 44.33.22.252, то пакет отправляется через интерфейс eth0 и адресом отправителя становится 44.33.22.254 и гейт прова решает: "А это что за хрен такой? Его у меня в биллингах нету, пошёл нафиг." и даёт ему отлуп. Так вот если бы отправителем на моем гейте был бы адрес 44.33.23.241, каковой ему присвоен, то всё было бы хорошо. Но это надо как-то объяснить линуху, а я не умею :( В принципе проблема решается, если выделить машину исключительно под гейт, а последовательно с ней включить ещё одну, но это некрасиво и дорого :) Ещё бы проблема решилась бы, если существовала бы софтина с независимой от ядра таблицей роутинга. Тогда бы она слушала интерфейс eth1 (44.33.23.241) и отправляла бы по необходимости на гейт прова через eth0 (44.33.22.253), а в таблице роутинга ядра прописать дефолтным гейтом мой eth1 и всё. Может ли это routed? Или мне туннель нужен? Или может меня спасёт ip route? Пятый день воюю, небритый хожу, сплю плохо, синяки под глазами, коллеги-девчонки заботливо интересуются "Khan, у тебя что-то случилось? С девушкой поругался? Может помочь?" А что я им отвечу? Что мне моя "девушка" через одно место не даёт? ;) И сеть-то для экспериментов доступна только ночью. Коллеги, помогите!
|