Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:mtu [2013/10/04 17:48] [Динамическая настройка размера передаваемого пакета средствами iptables] |
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 ==== | ||
Строка 16: | Строка 18: | ||
==== Динамическая настройка размера передаваемого пакета средствами iptables ==== | ==== Динамическая настройка размера передаваемого пакета средствами iptables ==== | ||
- | Для настройки размера передаваемого пакета на шлюзе пользователя средствами iptables меняют значение MSS (максимальный размер сегмента, то есть величина, меньшая MTU на 40 байт в случае протокола IPv4). | + | Для настройки размера передаваемого пакета на шлюзе пользователя средствами [[iptables]] меняют значение MSS (максимальный размер сегмента, то есть величина, меньшая MTU на 40 байт в случае протокола IPv4). |
Создаём скрипт с дампом правил iptables: | Создаём скрипт с дампом правил iptables: | ||
Строка 22: | Строка 24: | ||
<code bash>sudo nano /etc/network/if-up.d/iptables-rules</code> | <code bash>sudo nano /etc/network/if-up.d/iptables-rules</code> | ||
- | Копируем следующий код и заменяем <inet_if> на имя внешнего сетевого интерфейса: | + | Копируем следующий код и подставляем имя внешнего сетевого интерфейса: |
- | <code>#!/sbin/iptables-restore | + | <code bash>#!/sbin/iptables-restore |
*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> | ||
Строка 37: | Строка 39: | ||
<code bash>sudo chmod +x /etc/network/if-up.d/iptables-rules | <code bash>sudo chmod +x /etc/network/if-up.d/iptables-rules | ||
- | sudo iptables-restore /etc/network/if-up.d/iptables-rules</code> | + | sudo /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 сеть}} |