Jump to content

Recommended Posts

Posted (edited)

Короче, поднял я тестовый MPLS по схеме:

modprobe mpls_router
modprobe mpls_gso
modprobe mpls_iptunnel
sysctl -w net.mpls.conf.lo.input=1
sysctl -w net.mpls.platform_labels=1048575
ip link add veth0 type veth peer name veth1
ip link add veth2 type veth peer name veth3
sysctl -w net.mpls.conf.veth0.input=1
sysctl -w net.mpls.conf.veth2.input=1
ifconfig veth0 10.3.3.1/24 up
ifconfig veth2 10.4.4.1/24 up
ip netns add host1
ip netns add host2
ip link set veth1 netns host1
ip link set veth3 netns host2
ip netns exec host1 ifconfig veth1 10.3.3.2/24 up
ip netns exec host2 ifconfig veth3 10.4.4.2/24 up
ip netns exec host1 ip route add 10.10.10.2/32 encap mpls 112 via inet 10.3.3.1
ip netns exec host2 ip route add 10.10.10.1/32 encap mpls 111 via inet 10.4.4.1
ip -f mpls route add 111 via inet 10.3.3.2
ip -f mpls route add 112 via inet 10.4.4.2
ip netns exec host1 bash
ifconfig lo up
ip addr add 10.10.10.1/32 dev lo
ip netns exec host2 bash
ifconfig lo up
ip addr add 10.10.10.2/32 dev lo
ip netns exec host1 bash

Тестируем.

1. Вначале ping'ом:

Host1:
root@ne-vlezay80:~# ping 10.10.10.2 -I 10.10.10.1
PING 10.10.10.2 (10.10.10.2) from 10.10.10.1 : 56(84) bytes of data.
64 bytes from 10.10.10.2: icmp_seq=1 ttl=63 time=0.043 ms
64 bytes from 10.10.10.2: icmp_seq=2 ttl=63 time=0.038 ms
64 bytes from 10.10.10.2: icmp_seq=3 ttl=63 time=0.049 ms
64 bytes from 10.10.10.2: icmp_seq=4 ttl=63 time=0.048 ms
64 bytes from 10.10.10.2: icmp_seq=5 ttl=63 time=0.048 ms
64 bytes from 10.10.10.2: icmp_seq=6 ttl=63 time=0.047 ms
64 bytes from 10.10.10.2: icmp_seq=7 ttl=63 time=0.044 ms
64 bytes from 10.10.10.2: icmp_seq=8 ttl=63 time=0.046 ms
^C
--- 10.10.10.2 ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7174ms
rtt min/avg/max/mdev = 0.038/0.045/0.049/0.006 ms
Host2:
root@ne-vlezay80:~# ping 10.10.10.1 -I 10.10.10.2
PING 10.10.10.1 (10.10.10.1) from 10.10.10.2 : 56(84) bytes of data.
64 bytes from 10.10.10.1: icmp_seq=1 ttl=63 time=0.040 ms
64 bytes from 10.10.10.1: icmp_seq=2 ttl=63 time=0.037 ms
64 bytes from 10.10.10.1: icmp_seq=3 ttl=63 time=0.037 ms
64 bytes from 10.10.10.1: icmp_seq=4 ttl=63 time=0.042 ms
64 bytes from 10.10.10.1: icmp_seq=5 ttl=63 time=0.042 ms
64 bytes from 10.10.10.1: icmp_seq=6 ttl=63 time=0.045 ms
64 bytes from 10.10.10.1: icmp_seq=7 ttl=63 time=0.045 ms
64 bytes from 10.10.10.1: icmp_seq=8 ttl=63 time=0.038 ms
^C
--- 10.10.10.1 ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7176ms
rtt min/avg/max/mdev = 0.037/0.040/0.045/0.008 ms

Ну, что? Потестируем iperf'ом:

