Beispiel #1
0
    def setUpClass(cls):
        gobgp_ctn_image_name = parser_option.gobgp_image
        base.TEST_PREFIX = parser_option.test_prefix

        # preparing the container for ipv4
        g1_v4 = GoBGPContainer(name='g1_v4', asn=65000, router_id='192.168.0.1',
                               ctn_image_name=gobgp_ctn_image_name,
                               log_level=parser_option.gobgp_log_level,
                               zebra=True)
        q1_v4 = QuaggaBGPContainer(name='q1_v4', asn=65001, router_id='192.168.0.2', zebra=True)
        o1_v4 = QuaggaBGPContainer(name='o1_v4', asn=65002, router_id='192.168.0.3')
        o2_v4 = QuaggaBGPContainer(name='o2_v4', asn=65002, router_id='192.168.0.4')

        # preparing the container for ipv6
        g1_v6 = GoBGPContainer(name='g1_v6', asn=65000, router_id='192.168.0.1',
                               ctn_image_name=gobgp_ctn_image_name,
                               log_level=parser_option.gobgp_log_level,
                               zebra=True)
        q1_v6 = QuaggaBGPContainer(name='q1_v6', asn=65001, router_id='192.168.0.2', zebra=True)
        o1_v6 = QuaggaBGPContainer(name='o1_v6', asn=65002, router_id='192.168.0.3')
        o2_v6 = QuaggaBGPContainer(name='o2_v6', asn=65002, router_id='192.168.0.4')

        # preparing the bridge for ipv4
        br01_v4 = Bridge(name='br01_v4', subnet='192.168.10.0/24')
        br02_v4 = Bridge(name='br02_v4', subnet='192.168.20.0/24')
        br03_v4 = Bridge(name='br03_v4', subnet='192.168.30.0/24')

        # preparing the bridge for ipv6
        br01_v6 = Bridge(name='br01_v6', subnet='2001:10::/32')
        br02_v6 = Bridge(name='br02_v6', subnet='2001:20::/32')
        br03_v6 = Bridge(name='br03_v6', subnet='2001:30::/32')

        cls.ctns = {
            'ipv4': [g1_v4, q1_v4, o1_v4, o2_v4],
            'ipv6': [g1_v6, q1_v6, o1_v6, o2_v6],
        }
        cls.gobgps = {
            'ipv4': g1_v4,
            'ipv6': g1_v6,
        }
        cls.quaggas = {
            'ipv4': q1_v4,
            'ipv6': q1_v6,
        }
        cls.others = {
            'ipv4': [o1_v4, o2_v4],
            'ipv6': [o1_v6, o2_v6],
        }
        cls.bridges = {
            'br01_v4': br01_v4,
            'br02_v4': br02_v4,
            'br03_v4': br03_v4,
            'br01_v6': br01_v6,
            'br02_v6': br02_v6,
            'br03_v6': br03_v6,
        }
    def setUpClass(cls):
        gobgp_ctn_image_name = parser_option.gobgp_image
        base.TEST_PREFIX = parser_option.test_prefix

        local("echo 'start %s'" % cls.__name__, capture=True)

        cls.r1 = GoBGPContainer(name='r1',
                                asn=65000,
                                router_id='192.168.0.1',
                                ctn_image_name=gobgp_ctn_image_name,
                                log_level=parser_option.gobgp_log_level,
                                zebra=False)

        cls.r2 = GoBGPContainer(name='r2',
                                asn=65000,
                                router_id='192.168.0.2',
                                ctn_image_name=gobgp_ctn_image_name,
                                log_level=parser_option.gobgp_log_level,
                                zebra=True,
                                zapi_version=3,
                                ospfd_config={
                                    'networks': {
                                        '192.168.23.0/24': '0.0.0.0',
                                        '192.168.24.0/24': '0.0.0.0',
                                    },
                                })

        cls.r3 = QuaggaOSPFContainer(name='r3',
                                     zebra_config={
                                         'interfaces': {
                                             'lo': [
                                                 'ip address 10.3.1.1/32',
                                             ],
                                         },
                                     },
                                     ospfd_config={
                                         'networks': {
                                             '10.3.1.1/32': '0.0.0.0',
                                             '192.168.23.0/24': '0.0.0.0',
                                             '192.168.34.0/24': '0.0.0.0',
                                         },
                                     })

        cls.r4 = QuaggaOSPFContainer(name='r4',
                                     ospfd_config={
                                         'networks': {
                                             '192.168.34.0/24': '0.0.0.0',
                                             '192.168.24.0/24': '0.0.0.0',
                                         },
                                     })

        wait_time = max(ctn.run() for ctn in [cls.r1, cls.r2, cls.r3, cls.r4])
        time.sleep(wait_time)

        cls.br_r1_r2 = Bridge(name='br_r1_r2', subnet='192.168.12.0/24')
        [cls.br_r1_r2.addif(ctn) for ctn in (cls.r1, cls.r2)]

        cls.br_r2_r3 = Bridge(name='br_r2_r3', subnet='192.168.23.0/24')
        [cls.br_r2_r3.addif(ctn) for ctn in (cls.r2, cls.r3)]

        cls.br_r2_r4 = Bridge(name='br_r2_r4', subnet='192.168.24.0/24')
        [cls.br_r2_r4.addif(ctn) for ctn in (cls.r2, cls.r4)]

        cls.br_r3_r4 = Bridge(name='br_r3_r4', subnet='192.168.34.0/24')
        [cls.br_r3_r4.addif(ctn) for ctn in (cls.r3, cls.r4)]