Je souhaite exécuter des instances de Quagga sur chacun de mes hôtes dans un paramètre Mininet. Comme implémenté dans le code ci-dessous, je peux monter /tmp/<host>/etc/quagga
comme /etc/quagga
pour chaque hôte, en isolant les fichiers de configuration dans le répertoire par hôte (répertoires privés). Mais quand je démarre le service Quagga dans chaque hôte (dernières lignes dans le fichier ipconf
ci-dessous), ils partagent tous le même numéro PID, créant effectivement le même processus pour chacun d'eux, bien que chacun ait son propre fichier de configuration Quagga.Hôtes avec un espace PID distinct pour les processus dans Mininet
Je veux avoir des instances Quagga séparées, chacune avec son propre PID. Comment puis-je atteindre cet objectif?
fichier de topologie personnalisée my_topo.py
:
from mininet.topo import Topo
class my_topo(Topo):
"My custom topology settings"
def __init__(self, enable_all=True):
"Create custom topo."
Topo.__init__(self)
private_dirs = [("/etc/quagga", "/tmp/%(name)s/etc/quagga")]
h1 = self.addHost("h1",
ip="172.31.1.100/24",
privateDirs=private_dirs)
h2 = self.addHost("h2",
ip="172.31.2.100/24",
privateDirs=private_dirs)
h3 = self.addHost("h3",
ip="172.31.3.100/24",
privateDirs=private_dirs)
h4 = self.addHost("h4",
ip="172.31.4.100/24",
privateDirs=private_dirs)
h5 = self.addHost("h5",
ip="172.32.1.2/30",
privateDirs=private_dirs)
sA = self.addSwitch("s5")
sB = self.addSwitch("s6")
sC = self.addSwitch("s7")
sD = self.addSwitch("s8")
self.addLink(h1, sA)
self.addLink(h2, sB)
self.addLink(h3, sC)
self.addLink(h4, sD)
self.addLink(sA, sB)
self.addLink(sB, sD)
self.addLink(sD, sC)
self.addLink(sC, sA)
self.addLink(sA, sD)
self.addLink(h2, h5, 1, 0)
self.addLink(h4, h5, 1, 1)
topos = { "my_topo": (lambda: my_topo()) }
fichier de commandes de ipconf
:
h1 /etc/init.d/quagga restart
h2 /etc/init.d/quagga restart
h3 /etc/init.d/quagga restart
h4 /etc/init.d/quagga restart
h5 /etc/init.d/quagga restart
Commande à exécuter MININET:
sudo mn --custom mininet/custom/my_topo.py --topo=my_topo --controller=remote,ip=192.168.56.101,port=6633 --pre=ipconf