Налага ни се скоро да мигрираме един web server. Но с цел по-лесно и сигурно мигриране решихме, че няма да сменяме DNS записите преди да са минали 24-48h. Това обаче наложи един нерпиятен проблем със статистиките за трафика към сайта
Всички request-и започват да идват от един адрес заради NAT-а който правим за да закараме трафика към новият сървър.
След доста мислене се отказах да правя каквото и да било за да реша този проблем…
Но вчера по случайност ми хрумна една идея която изглежда много добре.
Ако приемем, че имаме машина X, машина Y и в момента сайта се намира на машина X, то неможе просто да закараме целия трафик от един порт на машина X до същият порт на машина Y и връзката да се осъществи… Затова на мен ми хрумна следната гениално тъпа идея :). На машина X се пуска man-in-the-middle proxy което хваща http & https заявките, и във всяка заявка слага един допълнителен header със IP-то на посетителят. След това на машина У се слага още едно малко по-сложно man-in-the-middle proxy, то хваща дошлият пакет, маха header-а с IP-то и генерира пакет със Spoofed адрес към web server-а все едно е от съответното IP След това с 2 NAT-а закарваме отговорът от web server-а обратно на клиента Готиното на тази ситуация е, че ние си имаме сертификатите и просто използваме атаката за да си свършим работата
Като цяло решението е сложничко за реализация и затова не сме го правили… но идеята ми се струва доста добра
January 11th, 2009 at 9:45 pm
Хм. А не е ли по-лесно да направиш един тунел от едната до другата, да правиш DNAT, и на другата с policy routing да казваш “всичко дошло от тоя интерфейс да се връща обратно през него”… Няма нужда от сложни упражнения на layer7
January 15th, 2009 at 12:32 pm
Благодаря за идеята… ще пробваме следващият път