Host1:
iperf3 -s -B 10.10.10.2 -D
Host2:
root@ne-vlezay80:~# ip netns exec host1 bash
root@ne-vlezay80:~# iperf3 -c 10.10.10.2 -B 10.10.10.1   
Connecting to host 10.10.10.2, port 5201
[  4] local 10.10.10.1 port 57039 connected to 10.10.10.2 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  2.00 GBytes  17.2 Gbits/sec    0   1.95 MBytes       
[  4]   1.00-2.00   sec  2.01 GBytes  17.2 Gbits/sec    0   1.95 MBytes       
[  4]   2.00-3.00   sec  2.01 GBytes  17.2 Gbits/sec    0   1.95 MBytes       
[  4]   3.00-4.00   sec  2.01 GBytes  17.3 Gbits/sec    0   1.95 MBytes       
[  4]   4.00-5.00   sec  2.01 GBytes  17.2 Gbits/sec    0   1.95 MBytes       
[  4]   5.00-6.00   sec  2.01 GBytes  17.2 Gbits/sec    0   1.95 MBytes       
[  4]   6.00-7.00   sec  2.01 GBytes  17.3 Gbits/sec    0   1.95 MBytes       
[  4]   7.00-8.00   sec  2.01 GBytes  17.3 Gbits/sec    0   1.95 MBytes       
[  4]   8.00-9.00   sec  2.01 GBytes  17.3 Gbits/sec    0   1.95 MBytes       
[  4]   9.00-10.00  sec  2.01 GBytes  17.3 Gbits/sec    0   1.95 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  20.1 GBytes  17.3 Gbits/sec    0             sender
[  4]   0.00-10.00  sec  20.1 GBytes  17.3 Gbits/sec                  receiver

iperf Done.

root@ne-vlezay80:~# iperf3 -c 10.10.10.2 -B 10.10.10.1 -b -b 1tb
Connecting to host 10.10.10.2, port 5201
[  4] local 10.10.10.1 port 57609 connected to 10.10.10.2 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   1.00-2.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   2.00-3.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   3.00-4.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   4.00-5.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   5.00-6.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   6.00-7.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   7.00-8.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   8.00-9.00   sec  2.11 GBytes  18.1 Gbits/sec    0   1.95 MBytes       
[  4]   9.00-10.00  sec  2.11 GBytes  18.2 Gbits/sec    0   1.95 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  21.1 GBytes  18.1 Gbits/sec    0             sender
[  4]   0.00-10.00  sec  21.1 GBytes  18.1 Gbits/sec                  receiver

iperf Done.


 

tcpdump:

root@ne-vlezay80:~# tcpdump -i veth2 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on veth2, link-type EN10MB (Ethernet), capture size 262144 bytes
07:02:36.886598 IP 10.10.10.1 > 10.10.10.2: ICMP echo request, id 1677, seq 1, length 64
07:02:36.886617 MPLS (label 111, exp 0, [s], ttl 64) IP 10.10.10.2 > 10.10.10.1: ICMP echo reply, id 1677, seq 1, length 64
07:02:37.895065 IP 10.10.10.1 > 10.10.10.2: ICMP echo request, id 1677, seq 2, length 64
07:02:37.895081 MPLS (label 111, exp 0, [s], ttl 64) IP 10.10.10.2 > 10.10.10.1: ICMP echo reply, id 1677, seq 2, length 64

root@ne-vlezay80:~# tcpdump -i veth0 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on veth0, link-type EN10MB (Ethernet), capture size 262144 bytes
07:03:30.368146 MPLS (label 112, exp 0, [s], ttl 64) IP 10.10.10.1 > 10.10.10.2: ICMP echo request, id 1679, seq 1, length 64
07:03:30.368172 IP 10.10.10.2 > 10.10.10.1: ICMP echo reply, id 1679, seq 1, length 64
07:03:31.399057 MPLS (label 112, exp 0, [s], ttl 64) IP 10.10.10.1 > 10.10.10.2: ICMP echo request, id 1679, seq 2, length 64
07:03:31.399080 IP 10.10.10.2 > 10.10.10.1: ICMP echo reply, id 1679, seq 2, length 64
07:03:32.423182 MPLS (label 112, exp 0, [s], ttl 64) IP 10.10.10.1 > 10.10.10.2: ICMP echo request, id 1679, seq 3, length 64
07:03:32.423210 IP 10.10.10.2 > 10.10.10.1: ICMP echo reply, id 1679, seq 3, length 64
07:03:33.447195 MPLS (label 112, exp 0, [s], ttl 64) IP 10.10.10.1 > 10.10.10.2: ICMP echo request, id 1679, seq 4, length 64
07:03:33.447214 IP 10.10.10.2 > 10.10.10.1: ICMP echo reply, id 1679, seq 4, length 64
07:03:34.471219 MPLS (label 112, exp 0, [s], ttl 64) IP 10.10.10.1 > 10.10.10.2: ICMP echo request, id 1679, seq 5, length 64
07:03:34.471239 IP 10.10.10.2 > 10.10.10.1: ICMP echo reply, id 1679, seq 5, length 64

