>Стоит фигня. Работает через Windows шлюз (есть спец. программа). Начальник из экономии Что ещё за фигня?? >требует Linux. Нужен NAT. Алгоритм работы спец. программы взятый из тех.документации >следующий: >Программа сервер - ISS открывает по одному входному UDP порту(по умолчанию) на >каждом сетевом интерфейсе. Далее, изначально с входных портов ISS воспринимает только >пакеты SYN: >[0x5F] - идентификатор пакета SYN >[0x10] - количество 16-битных слов, следующих за данным байтом >[DEST_BOARD_IP (4)] - IP адрес платы назначения (4 байта) >[DEST_BOARD_ PORT (2)] - UPD порт платы назначения (2 байта) >[RESERVED(2)] - зарезервировано - 2 байта >[DEST_SWITCH_IP (4)] - IP адрес SWITCH-а , за которым скрыта плата >[DEST_SWITCH_ PORT (2)] >[RESERVED(2)] >[SRC_BOARD_IP (4)] >[SRC _BOARD_ PORT (2)] >[RESERVED(2)] >[SRC _SWITCH_IP (4)] >[SRC T_ SWITCH_PORT(2)] >[RESERVED(2)] >Алгоритм работы ISS. >1. При приходе пакета SYN на любой входной интерфейс, сравнивается адрес: >DEST_SWITCH_IP = = MY_SWITCH_IP && DEST_SWITCH_ PORT = = MY_SWITCH_ PORT >для каждого сетевого интерфейса, если найдено совпадение, то данный пакет ретранслируется через >соответсвующий интерфейс (где совпало) на адрес платы, указанный в пакете SYN: > >DEST_BOARD_IP && DEST_BOARD_PORT. >Если совпадения не найдено, то пакет рестранслируется непосредственно на адрес >DEST_SWITCH_IP && DEST_SWITCH_PORT. >В момент ретрансляции первого пакета SYN - запоминается маршрут ретрансляции: >IN_IP_ADDR, IN_UDP_PORT <-aOUT_IP_ADDR,OUT_UDP_PORT. >Далее, все пакеты поступившие на IN, или OUT точку БЕЗ АНАЛИЗА ретранслируются в противоположную точку . Т.е. пакеты, пришедшие от OUT - > пересылаются в IN, и наоборот от IN в OUT. Если в течение 10 секунд, по маршруту НИ в одном направлении не было пакетов, то запись о нем стирается (запись может создать только следующий пакет SYN на прот 4120). >!!! Если пакет SYN с ТЕМ-ЖЕ ИСХОДЯЩИМ адресом (SRC_IP,SRC_PORT) но другим адресом назначения (DSP_IP,DST_UDP) поступает, а соединение с ИСХОДЯЩИМ адресом УЖЕ БЫЛО УСТАНОВЛЕНО РАНЕЕ, ТО ЭТО СОЕДИТНЕНИЕ ПЕРЕКЛЮЧАЕТСЯ НА ДРУГОЙ АДРЕС НАЗНАЧЕНИЯ (ИЗМЕНЯЕТЯ СООТВЕТВИЕ IN(SRC)<->OUT (DST a NEW_DST). >Вообще такое на Линуксе возможн. Если да то как (примеры)??? Увы и ах, в протоколе UDP пакеты SYN отсутствуют вообще.
|