Страница 1 из 1

nat icmp

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

Re: nat icmp

Добавлено: 2011-09-25 13:21:13
rmn
поля внутренних структур, где хранятся значения портов игнорируются:

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

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);
...
}