Stati c Маршрутизация в Python сети - PullRequest
0 голосов
/ 06 апреля 2020

Я использую python и API min inet для создания сети, каждый хост и маршрутизатор должны иметь записи таблицы переадресации для обеспечения связи между всеми узлами, эти записи должны быть настроены с использованием stati c маршруты. Как мне добавить сюда stati c маршруты между маршрутизаторами для этой сети?

Вот схема сети: enter image description here

    info( '*** Add routers\n')
    r1 = net.addHost('r1', cls=Node, ip='0.0.0.0')
    r1.cmd('sysctl -w net.ipv4.ip_forward=1')
    r2 = net.addHost('r2', cls=Node, ip='0.0.0.0')
    r2.cmd('sysctl -w net.ipv4.ip_forward=1')
    r3 = net.addHost('r3', cls=Node, ip='0.0.0.0')
    r3.cmd('sysctl -w net.ipv4.ip_forward=1')

    # Add hosts
    info( '*** Add hosts\n')
    h1 = net.addHost('h1', cls=Host, ip='10.0.1.1/24', defaultRoute='via 10.1.1.3')
    h2 = net.addHost('h2', cls=Host, ip='10.0.2.1/24', defaultRoute='via 10.1.2.6')
    h3 = net.addHost('h3', cls=Host, ip='10.0.3.1/24', defaultRoute='via 10.1.3.27')

    # Add Links
    info( '*** Add links\n')
    net.addLink(h1, r1)
    net.addLink(h2, r2)
    net.addLink(h3, r3)
    net.addLink(r1, r2)
    net.addLink(r1, r3)
    net.addLink(r2, r3)

    # Start the network
    info( '*** Starting network\n')
    net.build()
    info( '*** Starting controllers\n')
    for controller in net.controllers:
        controller.start()

    # Set IP addresses on router interfaces
    r1.cmd('ifconfig r1-eth0 inet 10.1.1.3 netmask 255.255.255.0')
    r1.cmd('ifconfig r1-eth1 inet 10.1.7.2 netmask 255.255.255.0')
    r1.cmd('ifconfig r1-eth2 inet 10.1.9.2 netmask 255.255.255.0')


    r2.cmd('ifconfig r2-eth0 inet 10.1.3.27 netmask 255.255.255.0')
    r2.cmd('ifconfig r2-eth1 inet 10.1.7.1 netmask 255.255.255.0')
    r2.cmd('ifconfig r2-eth2 inet 10.1.8.2 netmask 255.255.255.0')

    r3.cmd('ifconfig r3-eth0 inet 10.1.2.6 netmask 255.255.255.0')
    r3.cmd('ifconfig r3-eth1 inet 10.1.9.1 netmask 255.255.255.0')
    r3.cmd('ifconfig r3-eth2 inet 10.1.9.2 netmask 255.255.255.0')

    # Add static routes:#
##################################################################
...