Как видим, в Linux MPLS работает довольно таки не плохо, но нехватает:

*VPLS

*MPLS в netfilter для фильтрации mpls-пакетов на P уровне. :D

 

А так впринцепе, всё работает.

 

В случае чего для стыка с провайдером хватит.

Вот связанные проекты:

https://frrouting.org/

https://github.com/FRRouting/frr/pull/343

 

Кстати, вот ifconfig:

root@ne-vlezay80:~# ifconfig
lo        Link encap:Local Loopback  
         inet addr:127.0.0.1  Mask:255.0.0.0
         inet6 addr: ::1/128 Scope:Host
         UP LOOPBACK RUNNING  MTU:65536  Metric:1
         RX packets:2 errors:0 dropped:0 overruns:0 frame:0
         TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:100 (100.0 B)  TX bytes:100 (100.0 B)

veth1     Link encap:Ethernet  HWaddr d2:60:95:e8:a4:d6  
         inet addr:10.3.3.2  Bcast:10.3.3.255  Mask:255.255.255.0
         inet6 addr: fe80::d060:95ff:fee8:a4d6/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:1047404 errors:0 dropped:0 overruns:0 frame:0
         TX packets:2164674 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:22610878516 (21.0 GiB)  TX bytes:104546390092 (97.3 GiB)

 

Самое прикольное то, что некакой фрагментации нет))

Что касается ipv6:

root@ne-vlezay80:~# ifconfig
lo        Link encap:Local Loopback  
         inet addr:127.0.0.1  Mask:255.0.0.0
         inet6 addr: ::1/128 Scope:Host
         inet6 addr: 2001:db8::2/128 Scope:Global
         UP LOOPBACK RUNNING  MTU:65536  Metric:1
         RX packets:35 errors:0 dropped:0 overruns:0 frame:0
         TX packets:35 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:5116 (4.9 KiB)  TX bytes:5116 (4.9 KiB)

veth1     Link encap:Ethernet  HWaddr d2:60:95:e8:a4:d6  
         inet addr:10.3.3.2  Bcast:10.3.3.255  Mask:255.255.255.0
         inet6 addr: fd00:2::2/64 Scope:Global
         inet6 addr: fe80::d060:95ff:fee8:a4d6/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:313962692 errors:0 dropped:0 overruns:0 frame:0
         TX packets:621934215 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:65709865620 (61.1 GiB)  TX bytes:2855621015039 (2.5 TiB)

root@ne-vlezay80:~# iperf3 -c 2001:0db8::1 -B 2001:0db8::2
Connecting to host 2001:0db8::1, port 5201
[  4] local 2001:db8::2 port 52989 connected to 2001:db8::1 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  1.96 GBytes  16.8 Gbits/sec    0   2.46 MBytes       
[  4]   1.00-2.00   sec  1.97 GBytes  16.9 Gbits/sec    0   2.46 MBytes       
[  4]   2.00-3.00   sec  1.97 GBytes  17.0 Gbits/sec    0   2.46 MBytes       
[  4]   3.00-4.00   sec  1.98 GBytes  17.0 Gbits/sec    0   2.46 MBytes       
[  4]   4.00-5.00   sec  1.98 GBytes  17.0 Gbits/sec    0   2.46 MBytes       
[  4]   5.00-6.00   sec  1.98 GBytes  17.0 Gbits/sec    0   2.46 MBytes       
[  4]   6.00-7.00   sec  1.98 GBytes  17.0 Gbits/sec    0   2.46 MBytes       
[  4]   7.00-8.00   sec  1.98 GBytes  17.0 Gbits/sec    0   2.46 MBytes       
[  4]   8.00-9.00   sec  1.98 GBytes  17.0 Gbits/sec    0   2.46 MBytes       
[  4]   9.00-10.00  sec  1.97 GBytes  16.9 Gbits/sec    0   2.46 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  19.7 GBytes  17.0 Gbits/sec    0             sender
[  4]   0.00-10.00  sec  19.7 GBytes  17.0 Gbits/sec                  receiver

