]> Sergey Matveev's repositories - stargrave-blog.git/commit
Слонограммы в моей локальной сети
authorSergey Matveev <stargrave@stargrave.org>
Wed, 1 Mar 2023 18:27:10 +0000 (21:27 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Wed, 1 Mar 2023 18:27:10 +0000 (21:27 +0300)
commitbcdf941977524afc69a18a4bf23fa7923d3aa182
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904
parent26c8fa55c6128eb583403c61699397d11a1dec50
Слонограммы в моей локальной сети

Помню что я пробовал раньше использовать jumbo frame-ы (MTU=1900) в
локальной сети, но точно не помню почему забил на эту идею. Ну наверное
потому что оно постоянно форсировало использование PMTUD, который в IPv4
мире не всегда работает из-за админов необразованных (запрещающих ICMP).

Сегодня снова решил это попробовать. Увеличил MTU на Ethernet
интерфейсе, на gif-туннеле, но ping/TCP всё равно не используют
увеличенное значение MTU. И только тут до меня дошло почему и отчего
route get команда показывает MTU значение для запрошенного хоста: MTU
же может быть per route! Не понимаю почему такая очевидная вещь для меня
была совсем не очевидна и я в голове MTU всегда имел привязанным только
к интерфейсу. От него конечно значение для MTU per route отталкивается,
но ничто не мешает же мне для default route задать маленькое, но в целом
для интерфейса (IPsec туннель) оставить большое. А так как по OSPF явно
знание и о соседних локальных машинах просасывается, то и для них будет
использоваться большой MTU. Прям то что мне нужно!

    % route -6 get dns.google
       route to: dns.google
    destination: default
           mask: default
            fib: 0
      interface: gif0
          flags: <UP,DONE,STATIC,FIXEDMTU>
     recvpipe  sendpipe  ssthresh  rtt,msec    mtu        weight    expire
           0         0         0         0      1420         1         0

    % route -6 get beta.stargrave.org
       route to: beta.stargrave.org
    destination: beta.stargrave.org
        gateway: fe80::be5f:f4ff:fedd:2752%gif0
            fib: 0
      interface: gif0
          flags: <UP,GATEWAY,HOST,DONE,PROTO1>
     recvpipe  sendpipe  ssthresh  rtt,msec    mtu        weight    expire
           0         0         0         0      8192         1         0