O que cloned_interfaces faz para interfaces no rc.conf?

3

Estou tentando entender o que o cloned_interfaces faz no rc.conf do FreeBSD.

Página de manual diz:

cloned_interfaces:

(str) Definido na lista de interfaces de rede clonáveis para criar neste host. Argumentos de clonagem adicionais podem ser passados para o comando ifconfig(8) create para cada interface, definindo a variável create_args_<interface> . Se um nome de interface for especificado com sticky keyword, a interface não será destruída mesmo quando rc.d/netif script for invocado com stop argumento. Isso é útil ao reconfigurar a interface sem destruí-la. As entradas em cloned_interfaces são anexadas automaticamente a network_interfaces para configuração.

Isso não fornece informações úteis sobre o que faz. É usado, por exemplo, por if_bridge , if_tap e if_epair .

O que isso realmente faz? Por que preciso de módulos de rede específicos e não de outros? Cria algum tipo de dispositivo fictício? Quando é necessário? Implicações de segurança? Implicações no desempenho?

    
por raspi 23.09.2018 / 21:01

2 respostas

0

cloned_interfaces é uma das várias configurações em rc.conf , rc.conf.local , et al. que controlam a configuração e o desligamento de interfaces de rede. No sistema Mewburn rc , é /etc/rc.d/netif o principal responsável por usar essas configurações. Com o gerenciamento do sistema nosh, o subsistema de importação de formatos externos aceita essas configurações e as converte em um conjunto de serviços únicos e de execução longa em /var/local/sv .

Ambos os sistemas em suas bases rodam muito ifconfig e executam alguns daemons de longa duração.

cloned_interfaces é quase o mesmo que a configuração network_interfaces , pois lista as interfaces de rede a serem ativadas e desativadas. A única diferença entre os dois é que network_interfaces descreve as interfaces de rede que preexistem, porque a detecção de hardware (de hardwares de interface de rede) as trouxe à existência; Considerando que cloned_interfaces são interfaces de rede que são criadas apenas por essas ações de inicialização e encerramento de serviço.

Uma interface de rede bridge , tap ou epair não representa o hardware real da interface de rede. Assim, uma etapa extra é necessária na inicialização e no encerramento, o ponto em que uma nova interface de rede é clonada e destruída. Isso é feito novamente com o comando ifconfig . A primeira bridge interface de rede é clonada executando ifconfig bridge0 create e destruída com ifconfig bridge0 destroy . A listagem bridge0 na lista cloned_interfaces faz com que isso aconteça e esses comandos sejam executados primeiro e por último; considerando que listá-lo em network_interfaces não seria, e o sistema assumiria que havia um dispositivo bridge0 existente a ser manipulado.

(Tecnicamente, a interface de loopback também não é hardware. Também é clonada; portanto, a primeira interface de loopback clonada é lo0 , para aqueles que já se perguntaram sobre o nome. Mas há um invólucro especial para ela porque não é opcional como pontes, toques e epairs são.)

Além disso, os dois conjuntos de interfaces são tratados da mesma forma.

Leitura adicional

por 24.09.2018 / 20:50
2

Com cloned_interfaces você pode fazer várias coisas, por exemplo:

  • Ajustando a configuração da LAN virtual do FreeBSD: A VLAN é um grupo de hosts com um conjunto comum de requisitos que se comunicam como se estivessem conectados à mesma conexão, independentemente de sua localização física. Uma VLAN possui os mesmos atributos de uma LAN física, mas permite que as estações finais sejam agrupadas, mesmo se não estiverem localizadas no mesmo segmento da LAN. A reconfiguração da rede pode ser feita através de software, em vez de realocar fisicamente os dispositivos. Para fazer a persistência da configuração, abra /etc/rc.conf:

    vi /etc/rc.conf

Anexe / modifique da seguinte forma:

cloned_interfaces="vlan0"
ifconfig_vlan0="inet x.x.x.x netmask y.y.y.y vlan 2 vlandev em0"
  • Criando uma interface de loopback permanente (FreeBSD) , usando ifconfig lo1 create , depois adicionando o seguinte ao /etc/rc.conf:

cloned_interfaces="lo1"

ifconfig_lo1="inet a.b.c.d/netmask"

