2개의 네트워크 네임스페이스 간 Linux 핑

2개의 네트워크 네임스페이스 간 Linux 핑

Linux 네트워킹을 처음 접했고 비슷한 질문에 대한 답변을 찾을 수 없었습니다.

2개의 네임스페이스를 만들고 그 사이에 핑을 시도하는 중입니다.

ip netns add red;
ip netns add blue;

ip link add dev v-red type veth peer name v-blue;
ip link set dev v-red netns red;
ip link set dev v-blue netns blue;

ip netns exec red ip addr add 192.168.15.1 dev v-red;
ip netns exec blue ip addr add 192.168.15.2 dev v-blue;

ip netns exec red ip link set dev v-red up;
ip netns exec blue ip link set dev v-blue up;

ip netns exec red ping 192.168.15.2;
-> ping: connect: Network is unreachable

디버깅할 때 찾아본 것

ip netns exec blue ifconfig
v-blue: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.15.2  netmask 255.255.255.255  broadcast 0.0.0.0

ip netns exec red ifconfig
v-red: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.15.1  netmask 255.255.255.255  broadcast 0.0.0.0

답변1

두 장치는 서로 다른 두 개의 논리적 /32 네트워크에 위치하며 각 호스트에 연결하는 방식을 암시하는 경로나 라우팅 테이블이 없습니다.

실행하면 # ip netns exec red ip route get 192.168.15.2으로 응답합니다 RTNETLINK answers: Network is unreachable. 라우팅 테이블에는 192.168.15.2/32 네트워크로 패킷을 보내는 방법에 대한 답이 없기 때문입니다.

그러나 양방향으로 경로를 추가하는 경우 이는 두 호스트가 이웃(기술적으로는 직접 연결된 피어와 비슷함)이며 패킷을 보내야 한다는 힌트로 작동해야 합니다.

ip netns exec red ip route add 192.168.15.2/32 dev v-red
ip netns exec blue ip route add 192.168.15.1/32 dev v-blue

그런 다음 라우팅 테이블을 인쇄하여 현재 경로가 어떻게 지정되는지 확인할 수 있습니다.

ip netns exec blue ip route list
192.168.15.1 dev v-blue scope link

여기서 기본 경로( ip netns exec red ip route add default dev v-red)를 실제로 사용하는 것은 완전히 유효합니다. 이는 모든 호스트를 포함하기 때문입니다. 이는 여러분이 알고 있는 경로가 반대편에 존재하는 것뿐만 아니라 여기에 문제가 무엇인지 이해하기 위해 다음을 추가했습니다. 통신하려는 특정 호스트.

이 시점에서 (방화벽이 허용하는) 핑은 예상대로 작동해야 합니다.

답변2

위의 답변으로 모든 것이 설명되었습니다. 설정을 스케치하여 더 자세히 설명하려고 합니다. 각 네임스페이스에는 라우팅이 부족합니다. 네임스페이스는 TCP/IP 라우팅 스택(ARP, 인터페이스, 라우팅, 방화벽 규칙 등)의 전체 인스턴스라는 점을 명심하세요.

귀하의 설정

도움이 되었기를 바랍니다.

답변3

동일한 네트워크에 빨간색과 파란색 네임스페이스를 두려는 의도라면 다음을 사용하여 라우터를 제거할 수 있습니다.

ip netns exec red ip 경로 추가 192.168.15.2/24 dev v-red

ip netns exec blue ip 경로 추가 192.168.15.1/24 dev v-blue

관련 정보