OpenBSD: Gateway fora da sub-rede (funciona no Linux)

1

Precisamos configurar um host OpenBSD para usar um gateway padrão que esteja fora de sua sub-rede. Isso é tudo o que preciso fazer no Linux (não nos IPs reais) para alcançá-lo:

ifconfig eth0 33.33.33.33/31 up
route add 33.33.33.254 dev eth0
route add default gw 33.33.33.254

O problema é que não sabemos o equivalente apropriado do comando do meio no OpenBSD. A página man diz:

If the destination is directly reachable via an interface requiring no intermediary system to act as a gateway, the -iface modifier should be specified;

Infelizmente, não conseguimos descobrir como fazer com que isso funcione. Este é um host virtual em um servidor OVH, eles têm documentação para muitos outros sistemas operacionais mostrando como fazer isso aqui: link

    
por kshade 20.10.2013 / 12:45

2 respostas

5

Este é um tópico antigo, mas aqui vai.

Por acaso, eu executo uma série de VMs do OpenBSD em um ESXi 6.0 rodando na SoYouStart, uma empresa filha da OVH. A configuração da rede é a mesma da OVH, e acho que, apesar de estranho, seu objetivo principal é eliminar o máximo possível o tráfego ARP limitando artificialmente os domínios de broadcast e sem a necessidade de usar VLANs, por exemplo.

No meu caso, solicitei endereços IP extras da OVH e eles vêm de um intervalo completamente diferente. Para a discussão aqui, vamos supor que estas são minhas configurações:

  • meu endereço IP principal (que o host ESXi está usando): 213.0.113.78/32
  • o intervalo de endereços IP extra para convidados da VM: 192.0.2.64/30
  • o gateway padrão para TODOS os itens acima: 213.0.113.254
  • observe - todos os hosts precisam usar uma máscara de rede do host (255.255.255.255) devido à maneira como a rede OVH está configurada

Para configurar o roteamento no host do OpenBSD, isso é o que eu preciso fazer:

ifconfig vmx0 inet 192.0.2.64 255.255.255.255 
route add -inet 213.0.113.254 -llinfo -link -static -iface vmx0 
route add -inet default 213.0.113.254

Para que tudo isso seja feito durante o início, eu ignoro o arquivo /etc/mygate e coloco o seguinte no /etc/hostname.vmx0 :

inet 192.0.2.64 255.255.255.255
!sleep 2
!route add -inet 213.0.113.254 -llinfo -link -static -iface vmx0
!route add -inet default 213.0.113.254

Você notará o comando sleep - por algum motivo isso é requerido no OpenBSD 5.9, mas não foi antes. Sem o sleep , o primeiro dos comandos para route não será executado e, portanto, seu roteamento não será configurado corretamente.

Isso funciona usando o seguinte truque:

  • configuramos o endereço IP na interface
  • com o primeiro comando route , traduzimos o endereço IP do gateway (213.0.113.254) para um endereço de link (endereço MAC); isso é feito pela opção -llinfo ;
  • no mesmo comando route , usando a opção -link , instalamos o endereço do link na tabela de roteamento e usando o -iface vmx0 informamos ao kernel qual interface de rede que vincula o endereço pode ser acessada via; a opção -static marca como uma entrada inserida manualmente na tabela de roteamento
  • o segundo comando route agora pode ser bem-sucedido, pois a rota para o gateway padrão agora é conhecida

Uma coisa que eu encontrei na configuração acima, a qual eu não tenho solução ainda, é que um dos quatro hosts do OpenBSD, configurados exatamente da mesma maneira, rodando exatamente a mesma versão do SO e o mesmo kernel construir, e até rodando no mesmo host VMware, a cada 24 horas ou mais, parece estar "perdendo" aquela rota mágica da sua tabela de roteamento ...

    
por 08.04.2016 / 13:18
0

Tente configurar um alias na interface:

ifconfig eth0 alias 33.33.33.254

O OpenBSD provavelmente terá um nome de interface diferente do eth0, dependendo do driver usado.

    
por 30.11.2013 / 01:09