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.
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.
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.
Tags networking ip ifconfig freebsd jails