Python-скрипт tcnat облегчает создание и удаление правил raw nat, формируя и выполняя команды tc. TC RAW NAT используется для быстрой трансляции адресов, не прибегая к conntrack.
В коде скрипта есть несолько конфигурационных констант:
NAT_IFACE
- сетевой интерфейс, на котором будет осуществляться и source, и destination NATTC_PATH
- путь к утилите tc (если вдруг она не находится по стандартному пути)WHITELISTS_SRC
- список ipset-ов с белыми src ip/src net. Трафик для src ip, входящих в данные ipset-ы НЕ будет транслироваться
Выводит список установленных правил source NAT на интерфейсе NAT_IFACE
.
Поле Pref
- приоритет правила (можно сказать его ID). По нему правила удаляются.
Поле NAT FROM
- Source IP, который будет транслирован
Поле NAT TO
- Новый source IP, который будет после трансляции
Выводит список установленных правил destination NAT на интерфейсе NAT_IFACE
.
Поле Pref
- приоритет правила (можно сказать его ID). По нему правила удаляются.
Поле NAT FROM
- Destination IP, который будет транслирован
Поле NAT TO
- Новый destination IP, который будет после трансляции
Добавляет новое правило source NAT: адрес отправки пакета будет заменён с src_ip на translated_ip
Добавляет новое правило destination NAT: адрес назначения пакета будет заменён с dst_ip на translated_ip
Удаляет правило source NAT с pref <pref>, это значение можно посмотреть командой tcnat list_srcnat
Удаляет правило destination NAT с pref <pref>, это значение можно посмотреть командой tcnat list_dstnat