Allora il punto era questo.
Ho un server fisico supermegacarrozzato dove ci infilo le macchine virtuali che mi chiedono continuamente. L’ultima richiesta era fantastica:
Ci servono 2 virtual machines per comporre un cluster, e altre tre per comporre un altro cluster. Fai te, basta che ce le metti a disposizione.
Guardo gli ip address statici a disposizione e…mmm…mi sa che non bastano…o se bastano li finisco…e se li finisco poi sono cavoli. E poi come lo simuli per benino un cluster in questa maniera?
E allora l’ingegno, l’aiuto del fido xen e la potenza di Linux mi hanno risolto il problema.
Ho creato le cinque macchine virtuali, con indirizzi di rete interna in classe 192.168.1.0/24. Sulla macchina host ho aggiunto due indirizzi statici su due interfacce virtuali in eth0 (eth0:1 e eth0:2 per capirci) e sull’eth1 del server (interfaccia fisica si intende) ho messo un indirizzo della stessa sottoclasse delle vm.
Una volta startate, le virtuali erano in sottorete con la macchina host. Quindi un solo indirizzo ip statico settato fisicamente su una eth virtuale del server host, diventava una specie di Virtual-IP perfetto per i rispettivi nodi del rispettivo cluster. Fantastico.
A quel punto era necessario dare accesso ai ragazzi alle macchine virtuali…e come fare? Vabbè domanda scema e risposta semplice: un paio di dnat facevano al caso mio. Più o meno scrivendo questo per cluster a due nodi:
iptables -t nat -A PREROUTING -i eth0 -d XXX.XXX.XXX.XXX -p tcp -m tcp –dport 22 -j DNAT –to-destination 192.168.1.2
iptables -t nat -A PREROUTING -i eth0 -d XXX.XXX.XXX.XXX -p tcp -m tcp –dport 222 -j DNAT –to-destination 192.168.1.3
e questo per il cluster a tre nodi:
iptables -t nat -A PREROUTING -i eth0 -d YYY.YYY.YYY.YYY -p tcp -m tcp –dport 22 -j DNAT –to-destination 192.168.1.12
iptables -t nat -A PREROUTING -i eth0 -d YYY.YYY.YYY.YYY -p tcp -m tcp –dport 222 -j DNAT –to-destination 192.168.1.13
iptables -t nat -A PREROUTING -i eth0 -d YYY.YYY.YYY.YYY -p tcp -m tcp –dport 2222 -j DNAT –to-destination 192.168.1.14
Questo per portare l’accesso ssh sulle macchine di backend passando dai rispettivi ip statici ai nodi in rete “interna”, ovviamente dopo aver abilitato il listening dell’ssh anche sulle porte interessate dal destination nat.
Difficile? Ma no! semplicissimo e molto divertente!!!






















Related Articles
1 user responded in this post
Davvero interessante. Molto, interessante.
Complimenti.
Leave A Reply
Please Note: Comment moderation maybe active so there is no need to resubmit your comments