Creeu diverses adreces IP a una única interfície de xarxa


El concepte de crear o configurar diverses adreces IP en una única interfície de xarxa s'anomena àlies IP. L'àlies IP és molt útil per configurar diversos llocs virtuals a Apache mitjançant una única interfície de xarxa amb diferents adreces IP en una única xarxa de subxarxa.

El principal avantatge d'utilitzar aquest àlies d'IP és que no cal que tingueu un adaptador físic connectat a cada IP, sinó que podeu crear múltiples o moltes interfícies virtuals (àlies) a una única targeta física.

Les instruccions que es donen aquí s'apliquen a totes les distribucions principals de Linux com Red Hat, Fedora i CentOS. Crear múltiples interfícies i assignar-li una adreça IP manualment és una tasca descoratjadora. Aquí veurem com li podem assignar una adreça IP definint un conjunt d'intervals IP. També entendrem com crearem una interfície virtual i assignarem diferents rangs d'adreces IP a una interfície d'una vegada. En aquest article hem utilitzat IP LAN, així que substituïu-les per les que utilitzareu.

Creació d'interfície virtual i assignació d'adreces IP múltiples

Aquí tinc una interfície anomenada ifcfg-eth0, la interfície predeterminada per al dispositiu Ethernet. Si heu connectat un segon dispositiu Ethernet, hi hauria un dispositiu ifcfg-eth1 i així successivament per a cada dispositiu que hàgiu connectat. Aquests fitxers de xarxa del dispositiu es troben al directori /etc/sysconfig/network-scripts/. Navegueu al directori i feu ls -l per llistar tots els dispositius.

# cd /etc/sysconfig/network-scripts/
# ls -l
ifcfg-eth0   ifdown-isdn    ifup-aliases  ifup-plusb     init.ipv6-global
ifcfg-lo     ifdown-post    ifup-bnep     ifup-post      net.hotplug
ifdown       ifdown-ppp     ifup-eth      ifup-ppp       network-functions
ifdown-bnep  ifdown-routes  ifup-ippp     ifup-routes    network-functions-ipv6
ifdown-eth   ifdown-sit     ifup-ipv6     ifup-sit
ifdown-ippp  ifdown-tunnel  ifup-isdn     ifup-tunnel
ifdown-ipv6  ifup           ifup-plip     ifup-wireless

Suposem que volem crear tres interfícies virtuals addicionals per vincular tres adreces IP (172.16.16.126, 172.16.16.127 i 172.16.16.128) a la NIC. Per tant, hem de crear tres fitxers d'àlies addicionals, mentre que ifcfg-eth0 manté la mateixa adreça IP principal. Així és com avancem per configurar tres àlies per vincular les següents adreces IP.

Adapter            IP Address                Type
-------------------------------------------------
eth0              172.16.16.125            Primary
eth0:0            172.16.16.126            Alias 1
eth0:1            172.16.16.127            Alias 2
eth0:2            172.16.16.128            Alias 3

On :X és el número de dispositiu (interfície) per crear els àlies per a la interfície eth0. Per a cada àlies heu d'assignar un número seqüencialment. Per exemple, copiem els paràmetres existents de la interfície ifcfg-eth0 en interfícies virtuals anomenades ifcfg-eth0:0, ifcfg-eth0:1 i ifcfg-eth0:2. Aneu al directori de xarxa i creeu els fitxers tal com es mostra a continuació.

# cd /etc/sysconfig/network-scripts/
# cp ifcfg-eth0 ifcfg-eth0:0
# cp ifcfg-eth0 ifcfg-eth0:1
# cp ifcfg-eth0 ifcfg-eth0:2

Obriu un fitxer ifcfg-eth0 i visualitzeu-ne el contingut.

 vi ifcfg-eth0

DEVICE="eth0"
BOOTPROTO=static
ONBOOT=yes
TYPE="Ethernet"
IPADDR=172.16.16.125
NETMASK=255.255.255.224
GATEWAY=172.16.16.100
HWADDR=00:0C:29:28:FD:4C

Aquí només necessitem dos paràmetres (DEVICE i IPADDR). Per tant, obriu cada fitxer amb l'editor VI i canvieu el nom del DISPOSITIU pel seu àlies corresponent i canvieu l'adreça IPADDR. Per exemple, obriu els fitxers ifcfg-eth0:0, ifcfg-eth0:1 i ifcfg-eth0:2 mitjançant l'editor VI i canvieu els dos paràmetres. Finalment es veurà semblant al següent.

