이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 4273|회답: 0

[출처] 네트워크 카드도 가상화할 수 있나요? 네트워크 카드 가상화 기술에 대한 상세한 설명 맥블란

[링크 복사]
게시됨 2022. 11. 19. 오전 11:01:57 | | | |
01 맥블란 소개

이전 글에서는 여러 종류의 리눅스 가상 네트워크 장치에 대해 이야기했는데, 탭/툰, 베스-페어, 브리지, 이들은 본질적으로 리눅스 시스템에서 제공하는 네트워크 가상화 솔루션이며, 맥브란도 그 중 하나입니다. 정확히 말하면 맥 카드 가상화 솔루션입니다. 맥블란 기술은물리적 NIC는 여러 개의 가상 NIC로 가상 변환됩니다이는 물리적 네트워크 카드가 하나에서 여러 개의 섀도우 클론 기술을 수행하는 것과 동등합니다.

02 맥VLAN 작동 원리

MacVlan은 리눅스 커널에서 지원하는 새로운 기능이며, 지원되는 버전으로는 v3.9-3.19와 4.0+가 있고, 더 안정적인 버전에는 4.0+가 권장됩니다. 일반적으로 커널 모듈 형태로 존재하며, 현재 시스템이 이를 지원하는지 다음과 같은 방식으로 판단할 수 있습니다:

첫 번째 명령어가 오류를 일으키거나 두 번째 명령어가 반환되지 않는다면, 현재 시스템이 MacVLAN을 지원하지 않으며 커널을 업그레이드해야 함을 의미합니다.

맥클란 기술은 VLAN과 비슷하게 들리지만, 구현 방식은 완전히 다릅니다. macVLAN 서브인터페이스는 원래 메인 인터페이스와 완전히 독립적이며 MAC 주소와 IP 주소로 별도로 구성할 수 있지만, VLAN 서브인터페이스와 메인 인터페이스는 동일한 MAC 주소를 공유합니다. VLAN은 브로드캐스트 도메인을 나누는 데 사용되며, 맥클란은 동일한 브로드캐스트 도메인을 공유합니다.

서로 다른 하위 인터페이스를 통해 MacVLAN은 트래픽 격리도 달성할 수 있습니다. MacVLAN은 패킷의 목적지 MAC 주소를 바탕으로 패킷을 어떤 가상 NIC에 전달해야 하는지 결정한 후, 가상 NIC가 패킷을 상위 계층 프로토콜 스택에 전달하여 처리합니다.


03 네 가지 모드

MacVLAN 서브인터페이스 간 통신 모드에 따라 MACVLAN에는 네 가지 네트워크 모드가 있습니다:

  • 개인 모드
  • VEPA(가상 이더넷 포트 집계기) 모드
  • 브리지 모드
  • 패스스루 모드


기본적으로 VEPA 모드가 사용됩니다.

3.1 개인

이 모드에서는 동일한 기본 인터페이스 하의 서브 인터페이스들이 서로 격리되어 통신할 수 없습니다. 외부 물리적 스위치에서 우회되더라도 무자비하게 버려질 것입니다.




3.2 베파

이 모드에서는 서브 인터페이스 간 트래픽이 802.1Qbg/VPEA(물리적 또는 가상 모두)를 지원하는 외부 스위치로 전달된 후 외부 스위치를 통해 전달된 후 다시 돌아와야 합니다.

참고: 802.1Qbg/VPEA 기능은 단순히 스위치가 헤어핀 기능을 지원해야 함을 의미하며, 즉 데이터 패킷을 인터페이스에서 수신한 후 다시 반환할 수 있어야 합니다.



3.3 브리지

이 모드에서는 리눅스 브리지의 기능을 시뮬레이션하지만, 각 인터페이스의 MAC 주소를 알고 학습할 필요가 없다는 점이 더 좋습니다. 따라서 이 모드에서는 서브 인터페이스들이 직접 통신할 수 있습니다.



3.4 패스스루

이 모드는 단일 서브 인터페이스만 메인 인터페이스에 연결할 수 있게 하며, 일반적으로 서브 인터페이스 브리징과 VLAN 서브 인터페이스 생성에 사용되는 프로미스큐어스 모드로 설정해야 합니다.



3.5 맥탭

MacVLAN과 유사한 또 다른 기술은 MacTap입니다. macvlan과 달리, mactap은 패키지를 받아 프로토콜 스택에 전달하지만, tapX 파일을 통해 사용자와 직접 통신을 완료합니다.



04 연습

리눅스에서 맥브란을 생성하는 명령은 다음과 같습니다:

일반적으로 macVLAN만 사용하는 것은 의미가 없으며, 네트워크를 구축하려면 VM과 컨테이너를 조합하는 방식입니다. 네임스페이스를 사용해 리눅스가 맥브란을 어떻게 사용하는지 살펴보겠습니다.

실험적 위상은 다음과 같습니다:




제 시스템에서는 인터페이스 enp0s8을 예로 들고, 두 개의 맥브란 서브인터페이스(브리지 모드 사용)를 만들고 IP를 설정한 뒤 두 개의 네임스페이스에 걸어 연결성을 테스트했습니다.

참고: enp0s8의 IP 주소는 192.168.56.110/24이며, 구성된 서브인터페이스의 IP 주소도 동일한 CIDR 세그먼트에서 가져와야 합니다.

두 개의 서브 인터페이스를 거친 후, 다음 신호를 보냅니다:


핑을 받을 수 있다는 걸 알 수 있지만, 위 모드를 다른 모드로 바꾸면 작동하지 않으니, 모두 직접 실험해 보시길 바랍니다(기본값은 Vepa 모드입니다).

또한 Docker에서는 MacVLAN이 더 중요한 크로스 호스트 네트워크 모델로, 다음 글에서 다룰 예정입니다.

05 요약

MACVLAN은 네트워크 카드를 여러 네트워크 카드로 가상화할 수 있는 네트워크 카드 가상화 기술입니다.

MacVLAN의 네 가지 통신 모드 중 가장 일반적인 모드는 브리지입니다.

그것에 대해서 생각해 봐:

맥블란 다리와 다리의 유사점과 차이점
여러 가상 네트워크 카드가 동일한 MAC 주소를 공유하지만 독립적인 IP 주소를 사용하는 유사한 기술도 있습니다.


원본 주소:하이퍼링크 로그인이 보입니다.




이전의:실용적인 동작: BundleTransformer를 사용해 System.Web.Optimization을 대체하기
다음:Docker는 Macvlan을 사용해 컨테이너에 독립적인 IP 주소를 설정합니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com