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

Я перехожу к этому файлу /etc/dhcp/dhclient.confи добавьте эти два строка перед строкой запроса

default interface-mtu 1200;

supercede interface-mtu 1200;

и после того, как я перезапускаю и начальная загрузка системы и работаю ifconfig команда, это говорит мой MTU размер является 1280, Почему?? Как я могу изменить его на точный 1200??

Обновление:

cat /etc/resolv.conf

lrwxrwxrwx 1 root root 29 Mar 19 13:05 /etc/resolv.conf -> ../run/resolvconf/resolv.conf

и resolv.conf файл

nameserver 1.1.1.1
nameserver 8.8.8.8
nameserver 2606:4700:4700::1111
nameserver 127.0.0.53
options edns0

resolvectl вывод:

Current DNS Server: 1.1.1.1
     DNS Servers: 1.1.1.1
                  8.8.8.8
                  2606:4700:4700::1111
      DNSSEC NTA: 10.in-addr.arpa

и dpkg -l *dnsmasq* вывод:

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig- 
aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                   Version          Architecture     
Description
+++-======================-================-================- 
==================================================
un  dnsmasq                <none>           <none>           (no 
description available)
ii  dnsmasq-base           2.79-1           amd64            Small 
caching DNS proxy and DHCP/TFTP server
un  dnsmasq-base-lua       <none>           <none>           (no 
description available)
0
задан 24 March 2019 в 16:38

4 ответа

Для определения корректной установки MTU запустите со всех настроек MTU = 1500 и VPN = прочь. (VPN требует другого тестирования).

Примечание: сначала удалите свои модификации к /etc/dhcp/dhclient.conf и перезагрузка.

В терминале:

ping [-c count] [-M do] [-s packet_size] [host]

Используемые опции:

  • c count: количество раз для проверки с помощью ping-запросов
  • M hint: Избранный Путь стратегия Исследования MTU. может быть также do (запретите фрагментацию, даже локальную), want (сделайте исследование PMTU, фрагмент локально, когда размер пакета будет большим), или dont (не устанавливайте флаг DF).
  • s packet_size: Указывает число байтов данных, которые будут отправлены.

Необходимо всегда запускать в 1472 и прокладывать себе путь вниз к 10 каждым разам. После того как Вы получаете ответ, поднимаетесь на 1, пока Вы не получаете фрагментированный пакет. Примите, который значение (длятся хорошее значение) и добавляет 28 к значению для составления различных заголовков TCP/IP. Например, скажем, тот 1452 был надлежащим размером пакета (где Вы сначала получили ответ ICMP на свой ping). Фактический размер MTU был бы 1480, который является оптимумом для сети, с которой мы работаем.

ping -c 4 -M do -s 1472 8.8.8.8 # this will probably show fragmentation

ping -c 4 -M do -s 1462 8.8.8.8 # may show fragmentation

ping -c 4 -M do -s 1452 8.8.8.8 # no fragmentation?

ping -c 4 -M do -s 1453 8.8.8.8 # still no fragmentation?

ссылка: Как определить надлежащий размер MTU с ping ICMP

Обновление № 1:

Я рекомендовал бы удалить 3 дополнительных сервера имен, к которым Вы добавили /etc/resolvconf/resolv.conf.d/head и позвольте systemd-разрешенный, правильно справляются /etc/resolv.conf. Это должно работать лучше с VPN.

Обновление № 2:

Можно также установить ДРУГОЙ проводной профиль / профиль беспроводного соединения, только для VPN, которая соединяет MTU=1200 проводами. В terminal, ввести nm-connection-editor и там можно настроить профиль только для VPN с автоподключением и MTU.

enter image description here enter image description here

1
ответ дан 26 October 2019 в 00:16

Можно автоматизировать установку mtu для порта VPN, когда VPN повышается, как предложено в сценарии /etc/NetworkManager/dispatcher.d/01-ifupdown. Сценарии в dispatcher.d папку называют с портом и событием как аргумент. Так, создайте сценарий в папке dispatcher.d, со следующим содержанием (если Вы хотите mtu 1200),

    #!/bin/sh  

    #info : pre-up and pre-down are not implemented in network-manager

    if [ "$2" = "vpn-up" ]; then  
        /sbin/ifconfig "$1" mtu 1200  
    fi  

Название сценария не имеет значения, делает это исполняемым файлом с chmod +x.

1
ответ дан 26 October 2019 в 00:16

Вы могли использовать tracepath (от iputils-tracepath пакет) для определения Пути MTU:

walt@bat:~(0)$ dpkg -S $(type -p tracepath)
iputils-tracepath: /usr/bin/tracepath
walt@bat:~(0)$ tracepath primus.ip4.torontointernetxchange.net
 1?: [LOCALHOST]                                         pmtu 1500
 1:  spark3y                                               0.525ms 
 1:  spark3y                                               0.497ms 
 2:  spark3y                                               0.465ms pmtu 1492
 2:  dsl-xxx-xxx-xxx-xxx.tor.primus.ca                    32.701ms 
 3:  10.201.117.2                                         34.726ms asymm  5 
 4:  bb1.tor.primus.ca                                    39.238ms 
 5:  primus.ip4.torontointernetxchange.net                33.295ms reached
     Resume: pmtu 1492 hops 5 back 4 
1
ответ дан 26 October 2019 в 00:16

Для тех, кто работает с Ubuntu под WSL, я обнаружил, что изменения MTU при присоединении к VPN не распространяются на интерфейс WSL vEthernet

# In windows command prompt
C:\Users\timothy.vanheest>netsh interface ipv4 show subinterface

   MTU  MediaSenseState   Bytes In  Bytes Out  Interface
------  ---------------  ---------  ---------  -------------
4294967295                1          0     111928  Loopback Pseudo-Interface 1
  1500                1  57917164385  17028233076  Wi-Fi
  1500                5          0          0  Ethernet
  1500                5          0          0  Local Area Connection* 1
  1500                5          0          0  Bluetooth Network Connection
  1500                5          0          0  Local Area Connection* 2
  1350                1  791851055   63176967  Ethernet 3
  1500                5          0          0  Ethernet 4
  1500                1    5268640   18986381  vEthernet (WSL)

Выполнение этой команды (от имени администратора) исправило ее таким образом, что пережил перезапуски.

# See: https://github.com/microsoft/WSL/issues/3957#issuecomment-479343268
C:\Users\timothy.vanheest> netsh interface ipv4 set subinterface "vEthernet (WSL)" mtu=1350 store=persistent

Не самый лучший, поскольку это означает, что я использую жестко заданный MTU вместо оптимального для текущей сети, но он стабилен.

1
ответ дан 14 October 2020 в 17:54

Другие вопросы по тегам:

Похожие вопросы: