오픈스택 네트워크의 mtu값이 1450인 이유

오픈스택 MTU 값이 1450이 된 이유 설명 링크
VXLAN과 같은 오버레이 네트워크는 오버헤드를 증가시키고 페이로드 또는 사용자 데이터를 위해 사용 가능한 용량을 감소시키는 추가적인 패킷 헤더를 포함합니다. 가상 네트워크 인프라에 대한 지식이 없더라도 인스턴스들은 기본 이더넷에 대한 1500 바이트의 maximum transmission unit (MTU) 를 사용하여 패킷 전송을 시도합니다. Internet protocol (IP) 네트워크는 end-to-end MTU를 발견하고 패킷 크기를 정확히 조정하기 위한 path MTU discovery (PMTUD) 메커니즘을 포함합니다. 그러나 몇몇 운영체제와 네트워크에서는 차단하거나 또는 PMTUD를 지원하지 않아 성능 저하 또는 연결 실패를 야기합니다.

이상적으로, tenant 가상 네트워크를 포함하는 물리 네트워크 상에서 jumbo frames 를 활성화하여 해당 문제를 방지할 수 있습니다. 점보 프레임은 가상 네트워크에서 VXLAN 오버헤드에 대한 영향력을 무효화하도록 MTU를 약 9000 바이트까지 지원합니다. 그러나 많은 네트워크 장치들은 점보 프레임을 지원하지 않으며 OpenStack 관리자들은 종종 네트워크 인프라에 대한 제어를 담당하지 않습니다. 후인 경우, VXLAN 오버헤드를 고려하여 인스턴스 MTU를 줄임으로써 MTU 문제를 방지할 수 있습니다. 적합한 MTU 값을 결정하는데는 실험을 필요로 하지만 1450 바이트가 대부분의 환경에서 잘 동작할 것입니다. IP 주소를 인스턴스에 할당 및 MTU 값 또한 조정하는 DHCP 서버를 구성할 수 있습니다.

즉 오버레이 네트워크를 사용시 발생하는 오버헤드를 줄이기 위해서 점보프레임을 활성화할 수 있는데 많은 네트워크 장치에서 점보프레임을 지원하지 않기 때문에 MTU 값을 줄이는 것으로 이문제를 해결할 수 있다. 1450이 대부분의 환경에서 잘 동작한다.

하지만 docker 사용시 mtu값이 1500으로 설정되기 때문에 오픈스택 네트워크에서 50의 패킷 손실이 발생하고 이로인한 오버헤드가 엄청나다…

docker의 mtu 기본 값이 서버의 설치된 서버의 기본 mtu값을 사용하도록 하는 기능이 추가되야 될 것 같은데 버전업이 되면서 이문제는 해결될 것 같다.