우리는 고객에게 수십 개의 임베디드 장치를 설치했으며 모두 OpenVPN 서비스를 이용합니다. 일반적으로 잘 작동하지만 일부 고객에게는 심각한 경로 MTU 문제가 있습니다. 고객의 네트워크 수정에 대한 영향은 제한적이므로이를 처리하려면 OpenVPN이 필요합니다. 요컨대 내 질문은 다음과 같습니다.
클라이언트 기반에서 일부 클라이언트의 낮은 경로 MTU를 완화하는 방법, 즉 모든 클라이언트에 대해 최악의 경우를 수용하는 전역 설정을 사용하지 않는 방법
경로 MTU 576은 모든 조각을 삭제하고 자체 조각화하지 않으며 DF 비트를 존중하지 않습니다. 왜이 문제를 전 세계적으로 해결하지 않으려는지 알 수 있습니다.
OpenVPN을 맨 페이지의 이벤트 MTU의 수는 특히, 옵션 관련 --link-mtu, --tun-mtu, --fragment and --mssfix
. 그러나 그것은 또한 말한다
--link-mtu [...] 수행중인 작업을 모르면이 매개 변수를 설정하지 않는 것이 가장 좋습니다.
--tun-mtu [...] --fragment 및 / 또는 --mssfix 옵션을 사용하여 MTU 크기 문제를 처리하는 것이 가장 좋습니다.
내가 실험을 시작 그래서 --fragment
하고 --mssfix
곧하지만, 적어도 전자는 클라이언트 측,뿐만 아니라 설정해야 실현했다 또한 서버 쪽 . 나는 다음을 통해 서버 측 클라이언트 당 설정으로 보았다 --client-config-dir
그러나 말한다
클라이언트 별 컨텍스트에서는 --push, --push-reset, --iroute, --ifconfig-push 및 --config 옵션이 유효합니다.
MTU 옵션에 대한 언급은 없습니다!
더 구체적인 질문은 다음과 같습니다.
- 왜 정확
link-mtu
하고tun-mtu
낙담합니까? 이 옵션의 잠재적 문제점은 무엇입니까? 저수준 IP 헤더 뭉치에 상당히 익숙합니다. link-mtu tun-mtu fragment mssfix
작동하려면 서버 측에서 어떤 옵션 을 미러링해야합니까?- 어떤 옵션을
link-mtu tun-mtu fragment mssfix
사용할 수client-config-dir
있습니까? - 4 가지 옵션을 모두 서버 측에 미러링해야하고 내부에서 사용할 수없는 경우
client-config-dir
: 클라이언트 당 낮은 경로 MTU를 방지 할 수있는 대안이 있습니까?
노트:
- 내 질문의 일부는 이미 5 년 전에 여기 에 요청되었지만 실제로는 대답하지 않았으므로 복제해야합니다.
- OpenVPN 서버는 현재 Ubuntu 12.04에서 2.2.1입니다. 우분투 14.04에서 2.3.2 로의 업그레이드를 준비하고 있습니다
- OpenVPN 클라이언트는 데비안 7.6에서 2.2.1입니다
- 고객의 경로 MTU를 직접 결정하게되어 기쁩니다.
- 현재 많은 서버 측을 테스트 할 수 없습니다. 그러나 우리는 완전한 별도의 테스트 베드를 구축하고 있으며 곧 준비해야합니다.
도움이되는 조언에 감사드립니다.
iptables
모든 SYN 패킷의 MSS를 해당 클라이언트 IP 주소와주고받는 규칙을 삽입 할 수 있습니다 .