iperf Done.

root@ne-vlezay80:~# tcpdump -i veth0 -n -p mpls
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on veth0, link-type EN10MB (Ethernet), capture size 262144 bytes
11:46:38.343051 MPLS (label 112, exp 0, [s], ttl 64) IP6 2001:db8::2 > 2001:db8::1: ICMP6, echo request, seq 10, length 64
11:46:39.367051 MPLS (label 112, exp 0, [s], ttl 64) IP6 2001:db8::2 > 2001:db8::1: ICMP6, echo request, seq 11, length 64
11:46:40.391088 MPLS (label 112, exp 0, [s], ttl 64) IP6 2001:db8::2 > 2001:db8::1: ICMP6, echo request, seq 12, length 64
11:46:41.415051 MPLS (label 112, exp 0, [s], ttl 64) IP6 2001:db8::2 > 2001:db8::1: ICMP6, echo request, seq 13, length 64
11:46:42.439056 MPLS (label 112, exp 0, [s], ttl 64) IP6 2001:db8::2 > 2001:db8::1: ICMP6, echo request, seq 14, length 64
11:46:43.463054 MPLS (label 112, exp 0, [s], ttl 64) IP6 2001:db8::2 > 2001:db8::1: ICMP6, echo request, seq 15, length 64
11:46:44.487062 MPLS (label 112, exp 0, [s], ttl 64) IP6 2001:db8::2 > 2001:db8::1: ICMP6, echo request, seq 16, length 64
11:46:45.511013 MPLS (label 112, exp 0, [s], ttl 64) IP6 2001:db8::2 > 2001:db8::1: ICMP6, echo request, seq 17, length 64
^C
8 packets captured
8 packets received by filter
0 packets dropped by kernel

Edited by ne-vlezay80
Posted

Собственно, ничего нового автор нам не принёс, всё это есть в анонсах ядер. Да вообщем-то статические метки не сильно и интересны. За исключением каких-то особо изощрённых кейсов, никто статически метки в наше время не назначает, а делают это через специальные протоколы (transport ldp/rsvp ,service ldp/bgp)

 

вот когда взлетит l2vpn/l3vpn с сигнализацией, это будет действительно достойно внимания.

 

ТС, не пробовали скрестить l3-vpn-ы с linux frrouting с виртальными cisco, mikrotik, etc?

 

Голый P-роутер с форвардингом на ядре линукса, мне кажется, не особо интересный кейс

Posted

>*MPLS в netfilter для фильтрации mpls-пакетов на P уровне. :D

 

Ну вообще это считается ошибкой дизайна и обычно подобных фич нет в явном виде(mpls label acl) в hw-mpls-свитчах/роутерах. Хотя конечно если сильно захотеть, то в некоторых железках можно явно сказать, что если байт X=Y, то дропать пакет. В принципе, так можно сделать и на linux с использованием iptables bpf, но опять же повторюсь, если вам это надо, то это ошибка дизайна сети

Posted

Собственно, ничего нового автор нам не принёс, всё это есть в анонсах ядер. Да вообщем-то статические метки не сильно и интересны. За исключением каких-то особо изощрённых кейсов, никто статически метки в наше время не назначает, а делают это через специальные протоколы (transport ldp/rsvp ,service ldp/bgp)

 

вот когда взлетит l2vpn/l3vpn с сигнализацией, это будет действительно достойно внимания.

 

ТС, не пробовали скрестить l3-vpn-ы с linux frrouting с виртальными cisco, mikrotik, etc?

 

Голый P-роутер с форвардингом на ядре линукса, мне кажется, не особо интересный кейс

 

