diff --git a/docs/Capturas e imagenes/Escenario 1/Diagrama-Escenario 1.png b/docs/Capturas e imagenes/Escenario 1/Diagrama-Escenario 1.png new file mode 100644 index 0000000000000000000000000000000000000000..73e5afdd8d587680ef9992b51e14c7698e7e6758 Binary files /dev/null and b/docs/Capturas e imagenes/Escenario 1/Diagrama-Escenario 1.png differ diff --git a/docs/Capturas e imagenes/Escenario 2/Diagrama-Escenario 2.png b/docs/Capturas e imagenes/Escenario 2/Diagrama-Escenario 2.png new file mode 100644 index 0000000000000000000000000000000000000000..22c6f5792f8d14c08f520cc538d2a5055b7f7396 Binary files /dev/null and b/docs/Capturas e imagenes/Escenario 2/Diagrama-Escenario 2.png differ diff --git a/docs/Capturas e imagenes/Escenario 3/Diagrama-Escenario 3.png b/docs/Capturas e imagenes/Escenario 3/Diagrama-Escenario 3.png new file mode 100644 index 0000000000000000000000000000000000000000..df9845d97679aa9a7a55248dcd09423fc1f10910 Binary files /dev/null and b/docs/Capturas e imagenes/Escenario 3/Diagrama-Escenario 3.png differ diff --git a/docs/Capturas e imagenes/Escenario 4/Diagrama-Escenario 4.png b/docs/Capturas e imagenes/Escenario 4/Diagrama-Escenario 4.png new file mode 100644 index 0000000000000000000000000000000000000000..ae9f0786e2180230dfdaee3705b7db1becca5485 Binary files /dev/null and b/docs/Capturas e imagenes/Escenario 4/Diagrama-Escenario 4.png differ diff --git a/docs/Capturas e imagenes/Generales/Diagrama-Arquitectura.png b/docs/Capturas e imagenes/Generales/Diagrama-Arquitectura.png new file mode 100644 index 0000000000000000000000000000000000000000..ff84d4faff1820107fd551b93766dbf38e06e948 Binary files /dev/null and b/docs/Capturas e imagenes/Generales/Diagrama-Arquitectura.png differ diff --git a/docs/conf_router b/docs/conf_router new file mode 100644 index 0000000000000000000000000000000000000000..837362694dc3b6c84f7d0dc360dce249bc76affc --- /dev/null +++ b/docs/conf_router @@ -0,0 +1,128 @@ +# CONFIGURACION DEL ROUTER + +1) Configuración de redes en virt-manager: +-- 1.1) Red router-nat (NAT contra br-mgmt): 10.0.40.0./24 +-- 1.2) Red management (isolated): 10.0.10.0./24 +-- 1.3) Red storage (isolated): 10.0.20.0./24 +-- 1.4) Red tenant (isolated): 10.0.20.0./24 + +2) Configurar máquina Router +-- 2.0) Requerimientos: +---- 2.0.1) vCPUs: 2 +---- 2.0.2) Memoria: 8 GB +---- 2.0.3) Disco: 40 GB +---- 2.0.4) SO: CentOS 7 server +---- 2.0.5) NIC 1: en la red router-nat con IP 10.0.40.2 +---- 2.0.5) NIC 2: en la red management con IP 10.0.10.2 +---- 2.0.5) NIC 3: en la red storage con IP 10.0.20.2 +---- 2.0.5) NIC 4: en la red tenant con IP 10.0.30.2 + +-- 2.1) Cambiar el hostname a 'router' en /etc/hostname y mediante el comando '$ hostname router' + +-- 2.2) Configurar las interfaces de red siguiendo los archivos en src/router/network-scripts + - eth0 + - eth1 + - eth2 + - eth3 + - eth3.100 + - eth3.101 + +-- 2.3) Habilitar el módulo para vlans con el comando 'modprobe 8021q' +---- 2.3.1) Verificar que se encuentre habilitado mediante 'lsmod |grep 8021q' + +-- 2.4) Reiniciar el servicio de red + $ systemctl restart network + +-- 2.5) Configurar el forwarding entre redes (https://www.lisenet.com/2016/firewalld-rich-and-direct-rules-setup-rhel-7-server-as-a-router/) +---- 2.5.1) Revisar el estado de las interfaces + $ nmcli d + DEVICE TYPE STATE CONNECTION + eth0 ethernet connected eth0 + eth1 ethernet connected eth1 + eth2 ethernet connected eth2 + eth3 ethernet connected eth3 + eth3.100 vlan connected eth3.100 + eth3.101 vlan connected eth3.101 + lo loopback unmanaged -- + +---- 2.5.2) Excluir los servicios basados en iptables + $ systemctl mask iptables ip6tables ebtables + Created symlink from /etc/systemd/system/iptables.service to /dev/null. + Created symlink from /etc/systemd/system/ip6tables.service to /dev/null. + Created symlink from /etc/systemd/system/ebtables.service to /dev/null. + +---- 2.5.3) En principio todas las interfaces en la zona publica y debería ser la zona por default + $ firewall-cmd --get-active-zones + public + interfaces: eth0 eth1 eth2 eth3 eth3.100 eth3.101 + + $ firewall-cmd --get-default-zone + public + +---- 2.5.4) Resetear la default zone a public para asegurarse + $ firewall-cmd --set-default-zone=public + Warning: ZONE_ALREADY_SET: public + success +---- 2.5.5) Agregar las zonas management, storage y tenant + $ firewall-cmd --permanent --new-zone=management + $ firewall-cmd --permanent --new-zone=storage + $ firewall-cmd --permanent --new-zone=tenant + $ firewall-cmd --reload + +---- 2.5.6) Remover la interfaz eth1 de la zona public y asignarla a la zona management + $ firewall-cmd --remove-interface=eth1 --zone=public + $ firewall-cmd --permanent --add-interface=eth1 --zone=management + +---- 2.5.7) Remover la interfaz eth2 de la zona public y asignarla a la zona storage + $ firewall-cmd --remove-interface=eth2 --zone=public + $ firewall-cmd --permanent --add-interface=eth2 --zone=storage + +---- 2.5.8) Remover las interfaces eth3, eth3.100 y eth3.101 de la zona public y asignarla a la zona tenant + $ firewall-cmd --remove-interface=eth3 --zone=public + $ firewall-cmd --permanent --add-interface=eth3 --zone=tenant + + $ firewall-cmd --remove-interface=eth3.100 --zone=public + $ firewall-cmd --permanent --add-interface=eth3.100 --zone=tenant + + $ firewall-cmd --remove-interface=eth3.101 --zone=public + $ firewall-cmd --permanent --add-interface=eth3.101 --zone=tenant + +---- 2.5.9) Recargar la configuración + $ firewall-cmd --reload + +---- 2.5.10) Revisar la configuración de las zonas + $ firewall-cmd --get-active-zones + management + interfaces: eth1 + storage + interfaces: eth2 + public + interfaces: eth0 + tenant + interfaces: eth3 eth3.100 eth3.101 + +---- 2.5.11) Asegurarse de que las zonas están bien configuradas en las interfaces + $ nmcli con mod eth0 connection.zone public + + $ nmcli con mod eth1 connection.zone management + + $ nmcli con mod eth2 connection.zone storage + + $ nmcli con mod eth3 connection.zone tenant + $ nmcli con mod eth3.100 connection.zone tenant + $ nmcli con mod eth3.101 connection.zone tenant + + $ nmcli c reload + +---- 2.5.12) Habilitar el forwarding de ipv4 +------ 2.5.12.1) Primero en forma permanente: + $ echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/ip_forward.conf + +------ 2.5.12.2) Luego en tiempo de ejecución: + $ sysctl -w net.ipv4.ip_forward=1 + +---- 2.5.13) Habilitar el masquerade para generar el NAT entre las redes: + $ firewall-cmd --permanent --zone=public --add-masquerade + $ firewall-cmd --reload + + diff --git a/manage/scripts/migrate_instance.sh b/manage/scripts/migrate_instance.sh new file mode 100755 index 0000000000000000000000000000000000000000..4bb46aad7d075307f134965f97f28175ce8afa70 --- /dev/null +++ b/manage/scripts/migrate_instance.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +# Provide usage +usage() { +echo "Usage: $0 VM_ID" +exit 1 +} + +[[ $# -eq 0 ]] && usage + +# Migrate the VM to an alternate hypervisor +echo -n "Migrating instance to alternate host" +VM_ID=$1 +openstack server migrate $VM_ID +VM_OUTPUT=$(openstack server show $VM_ID) +VM_STATUS=$(echo "$VM_OUTPUT" | grep status | awk '{print $4}') +while [[ "$VM_STATUS" != "VERIFY_RESIZE" ]]; do +echo -n "." +sleep 2 +VM_OUTPUT=$(openstack server show $VM_ID) +VM_STATUS=$(echo "$VM_OUTPUT" | grep status | awk '{print $4}') +done +nova resize-confirm $VM_ID +echo " instance migrated and resized." +echo; + +# Show the details for the VM +echo "Updated instance details:" +openstack server show $VM_ID + +# Pause to allow users to examine VM details +read -p "Pausing, press <enter> to exit." diff --git a/src/router/network-scripts/ifcfg-eth0 b/src/router/network-scripts/ifcfg-eth0 new file mode 100644 index 0000000000000000000000000000000000000000..2546f6d5847bf4e2db51ed60e2b74c1fdfcb1d37 --- /dev/null +++ b/src/router/network-scripts/ifcfg-eth0 @@ -0,0 +1,11 @@ +TYPE=Ethernet +BOOTPROTO=none +DEFROUTE=yes +NAME=eth0 +DEVICE=eth0 +ONBOOT=yes +IPADDR=10.0.40.2 +PREFIX=24 +NETWORK=10.0.40.0 +GATEWAY=10.0.40.1 +DNS1=192.168.60.230 diff --git a/src/router/network-scripts/ifcfg-eth1 b/src/router/network-scripts/ifcfg-eth1 new file mode 100644 index 0000000000000000000000000000000000000000..8937c507286ec4e4c6c918c7920953f07998b746 --- /dev/null +++ b/src/router/network-scripts/ifcfg-eth1 @@ -0,0 +1,8 @@ +TYPE=Ethernet +BOOTPROTO=none +NAME=eth1 +DEVICE=eth1 +ONBOOT=yes +IPADDR=10.0.10.2 +PREFIX=24 +NETWORK=10.0.10.0 diff --git a/src/router/network-scripts/ifcfg-eth2 b/src/router/network-scripts/ifcfg-eth2 new file mode 100644 index 0000000000000000000000000000000000000000..88e1579ab9ba7b890e579c54b9a9e557e500b83d --- /dev/null +++ b/src/router/network-scripts/ifcfg-eth2 @@ -0,0 +1,8 @@ +TYPE=Ethernet +BOOTPROTO=none +NAME=eth2 +DEVICE=eth2 +ONBOOT=yes +IPADDR=10.0.20.2 +PREFIX=24 +NETWORK=10.0.20.0 diff --git a/src/router/network-scripts/ifcfg-eth3 b/src/router/network-scripts/ifcfg-eth3 new file mode 100644 index 0000000000000000000000000000000000000000..ebd1bac1ad0c6f99c2c67629aae9df289808ab58 --- /dev/null +++ b/src/router/network-scripts/ifcfg-eth3 @@ -0,0 +1,8 @@ +TYPE=Ethernet +BOOTPROTO=none +NAME=eth3 +DEVICE=eth3 +ONBOOT=yes +IPADDR=10.0.30.2 +PREFIX=24 +NETWORK=10.0.30.0 diff --git a/src/router/network-scripts/ifcfg-eth3.100 b/src/router/network-scripts/ifcfg-eth3.100 new file mode 100644 index 0000000000000000000000000000000000000000..671f944ad852b41768c9bc361f5fd564d979b20f --- /dev/null +++ b/src/router/network-scripts/ifcfg-eth3.100 @@ -0,0 +1,9 @@ +BOOTPROTO=none +NAME=eth3.100 +DEVICE=eth3.100 +ONBOOT=yes +IPADDR=10.0.100.2 +PREFIX=24 +NETWORK=10.0.100.0 +VLAN=yes + diff --git a/src/router/network-scripts/ifcfg-eth3.101 b/src/router/network-scripts/ifcfg-eth3.101 new file mode 100644 index 0000000000000000000000000000000000000000..5d553cab3a450912c1158f7a8b14af35e5765e14 --- /dev/null +++ b/src/router/network-scripts/ifcfg-eth3.101 @@ -0,0 +1,9 @@ +BOOTPROTO=none +NAME=eth3.101 +DEVICE=eth3.101 +ONBOOT=yes +IPADDR=10.0.101.2 +PREFIX=24 +NETWORK=10.0.100.0 +VLAN=yes + diff --git a/src/router/network-scripts/ifcfg-eth3.bk b/src/router/network-scripts/ifcfg-eth3.bk new file mode 100644 index 0000000000000000000000000000000000000000..050dd1fe6b857c718f86ba89361a2be747466d82 --- /dev/null +++ b/src/router/network-scripts/ifcfg-eth3.bk @@ -0,0 +1,6 @@ +TYPE=Ethernet +BOOTPROTO=none +NAME=eth3 +DEVICE=eth3 +ONBOOT=yes +