DHCP e endereços IP estáticos simultaneamente em uma interface

16

Podemos usar vários endereços IP para uma única interface no Linux (eg. eth0:0, eth0:1). Mas podemos usar DHCP e IP estático ao mesmo tempo? eth0:1deve ter um endereço IP estático e eth0:0deve ser configurado usando DHCP.

Como podemos realizar os dois?

shantanu
fonte
Esta é uma pergunta sobre a configuração do NetworkManager?
21137 madneon

Respostas:

13

Sim, isso pode ser feito. No entanto, você usaria eth0 e eth0: 0 para isso em vez de eth0: 0 e eth0: 1. Você pode configurar seu arquivo / etc / network / interfaces assim:

auto lo eth0 eth0:0
iface lo inet loopback

iface eth0 inet dhcp

iface eth0:0 inet static
    address ...
    netmask ...

Você provavelmente não deseja definir um gateway na interface eth0: 0, pois isso pode entrar em conflito com as configurações de gateway obtidas do DHCP. Se você digitar configurações manuais em / etc / network / interfaces, será necessário garantir que o gerenciador de rede não esteja tentando gerenciar suas configurações. Isso é coberto aqui .

jkt123
fonte
9

Após uma pesquisa intensiva por uma resposta para o mesmo problema, desenvolvi uma solução que permite ao Network Manager continuar gerenciando suas conexões. Primeiro, crie uma conexão DHCP normalmente no Network Manager usando Editar conexões> Adicionar. Isso criará um arquivo localizado em / etc / NetworkManager / system-connections /. Abra este arquivo no seu editor de texto com permissões de superusuário. Exemplo: sudo nano / etc / NetworkManager / system-connections / DHCPEthernet

O código será algo como isto:

[802-3-ethernet]
duplex=full
mac-address=00:0E:C6:88:31:43

[connection]
id=DHCPEthernet
uuid=26af83f1-c48c-4454-9038-bbb4bec3e3a3
type=802-3-ethernet
timestamp=1405008541

[ipv6]
method=auto

[ipv4]
method=auto

Adicione uma linha na seção ipv4 para o endereço IP estático que você gostaria de adicionar. Estou usando 192.168.10.1 sem gateway para este exemplo

address1=192.168.10.1/24,0.0.0.0

Salve o arquivo e use o Network Manager para desconectar e reconectar à rede. O ping confirmará que os dois endereços IP funcionam corretamente. A saída do endereço IP confirma o sucesso.

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 14:10:9f:d7:22:0b brd ff:ff:ff:ff:ff:ff
    inet 172.20.1.71/24 brd 172.20.1.255 scope global wlan0
       valid_lft forever preferred_lft forever
    inet6 fe80::1610:9fff:fed7:220b/64 scope link 
       valid_lft forever preferred_lft forever
3: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0e:c6:88:31:43 brd ff:ff:ff:ff:ff:ff
    inet 172.20.1.60/24 brd 172.20.1.255 scope global eth2
       valid_lft forever preferred_lft forever
    inet 192.168.10.1/24 brd 192.168.10.255 scope global eth2
       valid_lft forever preferred_lft forever
    inet6 fe80::20e:c6ff:fe88:3143/64 scope link 
       valid_lft forever preferred_lft forever
Andrew Vian
fonte
address1A configuração encontrada aqui é na verdade a ipv4.addressesconfiguração do NetworkManager, se você estiver usando a API ou nmcli. Nesse caso, você também deve manter ipv4.methoddefinido como "automático".
Dave
Depois de criar a conexão normalmente, ainda não tenho arquivos no meu diretório / etc / NetworkManager / system-connections /. Eles estão sendo mantidos em outro lugar? Talvez uma coisa do SELinux?
Steve Jorgensen
2

Eu verifiquei um pouco e descobri que hoje em dia é possível criar essa configuração usando a nmcliferramenta. De fato, ele permite o controle completo do NetworkManager. As páginas de manual do nmcli são muito completas e bastante compreensíveis. Veja man nmclie man nm-settings.

Para definir a configuração nesta pergunta, a maneira mais fácil é editar o seu perfil de conexão atual. Descobrir o nome do perfil de sua ferramenta GUI NetworkManager e editá-lo usando o editor CLI (aqui o nome é Ethernet connection):

$ sudo nmcli c edit 'Conexão Ethernet'

=== editor de conexão interativa nmcli | ===

Edição da conexão '802-3-Ethernet' existente: 'Conexão Ethernet 1'

Digite 'ajuda' ou '?' para comandos disponíveis.
Digite 'descreva [.]' Para obter uma descrição detalhada da propriedade.

Você pode editar as seguintes configurações: conexão, 802-3-ethernet (ethernet), 802-1x, dcb, ipv4, ipv6
nmcli> goto ipv4
Você pode editar as seguintes propriedades: método, dns, pesquisa de dns, opções de dns, prioridade de dns, endereços, gateway, rotas, métrica da rota, ignorar-rotas-automáticas, ignorar-auto-dns, dhcp-hostname, dhcp -send-hostname, never-default, may-fail, dad-timeout, dhcp-timeout, dhcp-client-id, dhcp-fqdn
nmcli ipv4> defina ipv4.addresses {your_address_here} / {your_network_prefix_here} 
Você também deseja definir 'ipv4.method' como 'manual'? [sim]: não 
nmcli ipv4> salvar
Conexão 'Conexão Ethernet' (87fa8e41-7fe3-435a-a2f2-29a9c8084d2d) atualizada com sucesso.
nmcli ipv4> sair

Partes em negrito são as suas entradas; substitua as coisas entre chaves pelas suas configurações. Respondendo noà pergunta sobre ipv4.methodpreserva a configuração do DHCP. Posfácio: você precisa desativar e reativar a configuração, o que pode ser feito usando GUI-tools ou nmcli.

Se você quiser, também é possível criar uma nova conexão a partir da linha de comando:

sudo nmcli -p connection add type ethernet ifname {your_interface_name} con-name MyConnection -- ipv4.addresses {your_address}/{your_prefix_length} ipv4.method auto

Mais uma vez, substitua as coisas entre chaves pelas suas configurações.

Por fim, se você ainda deseja editar os arquivos de configuração, lembre-se de recarregar o arquivo após a edição:

sudo nmcli connection reload

Observe que as configurações criadas dessa maneira provavelmente confundirão as ferramentas da GUI. Na melhor das hipóteses, eles não mostrarão os endereços estáticos.

Ville Koivunen
fonte
0

O Debian Buster / 10 NetworkManager nm-connection-editoragora pode fazer isso a partir da interface gráfica do usuário.

Edite a conexão, abra a guia "Configurações IPv4" e:

  1. Defina o método como "Automático (DHCP)".
  2. Adicione "Endereços estáticos adicionais" abaixo.

Isso gravará as seguintes configurações em /etc/NetworkManager/system-connections/connection.nmconnection:

[ipv4]
address1=10.0.0.1/24
method=auto
user1338062
fonte