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

13

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:1 deve ter um endereço IP estático e eth0:0 deve ser configurado usando DHCP.

Como podemos realizar as duas coisas?

    
por shantanu 21.04.2014 / 20:06

3 respostas

9

Sim, isso pode ser feito. No entanto, você usaria normalmente eth0 e eth0: 0 para isso, em vez de eth0: 0 e eth0: 1. Você poderia 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 configurar um gateway na interface eth0: 0 porque isso pode entrar em conflito com as configurações de gateway obtidas do DHCP. Se você inserir configurações manuais em / etc / network / interfaces, será necessário certificar-se de que o gerenciador de rede não está tentando gerenciar suas configurações. Isso é coberto aqui .

    
por jkt123 22.04.2014 / 01:55
8

Após uma busca 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. Isto irá 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á parecido com 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ê deseja 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-se à rede. O ping confirmará que os dois endereços IP funcionam corretamente. A saída do ip addr 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
    
por Andrew Vian 10.07.2014 / 19:41
2

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

Para configurar a configuração nesta questão, a maneira mais fácil é editar o seu perfil de conexão atual. Descubra o nome do perfil da sua ferramenta GUI NetworkManager e edite-o usando o editor CLI (aqui o nome é Ethernet connection ):

$ sudo nmcli c edit 'Ethernet connection'

===| nmcli interactive connection editor |===

Editing existing '802-3-ethernet' connection: 'Ethernet connection 1'

Type 'help' or '?' for available commands.
Type 'describe [.]' for detailed property description.

You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, dcb, ipv4, ipv6
nmcli> goto ipv4
You may edit the following properties: method, dns, dns-search, dns-options, dns-priority, addresses, gateway, routes, route-metric, ignore-auto-routes, ignore-auto-dns, dhcp-hostname, dhcp-send-hostname, never-default, may-fail, dad-timeout, dhcp-timeout, dhcp-client-id, dhcp-fqdn
nmcli ipv4> set ipv4.addresses {your_address_here}/{your_network_prefix_here}
Do you also want to set 'ipv4.method' to 'manual'? [yes]: no
nmcli ipv4> save
Connection 'Ethernet connection' (87fa8e41-7fe3-435a-a2f2-29a9c8084d2d) successfully updated.
nmcli ipv4> quit

Partes em negrito são suas entradas, substitua as coisas entre chaves por suas configurações. Responder no à pergunta sobre ipv4.method preserva a configuração do DHCP. Depois você precisa desabilitar e reativar a configuração, o que pode ser feito usando ferramentas GUI 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

Novamente, substitua as chaves entre chaves por suas configurações.

Finalmente, 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 forma provavelmente confundirão as ferramentas da GUI. Na melhor das hipóteses, eles não mostram os endereços estáticos.

    
por Ville Koivunen 01.05.2018 / 16:24