Por que é necessário configurar uma máscara de rede de 255.255.255.255 para endereços “alias” no FreeBSD?

1

Do manual do FreeBSD sobre o tema de hosts virtuais :

For a given interface, there must be one address which correctly represents the network's netmask. Any other addresses which fall within this network must have a netmask of all 1s (expressed as either 255.255.255.255 or 0xffffffff).

Alguém pode explicar por que esse é o caso?

    
por Eugene Yarmash 08.11.2010 / 12:45

3 respostas

1

Na verdade, você pode definir a máscara de rede que considera útil.

Mas, se alterar a máscara de rede de / 32, você também precisará definir uma rota. Se você seguir a recomendação, poderá omitir a definição de uma rota.

    
por 08.11.2010 / 13:37
4

Esta página contém uma boa explicação:

Since aliases are, in a sense, duplicate tags, the system needs to know whether the subnet represented by the tag is new, and this is indicated by the netmask. With a "normal" netmask, the system is told this is a new subnet, and it can then set up internal tables correctly. If the subnet is not new, the tables will get set up incorrectly if the netmask is "normal".

With a netmask of 255.255.255.255, the system knows this is a duplicate of an existing subnet, and therefore will assign the address as if it were assigned to the loopback interface, with the "point-to-point" mask.

Assigning a netmask of 255.255.255.0 will, in most cases, appear to work. However, the internal tables will not be set up correctly, and if the alias is removed, problems may ensue. This can be overcome by adding appropriate host routes when the alias is added, and removing the routes when the alias is removed. However, the system works correctly with the "point-to-point" netmask, and maintenance is easier.

    
por 08.11.2010 / 14:06
-1

Bem, a página de manual do FreeBSD no ifconfig não é muito útil:

If the address is on the same subnet as the first network address for this interface, a non-conflicting netmask must be given. Usually 0xffffffff is most appropriate.

Mas o que isso significa é que uma máscara / 32 faz desta uma rede específica (a rede mais simples, um único host, é descrita por uma máscara / 32). Ter a mesma máscara de rede que a interface física não causa nenhum dano, já que são duas interfaces na mesma rede.

Agora, imagine o alias ter uma máscara que descreva uma rede de superconjunto que a da interface física, por exemplo, sendo o físico 192.168.0.1/25 e o alias 192.168.0.2/24. É 192.168.0.200 na rede e o que isso significa para sua interface de alias?

    
por 08.11.2010 / 14:01