0 голосов вниз любимый
У меня есть 20-портовый коммутатор, подключенный к ПК с 20 сетевыми картами (1-к-1), и я хочу загрузить его трафиком. Конечно, настройка всех сетевых адаптеров с разными IP-адресами и запуск сценариев мой клиент / сервер (Python3) (или iperf3) будут генерировать только локальный трафик, если я не вытесню трафик через сетевые карты.
Я нашел (здесь) два основных «трюка» для достижения этой цели:
а.) Использование сетевого пространства имен:
[+] Это будет делать именно то, что я хочу, изолируя (как VM/docker) каждый сетевой адаптер в коробку
[+] Python3 поддерживает netns (Pyroute2)
[-] Не уверен, как открыть сокет в потоке netns/python (10 потоков x 2 (клиент / сервер))
б.) Используя призрачный IP (iptable: S/D-NAT + предварительная / пост-маршрутизация):
[+] Все сетевые адаптеры остаются в пространстве имен корневой сети (все еще могут собирать данные с помощью psutil) и настраиваются на глобальном уровне.
[+] Поточный сценарий Python TCP может запускаться без специальной библиотеки lib/ для поддержки netns.
[-] В случае перенастройки моей настройки (IPs, VLAN, ...) сценарий IPTable должен быть соответствующим образом адаптирован.
Я хотел бы знать, пропускаю ли я другую возможность здесь и / или если для.) Я все понял (все) неправильно (так как я не могу найти достойный пример с сокетом, открытым в одном скрипте Python для разных сетей ...)