클라이언트 소켓의 경우 bind()를 사용하여 특정 소스 IP 주소에 바인드하여 특정 인터페이스를 선택할 수 있습니다. 또는 connect()를 직접 사용할 수 있습니다. 그러면 라우팅 테이블을 기반으로 소스 IP를 선택합니다.IP에 클라이언트 소켓을 바인드 할 수 있습니까? 인터페이스에 속하지 않습니까?
IP에 클라이언트 소켓을 바인드 할 수 있습니까? 인터페이스에 속하지 않으십니까? 예 : 두 개의 인터페이스가 있습니다. eth0 : ip0 eth1 : ip1
(1) 클라이언트 소켓을 ip2에 바인드하면 어떻게됩니까? 이것이 가능한가? (2) (1)이 가능하면 클라이언트 소켓이 eth0를 통해 패킷을 전송한다고 가정합니다. 그런 다음이 클라이언트 호스트의 iptables를 구성하여 들어오는 모든 패킷을 ip0 (eth0)으로 전달합니다. 이 경우 대상 IP 주소가있는 서버 쪽에서 보낸 패킷이 ip2 (이 패킷이 내 클라이언트 호스트에 도달한다고 가정 할 경우)입니다. 내 클라이언트 소켓에서 패킷을 수신합니까?
미리 감사드립니다.
내가하려고하는 것은 프로그램이 네트워크 트래픽 생성기로 작동한다는 것입니다. 클라이언트 호스트와 서버 호스트 및 스위치가 중간에 있습니다. 클라이언트와 서버 사이에 트래픽을 보내려고하는데 이러한 트래픽에는 여러 클라이언트 IP 서버 IP 쌍이 있어야합니다 (여러 가입자와 서버가있는 경우를 시뮬레이트). 예 : : 클라이언트 ips 범위는 20.0.0.0 - 20.0.0.9, 서버 ips 범위는 21.0.0.0 - 21.0.0.9 이 경우 클라이언트 호스트에 10 개의 소켓이 있어야하며 각 호스트는 20.0.0.0의 IP와 바인딩해야합니다 - 20.0.0.9. 하지만 내 인터페이스에는 다른 IP가 있습니다 (적어도이 IP는 모두 가지고 있습니다). – buddha
iptables는 linux에서 방화벽 규칙을 설정하는 데 사용되는 linux 명령입니다. – buddha