Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: MTU и проблемы фрагментации  (Прочитано 4883 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Tonny_Bennet

  • Автор темы
  • Новичок
  • *
  • Сообщений: 43
    • Просмотр профиля
MTU и проблемы фрагментации
« : 26 Августа 2014, 13:02:29 »
Здравствуйте.

Есть серверы под Ubuntu Server; есть аппаратные роутеры Mikrotik. Они связаны при помощи GRE туннелей. При создании gre интерфейса, как мне кажется, система сама назначает ему MTU, исходя из "верхнего" интерфейса.

Получается, что если верхний интерфейс PPPoE (MTU:1492), то у gre интерфейса MTU 1468. Если верхний интерфейс IPoE (MTU:1500), то у gre интерфейса MTU: 1476.

В этом, по сути, и был "затык" в запуске OSPF, в логах он ругался на нестыковку MTU на туннельных интерфейсах. Уменьшил MTU на одном из интерфейсов - всё заработало. Радость и все вытекающие, но есть одно но!

Если из одной сети пустить пинг ping 192.168.7.5 -l 1500, то пакеты не идут. В идеале пакет на маршрутизаторе должен фрагментироваться и делиться на два пакета. Вопрос: почему он может не фрагментироватсья?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28334
    • Просмотр профиля
Re: MTU и проблемы фрагментации
« Ответ #1 : 26 Августа 2014, 13:32:56 »
Здравствуйте.

Есть серверы под Ubuntu Server; есть аппаратные роутеры Mikrotik. Они связаны при помощи GRE туннелей. При создании gre интерфейса, как мне кажется,
В информатике нет места глюкам.
ip link, tracepath.
Цитировать
система сама назначает ему MTU, исходя из "верхнего" интерфейса.

Получается, что если верхний интерфейс PPPoE (MTU:1492), то у gre интерфейса MTU 1468. Если верхний интерфейс IPoE (MTU:1500), то у gre интерфейса MTU: 1476.

В этом, по сути, и был "затык" в запуске OSPF, в логах он ругался на нестыковку MTU на туннельных интерфейсах. Уменьшил MTU на одном из интерфейсов - всё заработало. Радость и все вытекающие, но есть одно но!

Если из одной сети пустить пинг ping 192.168.7.5 -l 1500, то пакеты не идут. В идеале пакет на маршрутизаторе должен фрагментироваться и делиться на два пакета. Вопрос: почему он может не фрагментироватсья?
Потому что ICMP какой-то умник заблокировал.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Tonny_Bennet

  • Автор темы
  • Новичок
  • *
  • Сообщений: 43
    • Просмотр профиля
Re: MTU и проблемы фрагментации
« Ответ #2 : 26 Августа 2014, 13:49:13 »
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc htb state UP qlen 1000
    link/ether 10:fe:ed:05:ec:a7 brd ff:ff:ff:ff:ff:ff
3: eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 00:50:ba:bf:84:dc brd ff:ff:ff:ff:ff:ff
4: eth3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:19:5b:8b:b9:39 brd ff:ff:ff:ff:ff:ff
5: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:24:1d:ca:8d:83 brd ff:ff:ff:ff:ff:ff
6: gre0: <NOARP> mtu 1476 qdisc noop state DOWN
    link/gre 0.0.0.0 brd 0.0.0.0
145: vlan9@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
    link/ether 10:fe:ed:05:ec:a7 brd ff:ff:ff:ff:ff:ff
147: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc pfifo_fast state UNKNOWN qlen 3
    link/ppp
149: gre-pl-pickup0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1468 qdisc noqueue state UNKNOWN
    link/gre 93.15.3.9 peer 92.21.1.62
150: gre-pl-almaz0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1468 qdisc noqueue state UNKNOWN
    link/gre 93.15.3.9 peer 80.24.11.23
151: gre-pl-stpr0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1468 qdisc noqueue state UNKNOWN
    link/gre 93.15.3.9 peer 19.25.24.10
152: gre-pl-prvlg0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1468 qdisc noqueue state UNKNOWN
    link/gre 93.15.3.9 peer 23.24.30.12
153: gre-pl-astr0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1468 qdisc noqueue state UNKNOWN
    link/gre 93.15.3.9 peer 15.26.11.22
166: vpn_net: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 500
    link/none
187: ppp1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1396 qdisc pfifo_fast state UNKNOWN qlen 3
    link/ppp

Трассировка с маршрутизатора сети 192.168.0.0/24 (192.168.0.10) до узла (192.168.4.2), который находится за интерфейсом gre-pl-stpr0

~$ tracepath 192.168.4.2
 1:  192.168.20.9                                          0.146ms pmtu 1468
 1:  192.168.20.9                                          0.047ms pmtu 1434
 1:  192.168.20.10                                        43.473ms
 2:  192.168.20.10                                        43.303ms pmtu 1400
 2:  192.168.4.2                                          44.238ms reached
     Resume: pmtu 1400 hops 2 back 127

Потому что ICMP какой-то умник заблокировал.

Этот умник я (в смысле я настраиваю все серверы) и ICMP я не блокировал.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28334
    • Просмотр профиля
Re: MTU и проблемы фрагментации
« Ответ #3 : 26 Августа 2014, 15:06:25 »
Читайте вывод tracepath, там есть подсказка.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Tonny_Bennet

  • Автор темы
  • Новичок
  • *
  • Сообщений: 43
    • Просмотр профиля
Re: MTU и проблемы фрагментации
« Ответ #4 : 26 Августа 2014, 16:31:53 »
Читайте вывод tracepath, там есть подсказка.

Прочитал. Подсказка, это pmtu 1400, я правильно понял? MTU на маршруте до этого хоста 1400 байт. Почему тогда этот размер не устанавливают участники сетевого обмена?

Пользователь решил продолжить мысль 26 Августа 2014, 16:44:08:
Изменил MTU на обоих интерфейсах на 1400. Пошли пакеты больше MTU, т.е. фрагментация заработала.

Запутался ещё сильнее.
« Последнее редактирование: 26 Августа 2014, 16:44:08 от Tonny_Bennet »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28334
    • Просмотр профиля
Re: MTU и проблемы фрагментации
« Ответ #5 : 26 Августа 2014, 17:33:22 »
Посмотрите, ГДЕ MTU меняется на 1400.
У вас 192.168.20.10 не пропускает пакеты бОльшего размера и, видимо, не отвечает на попытки послать через него большие пакеты.
И, нет, фрагментироваться пакет в современной сети не должен. Погуглите на тему Path MTU discovery и почему современный интернет практически поголовно работает с поднятым флагом DF.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Tonny_Bennet

  • Автор темы
  • Новичок
  • *
  • Сообщений: 43
    • Просмотр профиля
Re: MTU и проблемы фрагментации
« Ответ #6 : 26 Августа 2014, 18:12:29 »
192.168.20.10 это дальний от меня конец GRE туннеля. На обоих концах тунеля  MTU был 1468. Всё в принципе работало: голос по iax2, RDP и файлы. Заметил, что не открывается веб-морда phpmyadmin. Полез искать. Увидел что не проходят большие пакеты. Вспомнил про MTU. И к слову на всех маршрутизаторах в iptables стоит

iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Вопрос в чём был (да и есть пока): Почему с MTU 1468 не работал Path MTU discovery, а с MTU 1400 заработал? Или не заработал?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28334
    • Просмотр профиля
Re: MTU и проблемы фрагментации
« Ответ #7 : 26 Августа 2014, 19:42:14 »
Не заработал. PMTU работает на ответах удалённого маршрутизатора "эй! слонами не кидайся-то!"
Вы вручную установили MTU так, что подобные ответы стали ненужны.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Tonny_Bennet

  • Автор темы
  • Новичок
  • *
  • Сообщений: 43
    • Просмотр профиля
Re: MTU и проблемы фрагментации
« Ответ #8 : 27 Августа 2014, 09:37:06 »
Не заработал. PMTU работает на ответах удалённого маршрутизатора "эй! слонами не кидайся-то!"
Вы вручную установили MTU так, что подобные ответы стали ненужны.

А как сделать так, чтобы PMTU заработал? И стоит ли?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28334
    • Просмотр профиля
Re: MTU и проблемы фрагментации
« Ответ #9 : 27 Августа 2014, 16:08:39 »
Выяснить, отправляются ли вообще ICMP о недоставке.
Верните MTU в сколько_там_было и попингуйте трассу с флагом DF и без.
Запустите tcpdump на обоих шлюзах.

tcpdump -i $extIF "host $srchostIP and not port 22" -w $localfile
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.035 секунд. Запросов: 25.