ne-vlezay80 Posted April 15, 2017 (edited) · Report post Короче, поднял я тестовый 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 April 15, 2017 by ne-vlezay80 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
nuclearcat Posted April 15, 2017 · Report post Автор молодец! Спасибо за пример. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
tokra Posted April 15, 2017 · Report post Автору тонны нефти! Но одна просьба - можно немного комментариев к примеру, для тех кто не нок) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ne-vlezay80 Posted April 15, 2017 · Report post Автору тонны нефти! Но одна просьба - можно немного комментариев к примеру, для тех кто не нок) Тут и так всё понятно. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted April 15, 2017 · Report post Собственно, ничего нового автор нам не принёс, всё это есть в анонсах ядер. Да вообщем-то статические метки не сильно и интересны. За исключением каких-то особо изощрённых кейсов, никто статически метки в наше время не назначает, а делают это через специальные протоколы (transport ldp/rsvp ,service ldp/bgp) вот когда взлетит l2vpn/l3vpn с сигнализацией, это будет действительно достойно внимания. ТС, не пробовали скрестить l3-vpn-ы с linux frrouting с виртальными cisco, mikrotik, etc? Голый P-роутер с форвардингом на ядре линукса, мне кажется, не особо интересный кейс Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted April 15, 2017 · Report post >*MPLS в netfilter для фильтрации mpls-пакетов на P уровне. :D Ну вообще это считается ошибкой дизайна и обычно подобных фич нет в явном виде(mpls label acl) в hw-mpls-свитчах/роутерах. Хотя конечно если сильно захотеть, то в некоторых железках можно явно сказать, что если байт X=Y, то дропать пакет. В принципе, так можно сделать и на linux с использованием iptables bpf, но опять же повторюсь, если вам это надо, то это ошибка дизайна сети Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ne-vlezay80 Posted April 15, 2017 · Report post Собственно, ничего нового автор нам не принёс, всё это есть в анонсах ядер. Да вообщем-то статические метки не сильно и интересны. За исключением каких-то особо изощрённых кейсов, никто статически метки в наше время не назначает, а делают это через специальные протоколы (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 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
zi_rus Posted April 16, 2017 · Report post Для обычной маршрутизации это не надо для обычной маршрутизации мплс не нужен Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted April 16, 2017 · Report post ne-vlezay80 зачем вам P-роутер на линуксе? Какие задачи он должен решать? Сейчас же китайцы научились делать дешевые mpls/l3-свитчи. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ne-vlezay80 Posted April 16, 2017 · Report post 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. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
zhenya` Posted April 17, 2017 · Report post PE это как раз vpls / l2vpn / l3 vpn и прочие сервисы, а pop / push / swap это P ) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ne-vlezay80 Posted April 17, 2017 · Report post 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 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted April 17, 2017 · Report post 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. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ne-vlezay80 Posted April 17, 2017 · Report post 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? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
alexpn Posted April 17, 2017 · Report post дак в итоге то работает как P и что там с PE ? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ne-vlezay80 Posted April 17, 2017 · Report post дак в итоге то работает как P и что там с PE ? Маршрут вида: ip route add 91.220.110.0/24 encap mpls 111 via inet 172.18.177.11 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ne-vlezay80 Posted April 19, 2017 · Report post Почему-то если ты на 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 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vop Posted April 20, 2017 · Report post А его должно быть видно? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ne-vlezay80 Posted April 20, 2017 · Report post А его должно быть видно? Вот трайс до гугла. Там вроде бы всё видно. 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 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vop Posted April 20, 2017 · Report post Вот трайс до гугла. Там вроде бы всё видно. Видимо, там нет нужного для этого кода. Я точно не помню, но вроде хопы в MPLS не считаются. Тогда для того, что бы отвечал промежуточный роутер в трассе, надо какую-то внешнюю прибамбасу добавлять в роутер. Иначе никак не узнать, что "пора ехать назад". Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ne-vlezay80 Posted April 20, 2017 · Report post Вот трайс до гугла. Там вроде бы всё видно. Видимо, там нет нужного для этого кода. Я точно не помню, но вроде хопы в MPLS не считаются. Тогда для того, что бы отвечал промежуточный роутер в трассе, надо какую-то внешнюю прибамбасу добавлять в роутер. Иначе никак не узнать, что "пора ехать назад". Я добовлял Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vop Posted April 20, 2017 · Report post Видимо, речь идет об этом расширении: https://tools.ietf.org/html/draft-ietf-mpls-icmp-01 ICMP Extensions for MultiProtocol Label Switching Если расширение поддерживается, то, логично предположить, что должно отвечать. Я бы в коде полазил. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ne-vlezay80 Posted April 20, 2017 · Report post Видимо, речь идет об этом расширении: https://tools.ietf.org/html/draft-ietf-mpls-icmp-01 ICMP Extensions for MultiProtocol Label Switching Если расширение поддерживается, то, логично предположить, что должно отвечать. Я бы в коде полазил. Кстати, у меня есть какая-то заброшанная сборка, на ядре 4.8.6, где данные тесты mpls проваливаются с треском. iperf выдаёт не больше 11Mbps, хотя должен 17-16Gbps. Как я понял, в той сборке был баг. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted April 20, 2017 · Report post Видимо, речь идет об этом расширении: 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 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ne-vlezay80 Posted April 20, 2017 · Report post Видимо, речь идет об этом расширении: 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 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...