DEVICE="eth0:0"
BOOTPROTO=static
ONBOOT=yes
TYPE="Ethernet"
IPADDR=172.16.16.126
NETMASK=255.255.255.224
GATEWAY=172.16.16.100
HWADDR=00:0C:29:28:FD:4C
DEVICE="eth0:1"
BOOTPROTO=static
ONBOOT=yes
TYPE="Ethernet"
IPADDR=172.16.16.127
NETMASK=255.255.255.224
GATEWAY=172.16.16.100
HWADDR=00:0C:29:28:FD:4C
DEVICE="eth0:2"
BOOTPROTO=static
ONBOOT=yes
TYPE="Ethernet"
IPADDR=172.16.16.128
NETMASK=255.255.255.224
GATEWAY=172.16.16.100
HWADDR=00:0C:29:28:FD:4C

Un cop hàgiu fet tots els canvis, deseu tots els canvis i reinicieu/inicieu el servei de xarxa perquè es reflecteixin els canvis.

 /etc/init.d/network restart

Per verificar que tots els àlies (interfície virtual) estiguin en funcionament, podeu utilitzar l'ordre ip.

 ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.125  Bcast:172.16.16.100  Mask:255.255.255.224
          inet6 addr: fe80::20c:29ff:fe28:fd4c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:237 errors:0 dropped:0 overruns:0 frame:0
          TX packets:198 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:25429 (24.8 KiB)  TX bytes:26910 (26.2 KiB)
          Interrupt:18 Base address:0x2000

eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.126  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.127  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

eth0:2    Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.128  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

Feu ping a cadascun d'ells des d'una màquina diferent. Si tot està configurat correctament, obtindreu una resposta de ping de cadascun d'ells.

ping 172.16.16.126
ping 172.16.16.127
ping 172.16.16.128
 ping 172.16.16.126
PING 172.16.16.126 (172.16.16.126) 56(84) bytes of data.
64 bytes from 172.16.16.126: icmp_seq=1 ttl=64 time=1.33 ms
64 bytes from 172.16.16.126: icmp_seq=2 ttl=64 time=0.165 ms
64 bytes from 172.16.16.126: icmp_seq=3 ttl=64 time=0.159 ms

--- 172.16.16.126 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.159/0.552/1.332/0.551 ms

 ping 172.16.16.127
PING 172.16.16.127 (172.16.16.127) 56(84) bytes of data.
64 bytes from 172.16.16.127: icmp_seq=1 ttl=64 time=1.33 ms
64 bytes from 172.16.16.127: icmp_seq=2 ttl=64 time=0.165 ms
64 bytes from 172.16.16.127: icmp_seq=3 ttl=64 time=0.159 ms

--- 172.16.16.127 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.159/0.552/1.332/0.551 ms

 ping 172.16.16.128
PING 172.16.16.128 (172.16.16.128) 56(84) bytes of data.
64 bytes from 172.16.16.128: icmp_seq=1 ttl=64 time=1.33 ms
64 bytes from 172.16.16.128: icmp_seq=2 ttl=64 time=0.165 ms
64 bytes from 172.16.16.128: icmp_seq=3 ttl=64 time=0.159 ms

--- 172.16.16.128 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.159/0.552/1.332/0.551 ms

Sembla que tot funciona sense problemes, amb aquestes noves IPs podeu configurar llocs virtuals a Apache, comptes FTP i moltes altres coses.

Assigna un rang d'adreces IP múltiples

Si voleu crear un rang d'adreces IP múltiples a una interfície concreta anomenada ifcfg-eth0, utilitzem ifcfg-eth0-range0 i copiem el contingut d'ifcfg-eth0 com es mostra a continuació.

 cd /etc/sysconfig/network-scripts/
 cp -p ifcfg-eth0 ifcfg-eth0-range0

Ara obriu el fitxer ifcfg-eth0-range0 i afegiu l'interval d'adreces IP IPADDR_START i IPADDR_END tal com es mostra a continuació.

 vi ifcfg-eth0-range0

#DEVICE="eth0"
#BOOTPROTO=none
#NM_CONTROLLED="yes"
#ONBOOT=yes
TYPE="Ethernet"
IPADDR_START=172.16.16.126
IPADDR_END=172.16.16.130
IPV6INIT=no
#GATEWAY=172.16.16.100

Deseu-lo i reinicieu/inicieu el servei de xarxa

 /etc/init.d/network restart

Verifiqueu que les interfícies virtuals es creïn amb l'adreça IP.

 ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.125  Bcast:172.16.16.100  Mask:255.255.255.224
          inet6 addr: fe80::20c:29ff:fe28:fd4c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1385 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1249 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:127317 (124.3 KiB)  TX bytes:200787 (196.0 KiB)
          Interrupt:18 Base address:0x2000

eth0:0     Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.126  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.127  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

eth0:2    Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.128  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

eth0:3    Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.129  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

eth0:4    Link encap:Ethernet  HWaddr 00:0C:29:28:FD:4C
          inet addr:172.16.16.130  Bcast:172.16.16.100  Mask:255.255.255.224
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:18 Base address:0x2000

Si teniu problemes per configurar-lo, publiqueu les vostres consultes a la secció de comentaris.