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