한 veth에서 다른 veth로 이더넷 프레임을 보내는 방법은 무엇입니까?

한 veth에서 다른 veth로 이더넷 프레임을 보내는 방법은 무엇입니까?

두 개의 veth 쌍(veth1, veth1_0)과 (veth2, veth2_0)이 있습니다. veth1_0 및 veth2_0은 기본 네임스페이스 ns0에 있고, veth1은 네임스페이스 ns1에 있으며, veth2는 네임스페이스 ns2에 있습니다. 서로 다른 네임스페이스 간에 통신하고 싶습니다. 그래서 veth1_0을 사용하여 veth2_0에 이더넷 프레임을 보냅니다(pcap_sendpacket 사용). veth2에서 패킷을 캡처할 수 있기를 바랍니다. 내 출력에서는 veth1의 네임스페이스 1에서 패킷을 캡처할 수 있지만 veth2의 네임스페이스 2에서는 실행이 실패합니다. 이런 식으로 소통이 가능한지 궁금합니다. 아니면 다른 방법이 있을 수도 있습니다.

답변1

이것이 문제가 해결되는지 확실하지 않지만 일반적인 접근 방식은 기본 네임스페이스에 브리지를 만든 다음 브리지의 멤버를 만드는 것입니다 veth1_0.veth2_0

그런 다음 해당 네임스페이스에 veth1올바른 IP 주소를 제공하고 veth2, 필요한 경우 경로를 추가하고, 이더넷 패킷에 대해 걱정하지 않고 IP 스택이 작업을 수행하도록 합니다. 특히 pcap과 같은 것을 사용하지 마십시오.

관련 정보