where a.b.c.d is the ip address.

  • Linking aggregation / bonding no FreeBSD usando protocolo de controle de agregação de link LACP : unir vários links Ethernet no FreeBSD é bastante simples, por exemplo, usar o LACP que requer alguma configuração de switch para funcionar, então garantir o módulo de agregação de link é iniciado na inicialização, então edite /boot/loader.conf e adicione a seguinte linha:

    if_lagg_load=”YES”

Agora configure a porta ... neste exemplo, uniremos igb0 e bge0 em um pacote LACP de duas portas. Nós atribuiremos o IP 192.0.2.10/24 à interface. Adicione o seguinte ao /etc/rc.conf:

cloned_interfaces=”lagg0″
ifconfig_igb0=”up”
ifconfig_bge0=”up”
ifconfig_lagg0=”laggproto lacp laggport igb0 laggport bge0 up”
ifconfig_lagg0_alias0=”inet 192.0.2.10/24″
  • Jail do FreeBSD com IP Único , digamos que temos o seguinte cenário: você tem um VPS do FreeBSD com um único IP e deseja criar uma cadeia do FreeBSD para segurança adicional e / ou isolamento. Para este artigo, ilustrarei como você pode usar um único VPS com uma cadeia criada em um IP interno com acesso NAT e encaminhamento de porta para a cadeia de portas específicas (web, ssh, etc). Em seguida, crie a interface local da seguinte forma:

No seu rc.conf, clone a interface de loopback para lo1, para que possamos usar o 192.168. , 10. , ou 172.16. * para a nossa rede privada de cadeia.

cloned_interfaces="lo1"
ipv4_addrs_lo1="192.168.0.1-9/29"

O item acima criará um dispositivo de loopback lo1 com 192.168.0.1 a 192.168.0.9 criado nessa interface. A partir daqui, vamos criar uma cadeia com 192.168.0.2. Em seguida, configuraremos o PF para permitir o tráfego de saída (NAT) desses endereços locais, além de passar a porta da Web (80) e SSH para um IP de cadeia específico.

  • Ativando o Bridge : No FreeBSD, if_bridge é um módulo do kernel que é carregado automaticamente por ifconfig ao criar uma interface de ponte. Também é possível compilar o suporte de ponte a um kernel personalizado, adicionando o dispositivo if_bridge ao arquivo de configuração do kernel personalizado. A ponte é criada usando clonagem de interface. Para criar a interface da ponte:

    # ifconfig bridge create %código% bridge0

    # ifconfig bridge0        %código%       %código%        %código%      bridge0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500

Quando uma interface de ponte é criada, ela recebe automaticamente um endereço Ethernet gerado aleatoriamente. Os parâmetros maxaddr e timeout controlam quantos endereços MAC a bridge manterá em sua tabela de encaminhamento e quantos segundos antes de cada entrada ser removida após sua última visualização. Os outros parâmetros controlam como o STP opera.

Em seguida, especifique quais interfaces de rede adicionar como membros da ponte. Para a ponte para encaminhar pacotes, todas as interfaces de membros e a ponte precisam estar ativadas:

# ifconfig bridge0 addm fxp0 addm fxp1 up
# ifconfig fxp0 up
# ifconfig fxp1 up

A ponte agora pode encaminhar quadros Ethernet entre fxp0 e fxp1. Adicione as seguintes linhas ao /etc/rc.conf para que a ponte seja criada na inicialização:

cloned_interfaces="bridge0"
ifconfig_bridge0="addm fxp0 addm fxp1 up"
ifconfig_fxp0="up"
ifconfig_fxp1="up"

Se o host de ponte precisar de um endereço IP, defina-o na interface de ponte, não nas interfaces de membro. O endereço pode ser definido estaticamente ou via DHCP. Este exemplo define um endereço IP estático:

# ifconfig bridge0 inet 192.168.0.1/24

Também é possível atribuir um endereço IPv6 a uma interface de ponte. Para tornar as mudanças permanentes, adicione as informações de endereçamento ao /etc/rc.conf.

Estas são algumas das aplicações de ether 96:3d:4b:f1:79:7a !!

Mais: 1 , 2 , 3 , 4

    
por 23.09.2018 / 23:52