У меня есть виртуальная машина linux с 2 интерфейсами, у eth0 есть mgmt IP, а у eth1 есть конфигурация, как показано ниже
ip netns exec eng51 ifconfig
eth1.51 Link encap:Ethernet HWaddr 52:54:00:bd:68:c3
inet addr:51.51.1.10 Bcast:51.51.1.255 Mask:255.255.255.0
ip netns exec eng52 ifconfig
eth1.52 Link encap:Ethernet HWaddr 52:54:00:bd:68:c3
inet addr:51.51.2.10 Bcast:51.51.2.255 Mask:255.255.255.0
ip netns exec eng522 ifconfig
eth1.522 Link encap:Ethernet HWaddr 52:54:00:bd:68:c3
inet addr:51.51.2.10 Bcast:51.51.2.255 Mask:255.255.255.0
ip netns exec eng511 ifconfig
eth1.511 Link encap:Ethernet HWaddr 52:54:00:bd:68:c3
inet addr:51.51.1.10 Bcast:51.51.1.255 Mask:255.255.255.0
Итак, у меня есть скрипт, использующий протокол tcp, и мне нужно одновременно отправлять трафик
from eng51[51.51.1.10 vlan-id 51] to eng52[ 51.51.2.10 vlan-id 52]
and i use same script to send traffic from eng52[ 51.51.1.10 vlan-id 511] to eng522 [51.51.2.10 vlan-id 522]
Я запускаю сценарий в пространствах имен:
ip netns exec eng51 python client.py 51.51.2.10
ip netns exec eng511 python client.py 51.51.2.10
внутри client.py
Я связываю порт-источник всегда 63999, и у меня работает HTTP-сервер на порте 8000 для обоих пространств имен eng52
и eng522
sock.bind(('0.0.0.0',63999))
причина, по которой я привязываю порт источника к 63999, заключается в том, что мне нужно, чтобы адрес источника, пункт назначения, адрес, порт источника, порт назначения и протокол были одинаковыми в обоих сеансах трафика.
Проблема, с которой я сталкиваюсь, заключается в том, что, несмотря на то, что я запускаю этот сценарий в разных пространствах имен, порт источника не считается уникальным, скорее я могу запустить только один экземпляр сценария, который вызывает проблему, так как я хочу этот источникпорт для перекрытия.