Isso ajudaria a utilizar ainda mais o novo poder no lado da rede.
Poderíamos construir roteadores melhores etc.
- Por favor, explique o que é NET_VRF e por que o queremos.
Para isolar interfaces de rede em diferentes VRFs, também conhecidos como "roteadores" virtuais. Ajuda a isolar o tráfego em um dispositivo. Por exemplo, nas zonas "vermelho", "verde" e "azul". Assim, podemos utilizar o raspberry PI como um roteador doméstico melhor ou para projetos do Freifunk.
Explicação completa http://man7.org/linux/man-pages/man8/ip-vrf.8.html
No meu exemplo, você pode ver que eth0 pertence a uma instância de roteamento diferente, portanto, mantém sua própria tabela de roteamento e pode agir independentemente dos outros dispositivos. O que é muito útil se você quiser isolar, por exemplo, a interface upstream do seu tráfego de produção que está passando por uma VPN.
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master vrf_external state UP group default qlen 1000
link/ether dc:a6:32:04:bb:ab brd ff:ff:ff:ff:ff:ff
inet 192.168.20.191/24 brd 192.168.20.255 scope global dynamic eth0
valid_lft 10773sec preferred_lft 10773sec
inet6 2003:dc:df12:b602:dea6:32ff:fe04:bbab/64 scope global dynamic mngtmpaddr
valid_lft 85935sec preferred_lft 13935sec
inet6 fe80::dea6:32ff:fe04:bbab/64 scope link
valid_lft forever preferred_lft forever
4: vrf_external: <NOARP,MASTER,UP,LOWER_UP> mtu 65536 qdisc noqueue state UP group default qlen 1000
link/ether c2:26:06:9a:fe:45 brd ff:ff:ff:ff:ff:ff
10: br-welt: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether dc:a6:32:04:bb:ab brd ff:ff:ff:ff:ff:ff
inet 10.80.205.157/21 brd 10.80.207.255 scope global dynamic br-welt
valid_lft 526sec preferred_lft 526sec
inet6 2001:608:a01:109:dea6:32ff:fe04:bbab/64 scope global dynamic mngtmpaddr
valid_lft 1491sec preferred_lft 891sec
inet6 fe80::dea6:32ff:fe04:bbab/64 scope link
valid_lft forever preferred_lft forever
E aqui você vê as diferentes tabelas de roteamento:
root@raspi-4GB:~# ip ro sh table 1023
default via 192.168.20.1 dev eth0
broadcast 192.168.20.0 dev eth0 proto kernel scope link src 192.168.20.191
192.168.20.0/24 dev eth0 proto kernel scope link src 192.168.20.191
local 192.168.20.191 dev eth0 proto kernel scope host src 192.168.20.191
broadcast 192.168.20.255 dev eth0 proto kernel scope link src 192.168.20.191
root@raspi-4GB:~# ip ro sh
default via 10.80.200.8 dev br-welt
10.80.200.0/21 dev br-welt proto kernel scope link src 10.80.205.157
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
Você pode assistir ao desempenho dos PIs aqui (desculpe apenas na v6):
https://raspi-4gb.awnx.space
- Qual o impacto da ativação da opção de configuração na memória livre após a inicialização (com o recurso ativo e inativo em tempo de execução, se aplicável)?
Não vi diferenças no meu raspberry PI4 com o recurso ativado.
- Como 2, mas para desempenho de rede - iperf seria um teste adequado.
O desempenho da rede só é afetado se você habilitar um VRF e estiver na faixa de sub kbit/s pelo menos nos meus testes.
Obrigado - para cada recurso adicionado, temos que comparar os benefícios com os custos, e um resumo completo como esse aumenta muito as chances de um recurso ser adicionado.
O fato de que adicionar CONFIG_NET_VRF=m
apenas faz com que um módulo seja construído (não há mudanças no kernel estático) é o ponto mais importante, e ajuda que o módulo tenha modestos 30kB.
Veja https://github.com/raspberrypi/linux/commit/ae5fd2ed5556b09c2cce6e25e0067854e50855ae.
Obrigada!
Eu fecho isso agora.
Recurso adicionado via https://github.com/raspberrypi/linux/commit/ae5fd2ed5556b09c2cce6e25e0067854e50855ae
Comentários muito úteis
Obrigado - para cada recurso adicionado, temos que comparar os benefícios com os custos, e um resumo completo como esse aumenta muito as chances de um recurso ser adicionado.
O fato de que adicionar
CONFIG_NET_VRF=m
apenas faz com que um módulo seja construído (não há mudanças no kernel estático) é o ponto mais importante, e ajuda que o módulo tenha modestos 30kB.Veja https://github.com/raspberrypi/linux/commit/ae5fd2ed5556b09c2cce6e25e0067854e50855ae.