FreeBSD: adicionando o alias ip à rede de quebras de interface no ip primário

1

Eu estou tentando adicionar um alias à minha placa de rede (eu gostaria de usar as prisões) na minha caixa FreeBSD. Está executando a versão 10.2-RELEASE-p7 (kernel amd64 genérico). A máquina está rodando em uma máquina virtual Hyper-V, mas eu experimentei a mesma coisa na minha caixa física, a única diferença é que está rodando a versão x86 (32 bits) do mesmo kernel 10.2.

A interface de rede hn0 tem um endereço IP estático: 192.168.0.51/24, meu roteador padrão é 192.168.0.1. Tudo funciona bem, até eu adicionar o alias:

ifconfig hn0 inet 192.168.0.200/32 alias

Isso cria o alias em hn0, como mostra ifconfig:

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
    options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
    inet6 ::1 prefixlen 128
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
    inet 127.0.0.1 netmask 0xff000000
    nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
hn0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
    options=31b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,TSO4,TSO6>
    ether 00:15:5d:00:0f:00
    inet 192.168.0.51 netmask 0xffffff00 broadcast 192.168.0.255
    inet 192.168.0.200 netmask 0xffffffff broadcast 192.168.0.200
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

O problema é que, assim que eu tiver o alias em vigor, não consigo alcançar nenhum host fora da minha sub-rede (mesmo quando estiver usando o endereço IP do host). Por exemplo. um nameserver do google:

ping 8.8.8.8
ping 8.8.8.8 (8.8.8.8): 56 data bytes

No entanto, posso pingar qualquer coisa usando o alias como fonte:

ping -S 192.168.0.200 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 192.168.0.200: 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=56 time=11.137 ms
...

Se o alias for criado por jail (8) ao iniciar uma cadeia, o jail usando o alias terá acesso à rede, enquanto o host não. Depois de remover o alias, preciso reiniciar os serviços netif e o roteamento para recuperar o acesso à rede no IP principal do host.

Quando a cadeia é executada, posso ssh nela ou fazer ping usando o alias de IP.

Com base no fato de que não consigo efetuar ping de nós externos usando o IP, acho que há algo errado com o roteamento. A resolução de nomes não funciona porque minha caixa não consegue acessar os servidores DNS. Aqui está minha saída netstat -rn antes de adicionar o alias:

Destination        Gateway            Flags      Netif Expire
default            192.168.0.1        UGS         hn0
127.0.0.1          link#1             UH          lo0
192.168.0.0/24     link#2             U           hn0
192.168.0.51       link#2             UHS         lo0

e após o alias ter sido criado:

Destination        Gateway            Flags      Netif Expire
default            192.168.0.1        UGS         hn0
127.0.0.1          link#1             UH          lo0
192.168.0.0/24     link#2             U           hn0
192.168.0.51       link#2             UHS         lo0
192.168.0.200      link#2             UHS         lo0
192.168.0.200/32   link#2             U           hn0

Os valores IPv6 foram omitidos porque eu desabilitei o IPv6 adicionando

ipv6_network_interfaces="none"
ipv6_activate_all_interfaces="NO"

para /etc/rc.conf

Não sou especialista em configuração de rede, mas li tudo o que pude encontrar sobre cadeias e aliases de IP, mas não encontrei nada de útil. Talvez eu esteja negligenciando algo trivial, mas não tenho ideia do que quebra o acesso à rede no host.

    
por LittlePilgrim 05.12.2015 / 18:24

1 resposta

0

a máscara de rede é muito ampla, tente

ifconfig hn0 inet 192.168.0.200/24 alias

O alias deve estar na mesma rede normalmente.

    
por 05.12.2015 / 18:45