LINUX.ORG.RU
ФорумAdmin

ipv6 проблема фрагментации пакетов

 , , , ,


0

1

traceroute выдаёт:

raceroute to 2001:470:20::2 (2001:470:20::2), 30 hops max, 2001 byte packets
 1  2001:470:78b7:100::1 (2001:470:78b7:100::1)  0.154 ms  0.141 ms  0.140 ms
 2  fd00:10:1::1 (fd00:10:1::1)  0.418 ms  0.455 ms  0.457 ms
 3  fd00:1002:1289:10::1 (fd00:1002:1289:10::1)  1.244 ms  1.346 ms  1.555 ms
 4  fd00:1002:1289:20::2 (fd00:1002:1289:20::2)  71.098 ms  71.110 ms  71.358 ms
 5  fd00:1002:1289:20::2 (fd00:1002:1289:20::2)  71.399 ms !F-1480  71.519 ms !F-1480  71.585 ms !F-1480

в сети есть ppp over ssh туннель, уоторый идёт на VPS. На vps туннель от tunnelbrocker

tcpdump:

root@nevle198:~# tcpdump -i he-ipv6 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on he-ipv6, link-type RAW (Raw IP), capture size 262144 bytes
19:31:40.515054 IP6 2001:470:78b7:100::12 > 2001:470:20::2: frag (1448|513)
19:31:40.515302 IP6 2001:470:78b7:100::12 > 2001:470:20::2: frag (1448|513)
19:31:40.515322 IP6 2001:470:78b7:100::12 > 2001:470:20::2: frag (1448|513)
19:31:40.515549 IP6 2001:470:78b7:100::12 > 2001:470:20::2: frag (1448|513)
19:31:40.515805 IP6 2001:470:78b7:100::12 > 2001:470:20::2: frag (1448|513)
19:31:40.515825 IP6 2001:470:78b7:100::12 > 2001:470:20::2: frag (1448|513)
19:31:40.516069 IP6 2001:470:78b7:100::12 > 2001:470:20::2: frag (1448|513)
19:31:40.516267 IP6 2001:470:78b7:100::12 > 2001:470:20::2: frag (1448|513)
19:31:40.579603 IP6 2001:470:78b7:100::12 > 2001:470:20::2: frag (1448|513)
19:31:40.579647 IP6 2001:470:78b7:100::12 > 2001:470:20::2: frag (1448|513)
19:31:40.579665 IP6 2001:470:78b7:100::12 > 2001:470:20::2: frag (1448|513)
19:31:40.579682 IP6 2001:470:78b7:100::12 > 2001:470:20::2: frag (1448|513)
19:31:40.579720 IP6 2001:470:78b7:100::12 > 2001:470:20::2: frag (1448|513)
19:31:40.582229 IP6 2001:470:78b7:100::12 > 2001:470:20::2: frag (0|1432) ICMP6, echo request, seq 26, length 1432
19:31:40.582239 IP6 2001:470:78b7:100::12 > 2001:470:20::2: frag (1432|529)
19:31:40.582465 IP6 2001:470:78b7:100::12 > 2001:470:20::2: frag (0|1432) ICMP6, echo request, seq 27, length 1432
19:31:40.582471 IP6 2001:470:78b7:100::12 > 2001:470:20::2: frag (1432|529)
19:31:40.583495 IP6 2001:470:78b7:100::12 > 2001:470:20::2: frag (0|1432) ICMP6, echo request, seq 28, length 1432
19:31:40.583506 IP6 2001:470:78b7:100::12 > 2001:470:20::2: frag (1432|529)
19:31:40.620834 IP6 2001:470:20::2 > 2001:470:78b7:100::12: frag (0|1432) ICMP6, echo reply, seq 26, length 1432
19:31:40.620836 IP6 2001:470:20::2 > 2001:470:78b7:100::12: frag (1432|529)
19:31:40.621000 IP6 2001:470:20::2 > 2001:470:78b7:100::12: frag (0|1432) ICMP6, echo reply, seq 27, length 1432
19:31:40.621404 IP6 2001:470:20::2 > 2001:470:78b7:100::12: frag (1432|529)
19:31:40.621605 IP6 2001:470:20::2 > 2001:470:78b7:100::12: frag (0|1432) ICMP6, echo reply, seq 28, length 1432
19:31:40.622079 IP6 2001:470:20::2 > 2001:470:78b7:100::12: frag (1432|529)

★★★★★

Последнее исправление: ne-vlezay (всего исправлений: 1)

Вариант уменьшить MTU на туннеле с tunnelbroker? У них есть такая возможность в web-интерфейсе(ну и со своей стороны тоже уменьшить нужно, да)

