Eu encontrei o problema. Aparentemente, eu precisava adicionar regras do iptables para o OSPF.
ip6tables -I FORWARD -p 89 -j ACCEPT
Estou tentando conectar três contêineres docker em uma rede e executar o OSPF entre eles. Estou usando interfaces veth e uma ponte, tentando seguir esta resposta . No entanto, acho que estou entendendo mal como isso funciona. Os contêineres podem pingar uns aos outros, mas não se consideram na mesma rede.
Para fazer a rede, estou usando apenas uma ponte e 3 pares de veth. Cada par tem uma extremidade na ponte e a outra extremidade no contêiner. Aqui está minha configuração.
ip tuntap add tapm mode tap
ip link set dev tapm up
ip link add brm type bridge
ip link set brm up
ip link set tapm master brm
ip addr add 2001:db9:4::1/64 dev brm
O seguinte é repetido três vezes, para cada contêiner (alterando apenas o nome do par veth, os endereços e o namespace)
ip link add dev vn1 type veth peer name vn1br
ip link set dev vn1br up
ip link set vn1br master brm
ip link set vn1 netns ns-rt1
ip netns exec ns-rt1 ip addr add 2001:db9:4::2/64 dev vn1
ip netns exec ns-rt1 ip link set vn1 up
É assim que uma rede veth é configurada? Preciso de várias pontes ou interfaces de toque?
Eu encontrei o problema. Aparentemente, eu precisava adicionar regras do iptables para o OSPF.
ip6tables -I FORWARD -p 89 -j ACCEPT
Tags networking ipv6 linux