veth의 네트워크 주소가 동일한 경우 네트워크 인터페이스가 작동하지 않는 이유는 무엇입니까?

veth의 네트워크 주소가 동일한 경우 네트워크 인터페이스가 작동하지 않는 이유는 무엇입니까?

나는 Linux에서 한 쌍의 veth를 만들었습니다. 네트워크 부분이 eth0과 동일한 IP 주소를 할당하면 네트워크가 끊어지는 것 같습니다. 예를 들어 eth0 192.168.0.3, veth1 192.168.0.100입니다. 반면 모든 표시에는 ip a/l모든 것이 정상이지만 ping/nc 등이 로컬 및 원격 호스트에서 작동하지 않는다고 표시됩니다.

이에 대한 제한 사항이 있나요?

답변1

다음과 같은 일반적인 네트워크 원칙이 있습니다.서로 다른 서브넷에는 서로 다른 서브넷 IP 범위가 필요합니다.그리고특정 머신에는 서브넷 인터페이스가 하나만 있습니다..

이러한 원칙을 위반할 수 있지만 작업을 수행하는 것은 사용자에게 달려 있습니다. 이를 위해서는 애플리케이션을 특정 인터페이스에 바인딩하는 등의 노력이 필요합니다.

veth 쌍은 서브넷을 형성합니다. 동일한 네트워크 네임스페이스에 두 개의 veth 인터페이스를 배치하고 질문과 같이 IP 주소를 할당하면 이제 두 원칙을 모두 위반하게 됩니다. 그래서 그것은 작동하지 않습니다.

일반적으로 veth 쌍 중 하나를 다른 네트워크 네임스페이스로 이동한 다음(veth 쌍의 목적은 네트워크 네임스페이스 연결이기 때문) 그런 다음 표시되는 veth에 veth를 할당합니다.다른서브넷에 있는 두 개의 veth 인터페이스 주소에 주소를 할당합니다.


그러나 호스트 네임스페이스의 호스트 veth에 동일한 네트워크 주소가 있으면 기본 인터페이스가 종료됩니다.

예. 그렇기 때문에다른veth 쌍으로 구성되며 일반 서브넷처럼 라우팅됩니다.

이것이라면XY 문제, 구체적인 목표를 달성하고 싶다면 질문을 수정하고 목표를 명시해 주세요. 컨테이너(예:)에서 네트워킹을 수행하는 다른 방법이 있습니다 macvlan.

서로 다른 네트워크 세그먼트가 서로를 전달할 수 있도록 브리지를 만들 필요는 없습니다.

그러나 이름 네임스페이스와 다른 네임스페이스에 동일한 서브넷을 갖고 싶다면 이 작업을 수행해야 합니다. (또는 당신이 사용하는 무엇이든 macvlan).

"동일한" 네트워크 주소를 어딘가에 배치하거나 "동일한" 서브넷을 다른 인터페이스에 배치하려고 하면 라우팅이 작동하지 않습니다.

관련 정보