Comandos para configuración da rede
- NOTA IMPORTANTE:
- Na versión 9 de Debian os comandos que xestionan a rede (uns son novos e outros mantéñense (ifup / ifdown) non funcionan como en versións anteriores (nin os novos que substitúen aos vellos nin os que se manteñen). Por tanto, cando se pida cambiar IP en debian 9 é mellor reiniciar o equipo para que se aplique o cambio, que confundir coa combinación de comandos que habería que usar para obter o mesmo resultado. Aínda así recoméndase a lectura e práctica dos comandos que a continuación se expoñen noutras versións de SOs.
Nas seguintes seccións explicarase como configurar a rede, todo ordenador debe ter:
- Para comunicarse con outro ordenador: un Enderezo IP e unha máscara de rede.
- Para comunicarse co exterior: unha porta de enlace.
- Para resolver nomes de dominio a IPs: uns servidores DNS aos que preguntar para resolver nomes de dominio a enderezos IP.
- NOTA: As IPs que se usan nesta sección son a modo de exemplo para poder explicar os comandos que se van presentar. Posteriormente xa se indica cales son as IPs que debemos poñer a cada unha das máquinas virtuais.
Introdución aos cambios introducidos na versión 9 de debian
- Na versión 9 de debian introdúcense varios cambios no que atinxe á xestión da rede.
- Isto é debido á versión 197 do xestor de servizos systemd. A partir desa versión a orde de arranque dos contralodores é impredicible. Por tanto un ordenador con 2 tarxetas de rede ethernet podería nomear a unha tarxeta como eth0 nun arranque e no seguinte como eth1.
- Para evitar iso crearonse unhas políticas de nomeado de interfaces baseadas no hardware do equipo. Estas regras coñécense como Predictable network interface device
- 0º.- Os nomes incorporaran información baseada no tipo de interface:
- en — Ethernet
- sl — serial line IP (slip)
- wl — wlan
- ww — wwan
- 1º.- Os nomes incorporaran números de orde dos dispositivos da placa nai. P.e. eno1
- b<number> — BCMA bus core number
- c<bus_id> — bus id of a grouped CCW or CCW device, with all leading zeros stripped [s390]
- o<index>[n<phys_port_name>|d<dev_port>] — on-board device index number
- s<slot>[f<function>][n<phys_port_name>|d<dev_port>] — hotplug slot index number
- x<MAC> — MAC address
- [P<domain>]p<bus>s<slot>[f<function>][n<phys_port_name>|d<dev_port>] — PCI geographical location
- [P<domain>]p<bus>s<slot>[f<function>][u<port>][..][c<config>][i<interface>] — USB port number chain
- v<slot> - VIO slot number (IBM PowerVM)
- a<vendor><model>i<instance> — Platform bus ACPI instance id
- 2º.- Os nomes incorporaran números de orde dos slots das PCI Express hotplug. P.e. ens1
- s<slot>[f<function>][n<phys_port_name>|d<dev_port>] — hotplug slot index number
- 3º.- Os nomes incorporaran números de orde da ubicación físca do conector hardware. P.e. enp2s0
- [P<domain>]p<bus>s<slot>[f<function>][n<phys_port_name>|d<dev_port>] — PCI geographical location
- 4º.- Os nomes incorporaran as direccións MAC hardware. P.e. enx78e7d1ea46da
- 5º.- Se non é aplicable ningunha das anteriores: O clásico nomeamento: eth0
- 0º.- Os nomes incorporaran información baseada no tipo de interface:
- Por defecto, o sistema trata de nomear usando a directiva 1. Se non se pode aplicar a 1, trata de aplicar a 2, e senón a 3 e finalmente a 5. A política 4 está por se o usuario desaxa forzar a que as interfaces sen nomeen usando a MAC.
- Outros cambios que se introducen na versión 9 son:
- Retirada da utilidade de configuración de rede ifconfig (que logo será instalada) por considerala obsoleta e usar o comando ip para xestionar as interfaces e ac onfiguración da rede.
- Representación das máscaras usando o formato CIDR. P.e. as máscaras que se amosan a continuación represéntanse en función do números de 1 (uns) que ten a máscara:
- 255.0.0.0 -> /8
- 255.255.0.0 -> /16
- 255.255.255.0 -> /32
Ficheiros que se usan nesta sección
/etc/network/interfaces
- Descrición: almacena a configuración IP das interfaces de rede.
- Sintaxe:
# Este ficheiro describe as interfaces de rede dispoñibles no sistema # e como activalas. Para máis información: man interfaces. # A interface de rede loopback auto lo iface lo inet loopback address 127.0.0.1 netmask 255.0.0.0 auto eth0 iface eth0 inet static address 172.16.5.2 netmask 255.255.255.0 iface eth1 inet dhcp
Para ver o ficheiro de interfaces pódese teclear o seguinte:
more /etc/network/interfaces
ou
cat /etc/network/interfaces
- NOTAS:
- No canto de eth0 pode que a interface de rede estea nomeada tal e como se explica enriba. P.e. enp0s3
- No canto de usar o parámetro netmask, pódese representar: address 172.16.5.2/24
- Exemplos de configuración:
auto interface: a interface indicada iníciase no momento de acender o ordenador
iface eth1 inet dhcp: Configurar o interface eth1 co protocolo IPv4(inet) e que obteña a IP por DHCP
iface eth0 inet static: Igual ao anterior salvo que a IP especifícase manualmente.
- Observar como eth1 non se vai iniciar cando se inicie o sistema, pois non está auto eth1 no ficheiro /etc/network/interfaces.
/etc/resolv.conf
- Descrición: almacena a configuración DNS cliente, isto é, cal/es é o/s dominio/s, cales son os servidores DNS, etc. Se o servidor DNS se obtén dinamicamente mediante DHCP as entradas no ficheiro resolv.conf sobrescribiranse coa configuración obtida por DHCP.
- Sintaxe:
search iessanclemente.net nameserver 10.0.0.36 nameserver 4.2.2.2
- Exemplos de configuración:
search: engade o dominio iessanclemente.net ás consultas para tentar resolver os nomes dentro da nosa rede. Por exemplo, se o noso dominio é iessanclemente.net e tentamos facer un ping ao equipo pc1 dentro da nosa rede, non será necesario teclear o nome completo, é dicir, ping pc1.iessanclemente.net, senón que automaticamente realizarase unha consulta DNS para saber a IP de pc1.iessanclemente.net se tecleamos ping pc1.
nameserver: especifica os servidores DNS que se usarán para resolver nomes a direccións IP. Pode haber varios servidores DNS e consultaranse na orde especificada.
- Importante en Ubuntu Desktop:
- A partir da versión 12.04 de Ubuntu o ficheiro /etc/resolv.conf só é un ficheiro dinámico que contén a configuración DNS do equipo.
- Este ficheiro é xestionado polo NetworkManager, por tanto, calquera configuración que nel se introduza vaise perder.
- Se a versión que se usa de Ubuntu é 12.04 ou posterior, este instala no propio equipo un servidor lixeiro de DNS (dnsmasq) e por tanto o contido de /etc/resolv.conf vai conter a entrada nameserver 127.0.0.1, isto é, pregúntase a si mesmo.
- O NetworkManager ten configurado o servidor DNS en: /etc/NetworkManager/system-connections/<nome da conexión>, que será a quen se lle pregunte se dnsmasq non resolve.
- Se non se desexa que o equipo use dnsmasq comentar a entrada dns=dnsmasq do ficheiro /etc/NetworkManager/NetworkManager.conf e reiniciar o servizo (service NetworkManager restart) ou o equipo. Agora resolv.conf terá a configuración desexada.
- Tamén se pode fixar unha configuración DNS no ficheiro: /etc/resolvconf/resolv.conf.d/tail do mesmo xeito que sempre.
/etc/hosts
- Descrición: almacena a lista de hosts locais: nomes locais asociados a IPs (locais ou non). Cando o computador tenta achar o enderezo IP dun equipo, primeiro acudirá a este ficheiro antes que ao servidor de nomes DNS. Se a dirección IP está no ficheiro /etc/hosts o DNS non se usará (isto pode cambiarse editando o ficheiro /etc/nsswitch.conf e cambiando a orde en que se fai a busca). A diferencia de Windows, o cliente de DNS de Linux non almacena os resultados obtidos do DNS en caché.
- Sintaxe:
127.0.0.1 equipo localhost 69.50.12.40 x xunta equipo.ola.veran
- Exemplos de configuración:
127.0.0.1 equipo localhost, tanto se se fai ping ao equipo como a localhost, a resolución de nomes vai dar como IP 127.0.0.1
69.50.12.40 x xunta equipo.ola.veran, neste caso tanto os nomes x, xunta, equipo.ola.veran teñen asociada a IP 69.50.12.40
Comandos que se usarán nesta sección
ip
- O comando ip pertence a ferramenta Iproute2.
- Descrición: realiza as funcións de ifconfig, arp, route e outras. Permite configurar as interfaces de rede, xestionar a táboa de MACs e configurar rutas de enrotamento.
Obsoleto (net-tools) | Nova utilidade (Iproute2) | Notas |
---|---|---|
ifconfig
|
ip addr , ip link , ip -s
|
Configuración de enderezo e enlace |
route
|
ip route
|
Táboas de ruteo |
arp
|
ip neigh
|
Equipos veciños |
iptunnel
|
ip tunnel
|
Túneles |
nameif
|
ifrename , ip link set name
|
Renomear interfaces de rede |
ipmaddr
|
ip maddr
|
Multicast |
netstat
|
ip -s , ss , ip route
|
Amosa varias estadísticas de rede |
- Sintaxe:
ip [ OPCIÓNs ] OBXETO [ COMANDO [ ARGUMENTOS]]
OBXECTO:
link: configurar os obxectos físicos o lógicos de la red address (addr): Manexo de direccións asociadas aos diferentes dispositivos. Cada dispositivo debe tener ao menos unha dirección asociada. neighbour: ver os enlaces de veciñanza, engadir novas entradas de veciñanza e borrar as antiguas. rule: ver as políticas de enrotamente e cambialas. route: ver as táboas de enrotamento e cambiar as regras das táboas. tunnel: ver os túneles IP e as súas propiedades e cambialos. maddr: ver as direccións multienlace e as súas propiedades e cambiarlas. mroute: establecer, cambiar ou borrar o enrutamento multienlace. monitor: monitorizar continuamente o estado dos dispositivos, direcciós e rotas
- Se se escribe ip sen parámetros aparece a axuda.
- Exemplos:
- Para ver a configuración do interface:
ip addr show
Para asignar a dirección IP e a máscara de rede a unha interfaz de rede:
ip addr add 10.0.0.100/8 dev eth0
ifconfig
- Se se executa ifconfig en Debian 9 ou superior obtense:
root@dbase:~# ifconfig -bash: ifconfig: non se atopou a orde root@dbase:~#
O mesmo pasa con:
root@dbase:~# arp -bash: arp: non se atopou a orde root@dbase:~# route -bash: route: non se atopou a orde root@dbase:~# netstat -bash: netstat: non se atopou a orde root@dbase:~#
- Para poder seguir utilizando os comandos anteriores na versión 9 de Debian (ou superior) é preciso instalar as utilidades net-tools.
root@dbase:~# apt-get install net-tools -y
- Descrición: Mostra e modifica a configuración das interfaces de rede e a configuración IP do equipo
- Sintaxe:
ifconfig [-v] [-a] [-s] [interface] ifconfig [-v] interface [aftype] options | address ...
- Opcións principais:
-a: Mostra a información de todas as interfaces de rede do equipo, incluíndo as que non están activadas
interface: Indicando o nome dunha interfaz de rede do equipo, mostra ou modifica a configuración dese interfaz
up|down: Activa ou desactiva unha interfaz
address: Dirección IP para asignar a esta interfaz
netmask mascara: Máscara de rede para asignar a esta interfaz
- Exemplo: Para asignar a dirección IP e a máscara de rede a unha interfaz de rede:
ifconfig ethX 10.0.0.100 netmask 255.0.0.0 up
Con isto pola interface ethX de rede débese ter acceso á rede local. Sen embargo, non se pode acceder aínda a equipos fóra desta rede.
Así, executando este comando pódese modificar a configuración actual das interfaces de rede do equipo, pero esta configuración non se manterá se se reinicia o equipo ou o servizo de rede. Como se consegue entón que os cambios realizados nas ferramentas das distribucións ou co webmin si perduren despois de apagar o equipo?. O que fan estas ferramentas é gardar os datos en ficheiros de configuracións. Este é un deles: /etc/network/interfaces
ifdown / ifup
- Descrición: desactiva/activa interfaces de rede.
- Sintaxe:
ifdown / ifup [-a] [interface]
- Opcións principais:
-a: desactiva/activa todas as interfaces marcadas como auto no ficheiro /etc/interfaces
interface: Indicar o nome dunha interface de rede do equipo
- Exemplo: desactivar a interface eth0:
ifdown eth0
- O equivalente na ferramenta Iproute2:
ip link set eth0 up / down
route
- Descrición: Mostra e modifica as entradas da táboa de enrutamento do equipo para poder ter acceso a internet.
- Sintaxe:
route [-CFvnee] route [-v] [-A family] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I] [reject] [mod] [dyn] [reinstate] [[dev] If] route [-v] [-A family] del [-net|-host] target [gw Gw] [netmask Nm] [metric N] [[dev] If] route [-V] [--version] [-h] [--help]
- Opcións principais:
del: Borra unha ruta add: Engade unha ruta target: Rede ou máquina destino á que queremos chegar -net|-host: Indica se o destino é unha rede ou unha máquina netmask máscara: Máscara de rede para a ruta gw seguinte: Dirección IP do router ao que se deben enviar os paquetes para o destino indicado
- Exemplo: cal é a dirección da porta de enlace que nos une co exterior?. Utilizaremos o comando route para configurala:
route add default gw 10.0.0.1 eth0
O equivalente na ferramenta Iproute2:
ip route add default via 10.0.0.1 dev eth0
Así, executando este comando pódese modificar a configuración actual das interfaces de rede do equipo, pero esta configuración non se manterá se se reinicia o equipo ou o servizo de rede. Sucede o mesmo que con ifconfig. Para que a porta de enlace sexa permanente hai que almacenala no ficheiro: /etc/network/interfaces
- No seguinte enlace pódese afondar máis entre a equivalencia de comandos das utilidades net-tools (obsoleta) e Iproute2:
Coñecer a configuración da rede
- A continuación as pantallas seguintes está realizadas usando comandos da utilidade net-tools.
- Debaixo das pantallas amosarase o equivalente coa utilidade Iproute2.
Os interfaces noméanse na versión 9 de Debian como se indicou enriba e en versións anteriores ou noutros SOs aínda se seguen nomeando como:
- eth0, eth1, etc. son as tarxetas de rede ethernet instaladas no sistema.
- O interface lo (loopback) é unha tarxeta de rede virtual que lle permite ó equipo conectarse consigo mesmo (o seu enderezo IP soe ser 127.0.0.1), e xeralmente responde ó nome de Localhost.
- Os interfaces wlanX son as tarxetas de rede sen fíos.
Cada interface pode estar activa ou inactiva. Cando se inicia o sistema, activaranse as interfaces que se indiquen no arquivo /etc/network/interfaces mediante o parámetro auto.
Pódense activar ou desactivar as distintas interfaces mediante a execución do sistema cos comandos: ifconfig, ifup ou ifdown.
As seguintes imaxes son a modo de exemplo, non se corresponden coa máquina instalada nun paso previo.
Neste caso, o sistema ten tres interfaces (eth0, eth1, lo), pero só amosa os que están activos (lo e eth0), neste caso activáronse no arranque do sistema. Para realizar o curso non é preciso dispor de 2 interfaces ethernet, só os ten o equipo do curso para usalo como exemplo.
Có comando ifconfig, pódese coñecer o enderezo IP, a máscara, broadcast, o enderezo MAC, etc.
Comando Iproute2: ip addr show
Executando ifconfig -a amósase a configuración de todas as interfaces do sistema estean ou non activas. Nótese como agora amosa tamén o interface eth1.
Comando Iproute2: ip addr show
Executando ifconfig <interface> amósase a configuración dunha interface concreta:
Comando Iproute2: ip addr show eth0
Cambiar a configuración de rede do servidor
A configuración da rede, asignar unha IP a unha interface ou cambiala pódese facer a través da:
- execución do comando ip ou ifconfig se teñen instaladas as utilidades net-tools ou
- edición do ficheiro /etc/network/interfaces.
Para editar o ficheiro de configuración das interfaces de rede.
sudo nano /etc/network/interfaces
Activar a nova configuración IP do servidor
Aínda que se modifique o ficheiro, a nova configuración non terá efecto até que se faga unha das tres cousas seguintes:
- Se reinicie o sistema, pois aí lese o ficheiro e eth0 configuraríase cos novos parámetros.
- Se desactive e active o interface de rede (neste caso eth0). Para iso úsanse os comando ifdown e ifup / ip link set eth0 up /down
- Se reinicie o servizo de rede. Reiniciando o demo(servizo) de rede, este párase e vólvese iniciar, momento no que volve ler o ficheiro etc/network/interfaces. Sobre servizos hai unha sección posterior, onde se explica o seu funcionamento.
A vantaxe da 2ª opción é que só se ve afectada a interface en cuestión e non todo o servizo de rede con tódalas posibles interfaces que estiveran activas. Na terceira opción, se hai varias interfaces de rede activas e só se desexa modificar unha delas, veríanse todas afectadas e por un intre o equipo tería tódalas interfaces desactivadas.
ifdown eth0, para parar o interface eth0. ifup eth0, para levantar a interface eth0 coa configuración que haxa no ficheiro /etc/network/interfaces
- Iproute2:
ip link set eth0 down, para parar o interface eth0. ip link set eth0 up, para levantar a interface eth0 coa configuración que haxa no ficheiro /etc/network/interfaces
Configurar o cliente DNS
Se se quere saír con conexión a internet, cada quen debe configurar o seu equipo de acordo ós parámetros DNS que indique o Provedor de Servizos de Internet (ISP).
Neste caso estáse a configurar un equipo Ubuntu usando o comando sudo para executar os comandos como root. No caso do debian o comando sudo non está instalado e non fai falla se se excutan os comandos dende o usuario root.
sudo nano /etc/resolv.conf