вот когда взлетит l2vpn/l3vpn с сигнализацией, это будет действительно достойно внимания.

Для обычной маршрутизации это не надо. Если тебе нужен l2vpn/l3vpn, то можно на конце сети использовать OpenBSD. Как P - linux впринцепе пока сойдёт. Кстати, если по каким-то причинам придётся в добровольно-принудительном порядке использовать MPLS - этого хватит. А это уже VPLS. Linux, пока умеет только MPLS.

ТС, не пробовали скрестить l3-vpn-ы с linux frrouting с виртальными cisco, mikrotik, etc?

cisco есть только от провайдера, он с ней соответственно игратся не даст.

mikrotik - нету и некогда не будет.

Голый P-роутер с форвардингом на ядре линукса, мне кажется, не особо интересный кейс

Какая тебе разница, на чём этот P-роутер! Самое главное, чтобы он со своими задачами справлялся.

 

А, вот кстати и сигналка для MPLS:

https://github.com/rwestphal/quagga-ldpd/wiki/ldpd-basic-test-setup

Posted

ne-vlezay80

зачем вам P-роутер на линуксе? Какие задачи он должен решать? Сейчас же китайцы научились делать дешевые mpls/l3-свитчи.

зачем вам P-роутер на линуксе?

Для тестов. Сайчас правда MPLS не использую

Сейчас же китайцы научились делать дешевые mpls/l3-свитчи.

Там проблема в том, что всё то что касается MPLS надо лицензировать. Интересно было бы узнать, почему VPLS есть только на коммерчиском ПО, а также в OpenBSD?

Какие задачи он должен решать?

1. Маршрутизировать MPLS-пакеты

2. Выполнять DPI

 

Да и вообще, если linux умеет навешивать метку на пакеты, то но уже не P - а PE. Поддержка протокола LDP в Linux тоже есть. Это, например frrrouting или quagga-ldpd.

Если где нужен VPLS, там я планирую поставить OpenBSD.

Posted

PE это как раз vpls / l2vpn / l3 vpn и прочие сервисы, а pop / push / swap это P )

А как тогда называется роутер, который делает так:

ip route add 91.222.1.0/24 encap mpls 111 via inet 91.222.0.250

Posted

ne-vlezay80

ну это вырожденный случай PE, GRT-only, смысла от такого PE-роутера не видно от слова совсем

 

Интересно было бы узнать, почему VPLS есть только на коммерчиском ПО, а также в OpenBSD?

 

OVS умеет пушить до 3ёх меток. С точки зрения датаплейна, на ovs есть vpls

 

Open vSwitch version 2.4 can match, push, or pop up to 3 MPLS labels and look past the MPLS label into the encapsulated packet.
Posted

ne-vlezay80

ну это вырожденный случай PE, GRT-only, смысла от такого PE-роутера не видно от слова совсем

 

Интересно было бы узнать, почему VPLS есть только на коммерчиском ПО, а также в OpenBSD?

 

OVS умеет пушить до 3ёх меток. С точки зрения датаплейна, на ovs есть vpls

 

Open vSwitch version 2.4 can match, push, or pop up to 3 MPLS labels and look past the MPLS label into the encapsulated packet.

 

OVS умеет пушить до 3ёх меток.

А почему не умеет больше?

А в OpenBSD с этим как?

 

PE-роутера не видно от слова совсем

А какой должен быть смысл от PE? Для некоторых случиев этого достаточно, что касательно MPLS есть в Linux?

Posted

дак в итоге то работает как P и что там с PE ?

Posted

Почему-то если ты на linux поднял mpls, то его не видно в трайсе:

traceroute to 10.194.4.1 (10.194.4.1), 30 hops max, 60 byte packets
1  10.247.1.1 (10.247.1.1)  0.113 ms  0.108 ms  0.120 ms
2  10.247.0.250 (10.247.0.250)  0.303 ms  0.305 ms  0.308 ms
3  * * *
4  10.194.4.1 (10.194.4.1)  0.368 ms  0.372 ms  0.375 ms

Posted

А его должно быть видно?

Вот трайс до гугла. Там вроде бы всё видно.

