Skip to content

chendotjs/tcnat

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

Управление RAW NAT с помощью tcnat

Python-скрипт tcnat облегчает создание и удаление правил raw nat, формируя и выполняя команды tc. TC RAW NAT используется для быстрой трансляции адресов, не прибегая к conntrack.

Настройка

В коде скрипта есть несолько конфигурационных констант:

  • NAT_IFACE - сетевой интерфейс, на котором будет осуществляться и source, и destination NAT
  • TC_PATH - путь к утилите tc (если вдруг она не находится по стандартному пути)
  • WHITELISTS_SRC - список ipset-ов с белыми src ip/src net. Трафик для src ip, входящих в данные ipset-ы НЕ будет транслироваться

Команды

tcnat list_srcnat

Выводит список установленных правил source NAT на интерфейсе NAT_IFACE. Поле Pref - приоритет правила (можно сказать его ID). По нему правила удаляются. Поле NAT FROM - Source IP, который будет транслирован Поле NAT TO - Новый source IP, который будет после трансляции

tcnat list_dstnat

Выводит список установленных правил destination NAT на интерфейсе NAT_IFACE. Поле Pref - приоритет правила (можно сказать его ID). По нему правила удаляются. Поле NAT FROM - Destination IP, который будет транслирован Поле NAT TO - Новый destination IP, который будет после трансляции

tcnat add_srcnat <src_ip> <translated_ip>

Добавляет новое правило source NAT: адрес отправки пакета будет заменён с src_ip на translated_ip

tcnat add_dstnat <dst_ip> <translated_ip>

Добавляет новое правило destination NAT: адрес назначения пакета будет заменён с dst_ip на translated_ip

tcnat del_srcnat <pref>

Удаляет правило source NAT с pref <pref>, это значение можно посмотреть командой tcnat list_srcnat

tcnat del_dstnat <pref>

Удаляет правило destination NAT с pref <pref>, это значение можно посмотреть командой tcnat list_dstnat

About

RAW SNAT/DNAT using tc

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 98.4%
  • Shell 1.6%