nat icmp

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
si4re
рядовой
Сообщения: 23
Зарегистрирован: 2010-02-14 23:03:42

nat icmp

Непрочитанное сообщение si4re » 2011-09-25 12:45:25

Всем привет
у меня вот какой вопрос про NAT
при трансляции адресов много - один (в терминологии cisco Port Adress Translation) происходит запись в таблице nat с указанием порта
причем так как поле порта состоит из 16 битов - всего возможно 65536 соединений с одного роутера выполняющего функцию pat
Для tcp все понятно, но каким образов осуществляется запись о протоколах у которых нет понятия порта? например icmp
Спасибо

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

rmn
старшина
Сообщения: 427
Зарегистрирован: 2008-10-03 18:52:02

Re: nat icmp

Непрочитанное сообщение rmn » 2011-09-25 13:21:13

поля внутренних структур, где хранятся значения портов игнорируются:

Код: Выделить всё

struct alias_link *
FindUdpTcpOut(struct libalias *la, struct in_addr src_addr,
    struct in_addr dst_addr,
    u_short src_port,
    u_short dst_port,
    u_char proto,
    int create)
{
...
        lnk = FindLinkOut(la, src_addr, dst_addr, src_port, dst_port, link_type, create);
...
}

Код: Выделить всё

struct alias_link *
FindProtoOut(struct libalias *la, struct in_addr src_addr,
    struct in_addr dst_addr,
    u_char proto)
{
...
        lnk = FindLinkOut(la, src_addr, dst_addr, NO_SRC_PORT, NO_DEST_PORT, proto, 1);
...
}