Архив рубрики: Uncategorized

Fragmentation и MTU

На некоторых интерфейсах для LTE станций установлено IP_MTU=1600, (так исторически сложилось) на что это может повлиять? Если мы будем генерировать трафик большого размера с src данной PE в сторону BTS мы получим дроп на удаленной стороне. А что будет если к нам придет трафик c DF=0, пересоберет ли пакет PE на основе IP_MTU исходящего интерфейса:

RFC791

In the routing of messages from one internet module to another, datagrams may need to traverse a network whose maximum packet size is smaller than the size of the datagram. To overcome this difficulty, a fragmentation mechanism is provided in the internet protocol.

If the total length is less than or equal the maximum transmission unit then submit this datagram to the next step in datagram processing; otherwise cut the datagram into two fragments, the first fragment being the maximum size, and the second fragment being the rest of the datagram. The first fragment is submitted to the next step in datagram processing, while the second fragment is submitted to this procedure in case it is still too large.

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

В случае с NAT мы также будем генерировать трафик со своим src, но пакет по прежнему не будет «пересобираться»:

Размер первого фрагмента IP пакета 1396 а не 1400 например, т.к мы выравниваем по 64битной границе.

RFC791

The data of the long datagram is divided into two portions on a 8 octet (64 bit) boundary (the second portion might not be an integral multiple of 8 octets, but the first must be).

Fragment Offset: 13 bits. This field indicates where in the datagram this fragment belongs. The fragment offset is measured in units of 8 octets (64 bits). The first fragment has offset zero.