Но это я телепатирую, потому что ты не показал ни ifconfig с туннеля до tunnelbroker, ни аналогичный выхлоп с интерфейса «ppp over ssh»

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte
root@nevle198:~# ifconfig he-ipv6
he-ipv6   Link encap:IPv6-in-IPv4  
          inet6 addr: fe80::5bd7:9915/64 Scope:Link
          inet6 addr: 2001:470:1f14:31d::2/64 Scope:Global
          UP POINTOPOINT RUNNING NOARP  MTU:1480  Metric:1
          RX packets:353604 errors:0 dropped:0 overruns:0 frame:0
          TX packets:183121 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:364980507 (348.0 MiB)  TX bytes:43229752 (41.2 MiB)

root@nevle198:~# ifconfig ppp64
ppp64     Link encap:Point-to-Point Protocol  
          inet addr:10.247.200.1  P-t-P:10.247.200.2  Mask:255.255.255.255
          inet6 addr: fd00:1002:1289:20::2/64 Scope:Global
          inet6 addr: fe80::953e:3c12:a314:5ac5/10 Scope:Link
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:1960 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1424 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:885169 (864.4 KiB)  TX bytes:683666 (667.6 KiB)

root@nevle198:~# 

вот

ne-vlezay ★★★★★
() автор топика
Ответ на: комментарий от ne-vlezay

Так, окей. А теперь route -n с nevle198 и оттуда же ifconfig с интерфейса куда смотрит default route. Чую у тебя там 1500 или меньше, а PPP добавляет свои заголовки и опаньки - приехали.

Update: ну или по новомодному вместо 'route -n' -> ip route, а вместо ifconfig -> ip addr show

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte
root@nevle198:~# ip route
default via 91.215.153.1 dev eth0 
10.189.0.0/16 via 10.247.200.2 dev ppp64  proto zebra 
10.194.0.0/16 via 10.247.200.2 dev ppp64  proto zebra 
10.247.0.0/24 via 10.247.200.2 dev ppp64  proto zebra 
10.247.1.0/24 via 10.247.200.2 dev ppp64  proto zebra 
10.247.2.0/24 via 10.247.200.2 dev ppp64  proto zebra 
10.247.200.2 dev ppp64  proto kernel  scope link  src 10.247.200.1 
10.247.203.0/24 via 172.29.0.1 dev ppp63  proto zebra 
10.247.204.0/24 via 172.29.0.1 dev ppp63  proto zebra 
10.252.0.0/16 via 172.31.255.2 dev dummy0  proto zebra 
91.215.153.0/24 dev eth0  proto kernel  scope link  src 91.215.153.21 
172.29.0.1 dev ppp63  proto kernel  scope link  src 172.29.0.2 
172.31.255.0/24 dev dummy0  proto kernel  scope link  src 172.31.255.1 
root@nevle198:~# ip -6 route
2001:470:1f11:1047::/64 via fd00:1002:1289:20::1 dev ppp64  proto zebra  metric 1024  mtu 1500
2001:470:1f14:31d::/64 dev he-ipv6  proto kernel  metric 256  mtu 1480
2001:470:1f15:31d::/64 via fd00:ffff:ffff:1::2 dev dummy0  proto zebra  metric 1024 
2001:470:78b7:100::/56 via fd00:1002:1289:20::1 dev ppp64  proto zebra  metric 1024  mtu 1500
2001:470:78b7::/54 via fd00:1002:1289:20::1 dev ppp64  proto zebra  metric 1024  mtu 1500
2001:470:78b7::/48 via fd00:ffff:ffff:1::2 dev dummy0  proto zebra  metric 1024 
2001:470:c3de:fd::/64 via fd00:fffd:1::2 dev ppp63  proto zebra  metric 1024 
2001:470:c3de:100::/56 via fd00:1002:1289:20::1 dev ppp64  proto zebra  metric 1024  mtu 1500
2001:470:c3de::/48 via fd00:1002:1289:20::1 dev ppp64  proto zebra  metric 1024  mtu 1500
fd00:10:1::/64 via fd00:1002:1289:20::1 dev ppp64  proto zebra  metric 1024  mtu 1500
fd00:1002:1288::/48 via fd00:1002:1289:20::1 dev ppp64  proto zebra  metric 1024  mtu 1500
fd00:1002:1289:20::/64 dev ppp64  proto kernel  metric 256  mtu 1500
fd00:1002:1289::/48 via fd00:1002:1289:20::1 dev ppp64  proto zebra  metric 1024  mtu 1500
fd00:fffd:1::/64 dev ppp63  proto kernel  metric 256 
fd00:ffff:ffff:1::/64 dev dummy0  proto kernel  metric 256 
fe80::/64 dev eth0  proto kernel  metric 256 
fe80::/64 dev he-ipv6  proto kernel  metric 256  mtu 1480
fe80::/64 dev dummy0  proto kernel  metric 256 
fe80::/10 dev ppp63  metric 1 
fe80::/10 dev ppp64  metric 1  mtu 1500
fe80::/10 dev ppp63  proto kernel  metric 256 
fe80::/10 dev ppp64  proto kernel  metric 256  mtu 1500
default dev he-ipv6  metric 1024  mtu 1500
root@nevle198:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:02:d6:1e brd ff:ff:ff:ff:ff:ff
    inet 91.215.153.21/24 brd 91.215.153.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe02:d61e/64 scope link 
       valid_lft forever preferred_lft forever
