# Proves amb xarxes Les **xarxes** a IsardVDI dónen lloc a un munt d'**escenaris diferents** per **cada tipus de pràctica**. En aquest manual s'**expliquen** els **diferents tipus de xarxes** que es poden configurar als escriptoris virtuals i **exemples de casos d'ús** per cada tipus. Primerament es **fiquen** totes les xarxes a un escriptori i conforme es configuren es **descriu** el seu **funcionament** i **casos d'ús**. ## Manual d'usuari ### Assignació de xarxes a l'escriptori 1. Es crea un escriptori en base a una plantilla, o en un escriptori ja creat es [modifica l'apartat de Xarxes a Hardware](https://isard.gitlab.io/isardvdi-docs/user/edit_desktop.ca/#hardware), i s'afegeixen **vuit xarxes diferents** 2. S'**arrenca** l'escriptori i s'obre un **terminal** on es comproven les 8 xarxes afegides, escrivint ```ip link show```: ``` isard@ubuntu:~$ ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:3d:82:1e brd ff:ff:ff:ff:ff:ff 3: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:25:35:1d brd ff:ff:ff:ff:ff:ff 4: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:3a:5e:b9 brd ff:ff:ff:ff:ff:ff 5: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:3b:75:c9 brd ff:ff:ff:ff:ff:ff 6: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:03:c8:83 brd ff:ff:ff:ff:ff:ff 7: enp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:41:76:68 brd ff:ff:ff:ff:ff:ff 8: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:19:cb:5f brd ff:ff:ff:ff:ff:ff 9: enp8s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1366 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:25:de:9f brd ff:ff:ff:ff:ff:ff ``` :::info :information_source: Info L’**ordre** de targetes de xarxa que es configuren en l’escriptori a l’Isard és l’ordre de targetes que apareixen configurades al sistema de l’escriptori, per exemple, quan s’escriu al terminal el comandament **ip -c a** ::: #### Renomenament targetes de xarxa Per **facilitar** l'experiència i **agilitzar** el treball de l'usuari, es poden **modificar els noms** de les diferents interfícies que corresponen a les diferents xarxes afegides, amb les nomenades **regles udev**. Les **regles udev** associen el nom del dispositiu original al nom que es volgui modificar. Es pot fer amb aquest comandament i amb cadascun dels noms descrits al camp ```NAME```: ``` sudo bash -c 'cat > /etc/udev/rules.d/70-persistent-net.rules << EOF SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{type}=="1", KERNEL=="enp1s0", NAME="sortida" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{type}=="1", KERNEL=="enp2s0", NAME="cirvianum1" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{type}=="1", KERNEL=="enp3s0", NAME="cirvianum2" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{type}=="1", KERNEL=="enp4s0", NAME="cirvianum3" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{type}=="1", KERNEL=="enp5s0", NAME="cirvianum4" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{type}=="1", KERNEL=="enp6s0", NAME="cirvianum5" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{type}=="1", KERNEL=="enp7s0", NAME="personal" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{type}=="1", KERNEL=="enp8s0", NAME="vpn" EOF' ``` Per aplicar els canvis és necessari fer un **reinici**. ``` isard@ubuntu:~$ ip link show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: sortida: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:3d:82:1e brd ff:ff:ff:ff:ff:ff altname enp1s0 3: cirvianum1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:25:35:1d brd ff:ff:ff:ff:ff:ff altname enp2s0 4: cirvianum2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:3a:5e:b9 brd ff:ff:ff:ff:ff:ff altname enp3s0 5: cirvianum3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:3b:75:c9 brd ff:ff:ff:ff:ff:ff altname enp4s0 6: cirvianum4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:03:c8:83 brd ff:ff:ff:ff:ff:ff altname enp5s0 7: cirvianum5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:41:76:68 brd ff:ff:ff:ff:ff:ff altname enp6s0 8: personal: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:19:cb:5f brd ff:ff:ff:ff:ff:ff altname enp7s0 9: vpn: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1366 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:25:de:9f brd ff:ff:ff:ff:ff:ff altname enp8s0 ``` :::warning :warning: Warning Si **posteriorment** es **treuen**, **afegeixen**, o **canvien** l’**ordre** de les targetes corresponents a les interfícies haurem de **tornar a modificar** aquest **fitxer de regles udev**. Aquesta configuració funciona per a **qualsevol distribució de Linux** actual. ::: ### Configuració de cada targeta i funcionament de cadascuna Per la explicació es faran servir **dos escriptoris** configurats amb les **mateixes xarxes**, nomenats **equip1** i **equip2**. Hi ficarem les mateixes xarxes a ambdós escriptoris per fer **proves de connexió de targetes** i veure quines **permeten** comunicació i quines no, **com** s'estableix aquesta comunicació, i quines **adreces** es configuren a cadascuna depenent de la xarxa local. ![](https://i.imgur.com/5YE64YE.png) #### Xarxa default - sortida a internet "**Default**" permet als escriptoris **sortida a Internet** amb cada **adreça IP aïllada** de la resta (escriptoris **no es comuniquen**). Es fa servir per defecte a **totes** les plantilles base d'Isard. Al ser la primera targeta, el DHCP intern d'Ubuntu Desktop li ha creat una configuració (comportament que depèn de cada distribució, no hi ha perquè ser igual a cada escriptori Linux). ``` isard@equip1:~$ ip a s sortida 2: sortida: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:44:60:ce brd ff:ff:ff:ff:ff:ff altname enp1s0 inet 192.168.121.141/22 brd 192.168.123.255 scope global dynamic sortida valid_lft 3493sec preferred_lft 3493sec inet6 fe80::c184:3254:a9dc:1837/64 scope link noprefixroute valid_lft forever preferred_lft forever isard@equip2:~$ ip a s sortida 2: sortida: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:3d:82:1e brd ff:ff:ff:ff:ff:ff altname enp1s0 inet 192.168.121.176/22 brd 192.168.123.255 scope global dynamic noprefixroute sortida valid_lft 3068sec preferred_lft 3068sec inet6 fe80::2cd1:aa3f:8fe3:9268/64 scope link noprefixroute valid_lft forever preferred_lft forever ``` #### Xarxes privades Les xarxes **privades** estan pensades per muntar escenaris on **diferents usuaris** comparteixen una **mateixa xarxa**. Treballen en un segment d’Ethernet **aïllat** i no hi ha un servidor DHCP que doni adreces IP. Per tant, és recomanable o bé **afegir un servidor DHCP** a aquestes xarxes o configurar l'adreça IP **manualment**. ##### Unmanaged Per les targetes de xarxa noves que no tinguin una configuració, **NetworkManager** mirarà de crear una nova connexió. Per frenar aquest comportament és possible frenar el NetworkManager i el seu treball que fa **automàticament** de crear connexions, i fer la targeta "**unmanaged**". Una forma de fer-ho és mitjançant regles al fitxer ```/etc/NetworkManager/conf.d/99-unmanaged-devices.conf```: ``` sudo bash -c 'cat > /etc/NetworkManager/conf.d/99-unmanaged-devices.conf << EOF [keyfile] unmanaged-devices=interface-name:cirvianum1;interface-name:cirvianum2 EOF' ``` ##### Disabled Una configuració de xarxa és "**disabled**" quan es **deshabilita del sistema** i no se'n farà ús. Es pot fer amb **nmtui**, **nmcli** o amb el gestor de connexions gràfic. ``` nmcli con add con-name cirvianum3 ifname cirvianum3 type ethernet ipv4.method disabled ipv6.method disabled connection.autoconnect yes nmcli con add con-name cirvianum4 ifname cirvianum4 type ethernet ipv4.method disabled ipv6.method disabled connection.autoconnect yes ``` ##### Servidor DHCP i IP dinàmica Es pot fer aquesta configuració deixant la targeta preparada amb aquest comandament i/o **aprofitar una plantilla** que ja porti un servidor DHCP preparat. ``` sudo nmcli con add con-name cirvianum5 ifname cirvianum5 type ethernet method auto connection.autoconnect yes ``` ![](https://i.imgur.com/aPCbWTY.png) ![](https://i.imgur.com/I0JdCAn.png) Es pot **editar el fitxer** de configuració del servidor DHCP i **reiniciar** el servei, perquè agafi la configuració adient per a les targetes i xarxa de la pràctica. ##### Personals Estan pensades per realitzar pràctiques on l'usuari faci servir un **segment de xarxa exclusiu** entre els **seus escriptoris personals**; no podrà veure els escriptoris de companys encara que estiguin **tots connectats** a aquesta mateixa xarxa "**Personal**". Es poden deixar configurades plantilles amb adreces IP fixes amb aquesta xarxa i **no col·lisionaran entre usuaris**. Per exemple configurarem la ip fixa de la família 172.18.0.101/24: ``` sudo nmcli con add con-name personal ifname personal type ethernet ip4 172.18.0.101/24 connection.autoconnect yes ``` ##### VPN Pensada per treballar **des de casa**, es pot consultar el manual oficial per veure [com es configura la VPN als diferents sistemes del client](https://isard.gitlab.io/isardvdi-docs/user/vpn.ca/#vpn). És la xarxa que es fa servir pels **visors de RDP**, i té un MTU més petit degut a que s'encapsulen els paquets **xifrats**. ### Verificació de les targetes base Es fa un reinici i es verifiquen les xarxes. - "**sortida**" pot sortir a **Internet** independentment: ``` isard@equip11:~$ ip r s default default via 192.168.120.1 dev sortida proto dhcp metric 102 isard@equip11:~$ ping -c 1 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=120 time=0.916 ms ``` Es comprova que els dispositius són **gestionats pel NetworkManager** excepte "**cirvianum1**" i "**cirvianum2**": ``` isard@equip11:~$ sudo nmcli device DEVICE TYPE STATE CONNECTION sortida ethernet connectat sortida cirvianum5 ethernet connectat cirvianum5 personal ethernet connectat personal vpn ethernet connectat vpn cirvianum3 ethernet connectat cirvianum3 cirvianum4 ethernet connectat cirvianum4 cirvianum1 ethernet sense gestió -- cirvianum2 ethernet sense gestió -- lo loopback sense gestió -- ``` El pas final amb aquest escriptori és **crear una plantilla** i així no haver de configurar les diferents xarxes per futures pràctiques. ### Pràctica amb dos escriptoris Es creen els escriptoris **equip1_8xarxes** i **equip2_8xarxes** en base a la **mateixa plantilla** creada al pas anterior i s'arrenquen juntament amb un escriptori que farà de **servidor DHCP**: ![](https://i.imgur.com/Z8TDhgC.png) - Des de l'**equip2** es pot fer ping a la "**Personal**" de l'**equip1**: ``` isard@equip2:~$ ping -c 1 172.18.0.101 PING 172.18.0.101 (172.18.0.101) 56(84) bytes of data. 64 bytes from 172.18.0.101: icmp_seq=1 ttl=64 time=0.038 ms ``` - Es pot accedir a la targeta "**cirvanium5**" de l'**equip1** amb una IP dinàmica: ``` isard@equip2:~$ ip a s cirvianum5 7: cirvianum5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:0c:ed:38 brd ff:ff:ff:ff:ff:ff altname enp6s0 inet 192.168.220.109/23 brd 192.168.221.255 scope global dynamic noprefixroute cirvianum5 valid_lft 6844sec preferred_lft 6844sec inet6 fe80::fb30:446:f480:f5fd/64 scope link noprefixroute valid_lft forever preferred_lft forever isard@equip2:~$ ping -c 1 192.168.220.108 PING 192.168.220.108 (192.168.220.108) 56(84) bytes of data. 64 bytes from 192.168.220.108: icmp_seq=1 ttl=64 time=13.1 ms ``` - Es pot configurar una direcció IP **fixa** a "**cirvianum3**" de l'**equip1** mitjançant **entorn gràfic**, per exemple l’adreça 192.168.11.101/24: ![](https://i.imgur.com/xxqdDlg.png) - Es fa el mateix a l’**equip2** amb la interfície **nmtui**: ``` sudo nmtui ``` ![](https://i.imgur.com/CYTWdoZ.png) ![](https://i.imgur.com/Gi7dOkj.png) ![](https://i.imgur.com/biS9KYy.png) ![](https://i.imgur.com/UY5cYtd.png) ``` isard@equip2:~$ ip a s cirvianum3 5: cirvianum3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:44:94:bb brd ff:ff:ff:ff:ff:ff altname enp4s0 inet 192.168.11.102/24 brd 192.168.11.255 scope global noprefixroute cirvianum3 valid_lft forever preferred_lft forever isard@equip2:~$ ping -c 1 192.168.11.101 PING 192.168.11.101 (192.168.11.101) 56(84) bytes of data. 64 bytes from 192.168.11.101: icmp_seq=1 ttl=64 time=11.0 ms ``` - Finalment, les xarxes **cirvianum1** i **cirvianum2** estan fora del control del NetworkManager i han arrencat ***down***, com es veu aquí amb **cirvanium1**: ``` isard@equip2:~$ ip link show cirvianum1 3: cirvianum1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 52:54:00:61:ff:bd brd ff:ff:ff:ff:ff:ff altname enp2s0 ``` S'activen **manualment** i configuren amb el terminal sense interferències amb el servei de NetworkManager. S'**aixequen** i configuren dues adreces IP corresponents per a cada interfície, de **diferents families i classes**, i s'efectua la comunicació: ``` isard@equip1:~$ sudo ip link set cirvianum1 up isard@equip1:~$ sudo ip a a 192.168.21.101/24 dev cirvianum1 isard@equip1:~$ sudo ip a a 172.19.0.101/16 dev cirvianum1 isard@equip1:~$ ip a s cirvianum1 3: cirvianum1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:7b:79:ee brd ff:ff:ff:ff:ff:ff altname enp2s0 inet 192.168.21.101/24 scope global cirvianum1 valid_lft forever preferred_lft forever inet6 fe80::5054:ff:fe7b:79ee/64 scope link valid_lft forever preferred_lft forever ``` ``` isard@equip2:~$ sudo ip link set cirvianum1 up isard@equip2:~$ sudo ip a a 192.168.21.102/24 dev cirvianum1 isard@equip2:~$ sudo ip a a 172.19.0.102/16 dev cirvianum1 isard@equip2:~$ ip a s cirvianum1 3: cirvianum1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:61:ff:bd brd ff:ff:ff:ff:ff:ff altname enp2s0 inet 192.168.21.102/24 scope global cirvianum1 valid_lft forever preferred_lft forever inet6 fe80::5054:ff:fe61:ffbd/64 scope link valid_lft forever preferred_lft forever isard@equip2:~$ ping -c 1 192.168.21.101 PING 192.168.21.101 (192.168.21.101) 56(84) bytes of data. 64 bytes from 192.168.21.101: icmp_seq=1 ttl=64 time=11.1 ms isard@equip2:~$ ping -c 1 172.19.0.101 PING 172.19.0.101 (172.19.0.101) 56(84) bytes of data. 64 bytes from 172.19.0.101: icmp_seq=1 ttl=64 time=0.263 ms isard@equip2:~$ sudo ip address flush dev cirvianum1 isard@equip2:~$ ip a s cirvianum1 3: cirvianum1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:61:ff:bd brd ff:ff:ff:ff:ff:ff altname enp2s0 ```