XenServer e pfSense: problemi di rete

da Giu 14, 2017Blog0 commenti

Tipicamente nell’ultimo periodo usiamo sempre KVM come ambiente di virtualizzazione, e come spesso capita installiamo il firewall (pfSense) come macchina virtuale. Purtroppo pfSense, o meglio FreeBSD in generale, ha problemi con la rete in ambienti virtualizzati.

La situazione tipica che si ha installando pfSense su XenServer è che:

  • la rete funziona perfettamente per tutti i client sulla LAN, incluse le connessioni locali verso le VM e dai client verso internet;
  • la macchina XenServer e le altre macchine virtuali riescono a fare ping verso l’esterno, ma praticamente tutte le connessioni TCP non funzionano, sia in ingresso che in uscita.

Essendo un bug conosciuto, e di lungo corso, negli ambienti KVM che usano i driver virtualizzati di pfSense è sufficiente selezionare la spunta Disable hardware checksum offload nelle impostazioni avanzate di rete di pfSense. 

Quindi  la soluzione è di disabilitare il checksum hardware, ma siccome in XenServer pfSense non usa i driver virtualizzati la modifica va fatta sulla configurazione dell’interfaccia di rete sull’host.

Colleghiamoci in ssh alla macchina XenServer, ed elenchiamo le interfacce di rete della VM di pfSense con questo comando (sostituendo VM_NAME con il nome della VM del firewall):

xe vm-vif-list vm=VM_NAME

Otterremo un output simile a questo:

uuid ( RO) : a59019a2-0278-fa51-982c-eb7cab437147 vm-name-label ( RO): pfSense device ( RO): 0 MAC ( RO): ca:44:7f:6a:ad:6b network-uuid ( RO): 84bbfaa4-1872-2595-0996-40fa61421daf network-name-label ( RO): Pool-wide network associated with eth0  uuid ( RO) : 6f04ec4f-50fa-063e-ed7a-b45216fe8b61 vm-name-label ( RO): pfSense device ( RO): 1 MAC ( RO): 9e:70:64:7e:46:1e network-uuid ( RO): 7e08ae46-86ed-8c90-7e5c-54eb7a35b3cc network-name-label ( RO): Pool-wide network associated with eth1

Identifichiamo l’interfaccia LAN di pfSense (tipicamente eth0) e ricordiamoci il campo uuid. Nell’esempio sopra è quello che inizia con a5901. A questo punto eseguiamo questi due comandi (sostituendo VIFUUID con l’uuid ottenuto sopra):

xe vif-param-set uuid=VIFUUID other-config:ethtool-tx="off" xe vif-param-set uuid=VIFUUID other-config:ethtool-rx="off"

A questo punto occorre spegnere ed accendere la VM di pfSense. È importante fare questa procedura, perché un riavvio non è sufficiente!

Fatto! Ora la rete dovrebbe funzionare correttamente.

Per altre informazioni visitate la sezione del nostro blog.

CREATE YOUR PROJECT

Book a free consultation

Your business is constantly evolving. Tell us about the project you have in mind, whether it's an e-commerce website or a strategic business solution.