Перейти к содержимому
Калькуляторы

Проблема с MPLS, кстати, насущна. Конкретно - в части виртуализации всей инфраструктуры.

Микротик CHR имеет несколько неприятных багов

 

А можно по-подробнее? А то я хотел его использовать как замену тазов с ROS x86 и может пока и не стоит этого делать

 

Можно попробывать quagga-ldpd. Ссылку найдёшь в предыдущем моём посте.

Изменено пользователем ne-vlezay80

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А можно по-подробнее? А то я хотел его использовать как замену тазов с ROS x86 и может пока и не стоит этого делать

Проблемы с tcp сессиями - падение скорости где-то в недрах виртуалки. Если убрать BGP и MPLS - проблема уходит (но тогда зачем он нужен?).

До причины так и не докопались, setup был достаточно навороченный.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А можно по-подробнее? А то я хотел его использовать как замену тазов с ROS x86 и может пока и не стоит этого делать

Проблемы с tcp сессиями - падение скорости где-то в недрах виртуалки. Если убрать BGP и MPLS - проблема уходит (но тогда зачем он нужен?).

До причины так и не докопались, setup был достаточно навороченный.

В чистом linux у меня тоже возникла проблема с фрагментацией mpls пакета. Подробнее: https://www.linux.org.ru/forum/admin/12929497?lastmod=1475801505236

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Скорее всего эти проблемы из-за DF

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пожалуйста, аргуменируйте это предположение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пожалуйста, аргуменируйте это предположение.

Вот результат iperf3:

root@open-mesh:~# iperf3 -c 10.10.10.10
Connecting to host 10.10.10.10, port 5201
[  4] local 192.168.7.3 port 55702 connected to 10.10.10.10 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  49.5 KBytes   405 Kbits/sec    0   14.1 KBytes       
[  4]   1.00-2.00   sec  0.00 Bytes  0.00 bits/sec    0   14.1 KBytes       
[  4]   2.00-3.00   sec  0.00 Bytes  0.00 bits/sec    0   14.1 KBytes       
[  4]   3.00-4.00   sec  0.00 Bytes  0.00 bits/sec    0   14.1 KBytes       
[  4]   4.00-5.00   sec  0.00 Bytes  0.00 bits/sec    0   14.1 KBytes       
[  4]   5.00-6.00   sec  0.00 Bytes  0.00 bits/sec    0   14.1 KBytes       
[  4]   6.00-7.00   sec  0.00 Bytes  0.00 bits/sec    0   14.1 KBytes       
[  4]   7.00-8.00   sec  0.00 Bytes  0.00 bits/sec    0   14.1 KBytes       
[  4]   8.00-9.00   sec  0.00 Bytes  0.00 bits/sec    0   14.1 KBytes       
[  4]   9.00-10.00  sec  0.00 Bytes  0.00 bits/sec    0   14.1 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  49.5 KBytes  40.5 Kbits/sec    0             sender
[  4]   0.00-10.00  sec  0.00 Bytes  0.00 bits/sec                  receiver
iperf Done.

 

Это проблема связанна с тем, что большие пакеты не проходили.

Изменено пользователем ne-vlezay80

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А вот что по повуду MPLS в Linux:

net: mpls: Fix multipath selection for LSR use case

 

MPLS multipath for LSR is broken -- always selecting the first nexthop

in the one label case. For example:

 

$ ip -f mpls ro ls

100

nexthop as to 200 via inet 172.16.2.2 dev virt12

nexthop as to 300 via inet 172.16.3.2 dev virt13

101

nexthop as to 201 via inet6 2000:2::2 dev virt12

nexthop as to 301 via inet6 2000:3::2 dev virt13

 

In this example incoming packets have a single MPLS labels which means

BOS bit is set. The BOS bit is passed from mpls_forward down to

mpls_multipath_hash which never processes the hash loop because BOS is 1.

 

Update mpls_multipath_hash to process the entire label stack. mpls_hdr_len

tracks the total mpls header length on each pass (on pass N mpls_hdr_len

is N * sizeof(mpls_shim_hdr)). When the label is found with the BOS set

it verifies the skb has sufficient header for ipv4 or ipv6, and find the

IPv4 and IPv6 header by using the last mpls_hdr pointer and adding 1 to

advance past it.

 

With these changes I have verified the code correctly sees the label,

BOS, IPv4 and IPv6 addresses in the network header and icmp/tcp/udp

traffic for ipv4 and ipv6 are distributed across the nexthops.

 

Fixes: 1c78efa ("mpls: flow-based multipath selection")

Acked-by: Robert Shearman <rshearma@brocade.com>

Signed-off-by: David Ahern <dsa@cumulusnetworks.com>

Signed-off-by: David S. Miller <davem@davemloft.net>

 

net: Specify the owning module for lwtunnel ops

 

Modules implementing lwtunnel ops should not be allowed to unload

while there is state alive using those ops, so specify the owning

module for all lwtunnel ops.

 

Signed-off-by: Robert Shearman <rshearma@brocade.com>

Signed-off-by: David S. Miller <davem@davemloft.net>

Как видим, mpls в linux не заброшен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кстати, тестировал я ip over mpls в linux, скорость была где-то 70-80Mbps. Хотя, может это связанно с тем, что по mpls шёл только исходящий трафик, а входящий шёл напрямую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.