Как я могу изменить MTU для Cisco Anyconnect VPN?

Вопрос или проблема

На моем macOS 10.15 мне нужно использовать Cisco AnyConnect Secure Mobility Client 4.8, чтобы подключиться к VPN моего университета.

Подключение значительно медленнее, чем обычно, вероятно, потому что MTU 1300 установлен слишком низко.

Используя команду ifconfig, я получаю следующую информацию о подключении:

utun2: flags=80d1<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1300
    inet ###.###.##.## --> ###.###.##.## netmask 0xfffffe00 
    inet6 ###::####:###:###:###%utun2 prefixlen 64 scopeid 0x10 
    inet6 ###:####:#:#::### prefixlen 128 
    nd6 options=201<PERFORMNUD,DAD>

(IP адреса анонимизированы с помощью #)

Как я могу это изменить? Я ничего не нашел в настройках клиента Cisco, не говоря уже о конфигурационных файлах.

Изменение в системных настройках не помогает, через терминал я попробовал следующее:
sudo ifconfig utun2 mtu 1470

Правильное значение затем отображается с помощью команды ifconfig, но само подключение не меняется (ни скорость, ни значение MTU, отображаемое здесь https://www.speedguide.net/analyzer.php). После переподключения MTU снова регистрируется на уровне 1300.

Как я могу эффективно и постоянно изменить MTU?

Так как инкапсуляция VPN добавляет дополнительную нагрузку на пакеты, снижение максимального размера передаваемого блока ниже стандартного значения MTU для ethernet-кадра 1500 байт помогает гарантировать, что инкапсулированные пакеты не будут фрагментированы.

Для проверки фрагментации пакетов можно использовать команду ping с переключателем “не фрагментировать”.

В моей версии ping, MacOS High Sierra, я могу указать размер контура с помощью следующих опций:

nevin% ping -g 1200 -G 1500 -D <удаленный хост>

Это дает результат:


1472 байта от x.x.x.x: icmp_seq=64 ttl=48 time=108.894 ms
556 байт от 192.168.2.1: требуется фрагментация и DF установлен (MTU 1492)
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 d505 f712 0 0000 40 01 2739 192.168.2.111 x.x.x.x

Мой MTU en0 равен 1500, но ответ выше говорит о том, что мой маршрутизатор имеет MTU 1492.

«Определение MTU по пути» попытается поддерживать размеры пакетов ниже уровня фрагментации любого соединения между двумя хостами, хотя это работает лучше всего, когда ICMP не блокируется по пути. (Если вы внезапно начнете терять пакеты без каких-либо сообщений об ошибках, значит, ICMP блокируется на каком-то вышестоящем уровне, и это может быть причиной ваших медленных скоростей: удаленный хост может отправлять пакеты > чем ваш локальный MTU, но не получает ошибок, чтобы сообщить ему уменьшить размер пакета).

Короче говоря, попытка увеличить размер MTU не улучшит вашу производительность.

Ответ или решение

Для изменения MTU (Maximum Transmission Unit) в VPN-клиенте Cisco AnyConnect на вашем macOS 10.15 существует несколько аспектов, которые необходимо учитывать. Ваша ситуация указывает на то, что значение MTU в 1300 может быть слишком низким, что влияет на производительность соединения. Давайте рассмотрим поэтапно, как можно поправить эту проблему.

1. Проверка текущего состояния MTU

Для начала вы уже выполнили команду ifconfig, которая показывает текущее значение MTU на интерфейсе utun2. Также вы упомянули, что команда sudo ifconfig utun2 mtu 1470 изменяет значение, но после разъединения и повторного подключения MTU возвращается к 1300. Это происходит, потому что Cisco AnyConnect устанавливает свои собственные параметры MTU при каждом подключении.

2. Изменение MTU через конфигурацию AnyConnect

Cisco AnyConnect может не предоставлять явную настройку для изменения MTU в графическом интерфейсе, однако вы можете попытаться изменить настройки с помощью конфигурационных файлов. Для этого выполните следующие шаги:

  • Найдите местоположение конфигурационных файлов: Обычно они находятся по пути /opt/cisco/anyconnect/profile/. Вы можете открыть терминал и ввести ls /opt/cisco/anyconnect/profile/ для просмотра доступных конфигурационных файлов.
  • Редактируйте файл профиля: Отредактируйте файл XML профиля, который используется для вашего соединения. Используйте текстовый редактор с правами суперпользователя, например, sudo nano /opt/cisco/anyconnect/profile/ваш_файл.xml.
  • Добавьте или измените значение MTU: Внутри тега <Client> добавьте элемент:

    <MTU>1470</MTU>

После внесения изменений сохраните файл, и перезапустите Cisco AnyConnect.

3. Установка MTU через системные настройки

Вы также можете попробовать установить значение MTU через системные настройки вашей macOS. Однако, как вы уже пробовали, это может не перенастраивать MTU в рамках VPN-сессии. Если вышеуказанные шаги не сработают, возможно, стоит обратить внимание на настройки роутера или сети, через которые вы подключены.

4. Тестирование и диагностика

После того как вы внесли изменения, проведите тестирование, чтобы увидеть, изменилось ли поведение соединения. Чтобы проверить размеры пакетов и избегать фрагментации:

  • Используйте команду ping с флагом "не фрагментировать":

    ping -D -s 1472 <remote_host>

Эта команда позволит вам убедиться, что пакеты размером 1472 байта (1472 + заголовки = 1500) проходят без фрагментации.

5. Заключение

Учитывая, что уменьшение MTU происходит ввиду особенностей ваших сетевых настроек, изменение MTU в конфигурационных файлах Cisco AnyConnect является наиболее надежным вариантом. Если ни один из методов не помогает, рекомендуется обратиться к системе поддержки вашего университета, поскольку они могут иметь специфические правила или ограничения по настройке VPN.

Полезные советы

  • Поддерживайте актуальность программного обеспечения: Убедитесь, что у вас установлена последняя версия Cisco AnyConnect, так как обновления могут включать улучшения или исправления.
  • Проверяйте настройки вашего маршрутизатора: Иногда неправильные настройки MTU на уровне маршрутизатора могут оказать влияние на VPN-соединение.

Таким образом, следуя вышеизложенным рекомендациям, вы сможете изменить значение MTU для Cisco AnyConnect на macOS и, возможно, улучшить сетевую производительность.

Оцените материал
Добавить комментарий

Капча загружается...