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

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

나는 리눅스에서 한 쌍의 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 쌍의 서브넷을 만들고 라우팅을 수행합니다.

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

서로 다른 네트워크 세그먼트가 서로 전달되도록 하기 위해 반드시 브리지를 만들 필요는 없습니다.

하지만 이름 네임스페이스와 다른 네임스페이스 모두에서 동일한 서브넷을 갖고 싶다면 그렇게 해야 합니다. (또는 을 사용합니다 macvlan).

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

관련 정보