114
클라우드 네이티브를 위한 데이터 센터 네트워크 구축
스위치데브
패킷 스위칭 실리콘의 커널 추상화 모델의 부재를 해결하기 위해 큐물러스 네트워크와 멜라녹
스를 비롯한 여러 커널 개발자들이 새로운 장치 추상화 모델을 만들기 시작했다. 이를
스위치데브
switchdev
라고 부른다.
스위치데브는 다음과 같이 동작한다.
●
스위칭 실리콘의 스위치데브 드라이버는 스위칭 실리콘과 통신해서 어떤 스위치 포트를 설정할 것인지 결정
한다. 드라이버는 설정해야 할 실리콘 포트만큼 넷데브
Netdev
장치를 인스턴스화한다. 넷데브 장치는 스위칭
실리콘에 실제 패킷
I
/
O
의 오프로딩을 맡기게 된다. 넷데브는 이더넷 인터페이스의 리눅스 추상화 모델이며
오늘날
NIC
에서 사용되고 있다. 이와 같이 동일한 커널 추상화 모델을 사용하면 포워딩 테이블 상태,
ACL
상태, 인터페이스 상태 등에 훅
hook
을 추가할 수 있다. 그렇게 되면 리눅스에서 기존에 사용하던
ethtool
,
iproute2
와 같은 명령어가 자동으로 패킷 스위칭 실리콘의 포트에서 동작할 수 있게 된다.
●
커널의 모든 패킷 포워딩 자료 구조는 잘 정의된 백엔드 훅을 제공한다. 이 훅을 이용해서 스위칭 실리콘 드라
이버가 커널 상태를 스위칭 실리콘에 오프로딩할 수 있다. 스위칭 실리콘 드라이버는 훅을 통해 호출할 수 있
는 함수를 등록할 수 있다. 새로운 경로가 추가된 경우를 예로 들면 훅이 멜라녹스 스위치데브 드라이버의 함
수를 호출해서 이 경로가 스위칭 실리콘에서 오프로딩이 필요한지 여부를 ...