ne-vlezay80@ne-vlezay80:~$ traceroute -e 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1  10.247.1.1 (10.247.1.1)  0.106 ms  0.103 ms  0.114 ms
2  100.64.0.1 (100.64.0.1)  0.563 ms  0.694 ms  0.832 ms
3  192.168.192.193 (192.168.192.193)  5.063 ms  5.064 ms  5.059 ms
4  * * *
5  google2.inet2.net (85.112.122.160)  39.354 ms  39.491 ms  39.493 ms
6  216.239.42.53 (216.239.42.53) <MPLS:L=494993,E=4,S=1,T=1>  38.684 ms 216.239.42.53 (216.239.42.53) <MPLS:L=492321,E=4,S=1,T=1>  31.405 ms 216.239.42.53 (216.239.42.53) <MPLS:L=492881,E=4,S=1,T=1>  31.328 ms
7  209.85.249.79 (209.85.249.79) <MPLS:L=546540,E=4,S=1,T=1>  39.431 ms 209.85.249.79 (209.85.249.79) <MPLS:L=547084,E=4,S=1,T=1>  39.420 ms  39.421 ms
8  216.239.40.246 (216.239.40.246)  31.307 ms 216.239.47.139 (216.239.47.139)  48.716 ms  48.802 ms

Posted
Вот трайс до гугла. Там вроде бы всё видно.

 

Видимо, там нет нужного для этого кода. Я точно не помню, но вроде хопы в MPLS не считаются. Тогда для того, что бы отвечал промежуточный роутер в трассе, надо какую-то внешнюю прибамбасу добавлять в роутер. Иначе никак не узнать, что "пора ехать назад".

Posted
Вот трайс до гугла. Там вроде бы всё видно.

 

Видимо, там нет нужного для этого кода. Я точно не помню, но вроде хопы в MPLS не считаются. Тогда для того, что бы отвечал промежуточный роутер в трассе, надо какую-то внешнюю прибамбасу добавлять в роутер. Иначе никак не узнать, что "пора ехать назад".

Я добовлял

Posted

Видимо, речь идет об этом расширении:

 

https://tools.ietf.org/html/draft-ietf-mpls-icmp-01

ICMP Extensions for MultiProtocol Label Switching

 

Если расширение поддерживается, то, логично предположить, что должно отвечать. Я бы в коде полазил.

Кстати, у меня есть какая-то заброшанная сборка, на ядре 4.8.6, где данные тесты mpls проваливаются с треском. iperf выдаёт не больше 11Mbps, хотя должен 17-16Gbps. Как я понял, в той сборке был баг.

Posted

Видимо, речь идет об этом расширении:

 

https://tools.ietf.org/html/draft-ietf-mpls-icmp-01

ICMP Extensions for MultiProtocol Label Switching

 

Если расширение поддерживается, то, логично предположить, что должно отвечать. Я бы в коде полазил.

Кстати, у меня есть какая-то заброшанная сборка, на ядре 4.8.6, где данные тесты mpls проваливаются с треском. iperf выдаёт не больше 11Mbps, хотя должен 17-16Gbps. Как я понял, в той сборке был баг.

 

Каким образом вы связали трейс в mpls с тем, что на каком-то ядре у вас была медленная скорость?

 

Вам же сказали причину - для того чтобы трейс отображался нужна реализация этого в коде, которой, вероятно, нет в ядре linux

Posted

Видимо, речь идет об этом расширении:

 

https://tools.ietf.org/html/draft-ietf-mpls-icmp-01

ICMP Extensions for MultiProtocol Label Switching

 

Если расширение поддерживается, то, логично предположить, что должно отвечать. Я бы в коде полазил.

Кстати, у меня есть какая-то заброшанная сборка, на ядре 4.8.6, где данные тесты mpls проваливаются с треском. iperf выдаёт не больше 11Mbps, хотя должен 17-16Gbps. Как я понял, в той сборке был баг.

 

Каким образом вы связали трейс в mpls с тем, что на каком-то ядре у вас была медленная скорость?

 

Вам же сказали причину - для того чтобы трейс отображался нужна реализация этого в коде, которой, вероятно, нет в ядре linux

А это что?

https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=a59166e470868d92f0813977817e99e699398af5

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.