4: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default 
    link/sit 0.0.0.0 brd 0.0.0.0
9477: ppp63: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 3
    link/ppp 
    inet 172.29.0.2 peer 172.29.0.1/32 scope global ppp63
       valid_lft forever preferred_lft forever
    inet6 fd00:fffd:1::1/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::2c1d:1670:ee84:4d9e/10 scope link 
       valid_lft forever preferred_lft forever
5: he-ipv6@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN group default 
    link/sit 91.215.153.21 peer 216.66.84.46
    inet6 2001:470:1f14:31d::2/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::5bd7:9915/64 scope link 
       valid_lft forever preferred_lft forever
6: dummy0: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default 
    link/ether 52:5b:e5:52:80:a7 brd ff:ff:ff:ff:ff:ff
    inet 172.31.255.1/24 brd 172.31.255.255 scope global dummy0
       valid_lft forever preferred_lft forever
    inet 10.247.101.1/32 brd 10.255.255.255 scope global dummy0:0
       valid_lft forever preferred_lft forever
    inet6 fd00:ffff:ffff:1::1/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::505b:e5ff:fe52:80a7/64 scope link 
       valid_lft forever preferred_lft forever
9480: ppp64: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 3
    link/ppp 
    inet 10.247.200.1 peer 10.247.200.2/32 scope global ppp64
       valid_lft forever preferred_lft forever
    inet6 fd00:1002:1289:20::2/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::953e:3c12:a314:5ac5/10 scope link 
       valid_lft forever preferred_lft forever
root@nevle198:~# 

Pinkbyte

ne-vlezay ★★★★★
() автор топика
Ответ на: комментарий от Pinkbyte

Чую у тебя там 1500 или меньше, а PPP добавляет свои заголовки и опаньки - приехали.

Плюсую. Если там хотя бы 1500, то у he-ipv6 минимум на минус восемь должно быть 1472

anc ★★★★★
()
Ответ на: комментарий от ne-vlezay

Следи за руками:

eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
he-ipv6@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1480
ppp64: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 3

Как ты думаешь, почему туннель с he имеет меньший MTU? Наверное потому что туннельный интерфейс имеет свой заголовок и поэтому его MTU должен быть меньше того MTU, которое на интерфейсе в интернет(в данном случае - eth0).

Далее. Я не знаю куда у тебя ведет туннель ppp64(предположу что тоже в интернет через eth0, но это не так важно, ты поймешь дальше почему), но предположу что все проводные интерфейсы у тебя там без Jumbo-frame, то есть MTU на них не больше 1500.

А теперь внимание вопрос - нормально ли то, что MTU на PPP интерфейсе ни разу не меньше чем на проводном? Точнее поставлю вопрос по-другому: стоит ли ждать отсутствия фрагментации для такого случая? Не проще ли уменьшить MTU на данном интерфейсе для предотвращения фрагментации пакетов?

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

1. Как я понял, уменьшать надо на машине, которая отправляет пакеты
2. Как в linux настроить jumbo frame
у меня проблема на виртуальной машине под kvm. Кстати, под openvpn подобных проблем почиму-то нету

ne-vlezay ★★★★★
() автор топика
Ответ на: комментарий от ne-vlezay

Как в linux настроить jumbo frame

Хех, это нужно делать на всём пути следования пакета. Если он шлется через интернет - то на ВСЁМ оборудовании по пути следования(у твоего провайдера и дальше). Вывод - это тебе не нужно.

Как я понял, уменьшать надо на машине, которая отправляет пакеты

Уменьшить желательно на обоих концах туннеля. Разный MTU и MRU это конечно может и окей, но я бы в общем случае не советовал.

Pinkbyte ★★★★★
()
Ответ на: комментарий от ne-vlezay

под openvpn подобных проблем почиму-то нету

код сбора пакетов там в userspace работает и он ЕМНИП самописный. А в случае ppp работают ядерные алгоритмы и тут всё не так радужно.

Вообще ИМХО: если ты можешь обойтись БЕЗ фрагментации пакетов для туннельных подключений - обойдись без неё.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 2)
Ответ на: комментарий от Pinkbyte

Как ни странно, если указывать опцию -I <ipv6 addr>, то почиму-то возникает вышеупомянутая ошибка, без этой опции не возникает

ne-vlezay ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.