Linux VM의 다른 네임스페이스에서 TCP 애플리케이션의 동일한 포트 재사용

Linux VM의 다른 네임스페이스에서 TCP 애플리케이션의 동일한 포트 재사용

2개의 인터페이스가 있는 Linux 가상 머신이 있고 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 비캐스트: 51.51.1.255 마스크: 255.255.255.0

ip netns exec eng52 ifconfig eth1.52 링크 encap: 이더넷 HWaddr 52:54:00:bd:68:c3 inet addr:51.51.2.10 브로드캐스트: 51.51.2.255 마스크: 255.255.255.0

ip netns exec eng522 ifconfig eth1.522 링크 encap: 이더넷 HWaddr 52:54:00:bd:68:c3 inet addr:51.51.2.10 브로드캐스트: 51.51.2.255 마스크: 255.255.255.0

ip netns exec eng511 ifconfig eth1.511 링크 encap: 이더넷 HWaddr 52:54:00:bd:68:c3 inet addr:51.51.1.10 브로드캐스트: 51.51.1.255 마스크: 255.255.255.0

그래서 TCP 프로토콜을 사용하는 스크립트가 있고 동시에 트래픽을 보내야 합니다.

eng51[51.51.1.10 vlan-id 51]에서 eng52[51.51.2.10 vlan-id 52]까지 동일한 스크립트를 사용하여 eng52[51.51.1.10 vlan-id 511]에서 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로 바인딩하고 네임스페이스 eng52 및 eng522 sock.bind(('0.0.0.0',63999)) 에 대해 포트 8000에서 실행되는 HTTPserver를 가지고 있습니다.

소스 포트를 63999로 바인딩한 이유는 두 트래픽 세션에서 소스 주소, 대상, 주소, 소스 포트, 대상 포트 및 프로토콜이 동일해야 하기 때문입니다.

내가 직면한 문제는 다른 네임스페이스에서 이 스크립트를 실행하더라도 소스 포트가 고유한 것으로 간주되지 않는다는 것입니다. [동일한 포트 63999를 사용하기 때문에] 동시에 다른 네임스페이스에서 스크립트를 실행할 수 없습니다.

답변1

그래서 저는 단순히 여러 인터페이스를 사용하여 가상 머신의 각 인터페이스를 네임스페이스에 매핑함으로써 이를 달성했습니다. 그런 다음 동시에 2개의 동시 세션에서 소스 포트 63999를 사용할 수 있습니다.

ip netns eng51 ifconfig eth1.51 link encap: Ethernet HWaddr 52:54:00:bd:68:c3 inet addr:51.51.1.10 브로드캐스트: 51.51.1.255 마스크: 255.255.255.0

ip netns exec eng52 ifconfig eth2.52 링크 encap: 이더넷 HWaddr 52:54:00:bd:68:c3 inet addr:51.51.2.10 브로드캐스트: 51.51.2.255 마스크: 255.255.255.0

ip netns exec eng522 ifconfig eth3.522 링크 encap: 이더넷 HWaddr 52:54:00:bd:68:c3 inet addr:51.51.2.10 브로드캐스트: 51.51.2.255 마스크: 255.255.255.0

ip netns exec eng511 ifconfig eth4.511 링크 encap: 이더넷 HWaddr 52:54:00:bd:68:c3 inet addr:51.51.1.10 브로드캐스트: 51.51.1.255 마스크: 255.255.255.0

관련 정보