Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:mtu [2013/10/04 17:29] [Настройка MTU в параметрах сетевого подключения] |
wiki:mtu [2016/05/16 13:37] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== MTU ====== | ====== MTU ====== | ||
+ | |||
В компьютерных сетях термин maximum transmission unit (MTU) означает максимальный размер полезного блока данных одного пакета , который может быть передан протоколом без фрагментации. | В компьютерных сетях термин maximum transmission unit (MTU) означает максимальный размер полезного блока данных одного пакета , который может быть передан протоколом без фрагментации. | ||
Строка 6: | Строка 7: | ||
===== MTU Discovery Black Hole ===== | ===== MTU Discovery Black Hole ===== | ||
- | Проблема представляет потенциальную опасность для любого PPPoE соединения, использующего MTU меньше типового (1500 байт). | + | Из-за блокирования сетевым оборудованием части служебного трафика может быть нарушена работа технологии PMTUD, которая используется для автоматического определения MTU между узлами сети. |
- | Чаще всего проблема проявляется в том, что часть сайтов не заргужается. | + | Проблема представляет потенциальную опасность для любого PPPoE соединения, использующего MTU меньше типового (1500 байт). Нередко проявляется в том, что часть сайтов не загружается. |
Существует несколько вариантов решения этой проблемы. | Существует несколько вариантов решения этой проблемы. | ||
+ | |||
==== Отмена фильтрации пакетов ICMP ==== | ==== Отмена фильтрации пакетов ICMP ==== | ||
Отмена фильтрации пакетов ICMP является самым простым способом, однако зачастую подобная операция находится вне компетенции пользователя. | Отмена фильтрации пакетов ICMP является самым простым способом, однако зачастую подобная операция находится вне компетенции пользователя. | ||
- | ==== Настройка размера передаваемого пакета средствами iptables ==== | + | ==== Динамическая настройка размера передаваемого пакета средствами iptables ==== |
- | Для настройки размера передаваемого пакета на шлюзе пользователя средствами iptables меняют значение MSS (максимальный размер сегмента, то есть величина, меньшая MTU на 40 байт в случае протокола IPv4). | + | Для настройки размера передаваемого пакета на шлюзе пользователя средствами [[iptables]] меняют значение MSS (максимальный размер сегмента, то есть величина, меньшая MTU на 40 байт в случае протокола IPv4). |
- | Редактируем правила iptables: | + | Создаём скрипт с дампом правил iptables: |
<code bash>sudo nano /etc/network/if-up.d/iptables-rules</code> | <code bash>sudo nano /etc/network/if-up.d/iptables-rules</code> | ||
- | Копируем следующий код: | + | Копируем следующий код и подставляем имя внешнего сетевого интерфейса: |
- | <code>#!/sbin/iptables-restore | + | <code bash>#!/sbin/iptables-restore |
- | # <inet_if> - подставить имя внешнего интерфейса | + | |
*mangle | *mangle | ||
:FORWARD ACCEPT [0:0] | :FORWARD ACCEPT [0:0] | ||
:OUTPUT ACCEPT [0:0] | :OUTPUT ACCEPT [0:0] | ||
- | -A FORWARD -o <inet_if> -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1300:1500 -j TCPMSS --clamp-mss-to-pmtu | + | -A FORWARD -o внешний_сетевой_интерфейс -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1300:1500 -j TCPMSS --clamp-mss-to-pmtu |
- | -A OUTPUT -o <inet_if> -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1300:1500 -j TCPMSS --clamp-mss-to-pmtu | + | -A OUTPUT -o внешний_сетевой_интерфейс -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1300:1500 -j TCPMSS --clamp-mss-to-pmtu |
COMMIT</code> | COMMIT</code> | ||
Сохраняем и закрываем: <key>Ctrl</key>+<key>O</key>, <key>Enter</key>, <key>Ctrl</key>+<key>X</key> | Сохраняем и закрываем: <key>Ctrl</key>+<key>O</key>, <key>Enter</key>, <key>Ctrl</key>+<key>X</key> | ||
- | Делаем скрипт исполняемым: | + | Делаем скрипт исполняемым и загружаем правила iptables: |
- | <code bash>sudo chmod +x /etc/network/if-up.d/iptables-rules</code> | + | <code bash>sudo chmod +x /etc/network/if-up.d/iptables-rules |
- | + | sudo /etc/network/if-up.d/iptables-rules</code> | |
- | Загружаем правила iptables: | + | |
- | + | ||
- | <code bash>sudo iptables-restore /etc/network/if-up.d/iptables-rules</code> | + | |
==== Статическая настройка MTU в параметрах сетевого подключения ==== | ==== Статическая настройка MTU в параметрах сетевого подключения ==== | ||
- | Для ручной настройки MTU необходимо подобрать максимальный размер MTU, для которого не будет выводиться сообщение "Frag needed and DF set", записать это значение в параметры текущего сетевого подключения и переустановить соединение. | + | Для ручной настройки MTU необходимо подобрать максимальный размер MTU, для которого не будет выводиться сообщение "Frag needed and DF set", записать это значение в [[manual:подключение_к_интернету#прямое_подключение_к_сети|параметры текущего сетевого подключения]] и переустановить соединение. |
- | + | ||
- | Для подбора можно воспользоваться следующей командой: | + | |
- | + | ||
- | <code bash>ping -c 4 -M do -s 1500 ya.ru</code> | + | |
- | + | ||
- | либо | + | |
- | <code bash>tracepath ya.ru</code> | + | Для подбора можно воспользоваться следующими командами: |
- | если он не блокируется. | + | <code bash>ping -c 4 -M do -s 1500 ya.ru |
+ | tracepath ya.ru</code> | ||
===== Ссылки ===== | ===== Ссылки ===== | ||
- | * [[https://ru.wikipedia.org/wiki/Maximum_transmission_unit|Maximum transmission unit]] | + | * [[wpru>Maximum transmission unit]] |
* [[http://www.opennet.ru/base/net/pppoe_mtu.txt.html|О PPPoE, MTU и проблеме Path MTU Discovery Black Hole]] | * [[http://www.opennet.ru/base/net/pppoe_mtu.txt.html|О PPPoE, MTU и проблеме Path MTU Discovery Black Hole]] | ||
- | * [[http://forum.ubuntu.ru/index.php?topic=99586.0|Автозагрузка правил iptables]] | + | * [[http://forum.ubuntu.ru/index.php?topic=230520.0|Обсуждение статьи]] |
- | {{tag>mtu pmtud}} | + | {{tag>mtu pmtud сеть}} |