diff options
Diffstat (limited to 'fap')
25 files changed, 3285 insertions, 0 deletions
diff --git a/fap/README.md b/fap/README.md new file mode 100755 index 0000000..c8278f5 --- /dev/null +++ b/fap/README.md @@ -0,0 +1,37 @@ +# FAP - Fast and Agile Provisioning + +Tools (DHCP daemon + HTTP daemon + DB) for managing provisioning towards a large number of factory default Juniper switches (EX2200) using ZTP (Zero Touch Protocol) over DHCP relays. + +The project is built with Python (>3.4.0) and PostgreSQL (>9.3.5). + +Licensed under the GNU GPL, version 2. See the included COPYING file. + + + +## Usage +Launch the python scripts for fap from tgmanage directory. + +    apt-get install apache2 php5 python3 python3-psycopg2 php5-pgsql +    a2enmod cgi +    a2enmod rewrite +     + + +### HTTPD +    j@lappie:~/git/tgmanage$ sudo python3 fap/httpd/server_http.py +     +Example: <a href="httpd/terminal.log">httpd/terminal.log</a> + + +### DHCPD +    j@lappie:~/git/tgmanage$ sudo python3 fap/dhcpd/server_dhcp.py +     +Example: <a href="dhcpd/terminal.log">dhcpd/terminal.log</a> + + +# TODO +* DONE: Support for IPv6 management +* Process multiple HTTP request simultaneously +* Support for only pushing JunOS image to switch - no config (for backup switches) +* Try/catch on whole ethernet frame in DHCPD +* Timestamps on each line in log both from DHCPD and HTTPD diff --git a/fap/database/README.md b/fap/database/README.md new file mode 100755 index 0000000..3d014d3 --- /dev/null +++ b/fap/database/README.md @@ -0,0 +1,63 @@ +# Database layout + +PostgreSQL + +**Tables** +``` +bootstrap-> \dt +           List of relations + Schema |   Name   | Type  |   Owner    +--------+----------+-------+----------- + public | switches | table | bootstrap +``` + + +**Table structure** +``` +fap=> \d switches +                                      Table "public.switches" +      Column       |          Type          |                       Modifiers                        +-------------------+------------------------+------------------------------------------------------- + id                | integer                | not null default nextval('switches_id_seq'::regclass) + hostname          | character varying(20)  |  + distro_name       | character varying(100) |  + distro_phy_port   | character varying(100) |  + mgmt_v4_addr      | character varying(15)  |  + mgmt_v4_cidr      | smallint               |  + mgmt_v4_gw        | character varying(15)  |  + mgmt_v6_cidr      | smallint               |  + mgmt_v6_addr      | character varying(35)  |  + mgmt_v6_gw        | character varying(35)  |  + mgmt_vlan         | smallint               |  + last_config_fetch | integer                |  + current_mac       | character varying(17)  |  + model             | character varying(20)  |  + traffic_vlan      | integer                |  +``` + + +**Sample content in DB** +``` +fap=> select * from switches where [...] order by id desc; + id  |      hostname      |  distro_name   | distro_phy_port |  mgmt_v4_addr   | mgmt_v4_cidr |   mgmt_v4_gw    | mgmt_v6_cidr |    mgmt_v6_addr     |    mgmt_v6_gw     | mgmt_vlan | last_config_fetch |    current_mac    | model | traffic_vlan  +-----+--------------------+----------------+-----------------+-----------------+--------------+-----------------+--------------+---------------------+-------------------+-----------+-------------------+-------------------+-------+-------------- + 447 | sw1-crew           | rs1.crew       | ge-0/0/39       | 151.216.183.66  |           27 | 151.216.183.65  |           64 | 2a02:ed02:1832::66  | 2a02:ed02:1832::1 |       666 |                   | 44:f4:77:69:4d:41 |       |         1701 + 442 | sw2-gamestudio     | rs1.north      | ge-0/0/45       | 151.216.183.230 |           27 | 151.216.183.225 |           64 | 2a02:ed02:1837::230 | 2a02:ed02:1837::1 |       666 |                   | 44:f4:77:69:5d:41 |       |          229 + 435 | sw1-south          | rs1.south      | ge-0/0/45       | 151.216.183.98  |           27 | 151.216.183.97  |           64 | 2a02:ed02:1836::98  | 2a02:ed02:1836::1 |       666 |                   | 44:f4:77:69:49:81 |       |          234 + 434 | sw8-creativia      | rs1.distro6    | ge-0/0/25       | 151.216.181.155 |           26 | 151.216.181.129 |           64 | 2a02:ed02:181c::155 | 2a02:ed02:181c::1 |       666 |                   | 44:f4:77:69:1a:c1 |       |         2008 + 420 | e83-1              | rs1.distro7    | ge-0/0/20       | 151.216.181.214 |           26 | 151.216.181.193 |           64 | 2a02:ed02:181d::214 | 2a02:ed02:181d::1 |       666 |                   | 44:f4:77:69:53:c1 |       |         1831 + 419 | e81-2              | rs1.distro7    | ge-0/0/19       | 151.216.181.213 |           26 | 151.216.181.193 |           64 | 2a02:ed02:181d::213 | 2a02:ed02:181d::1 |       666 |                   | 44:f4:77:69:4b:81 |       |         1812 + 418 | e81-1              | rs1.distro7    | ge-0/0/18       | 151.216.181.212 |           26 | 151.216.181.193 |           64 | 2a02:ed02:181d::212 | 2a02:ed02:181d::1 |       666 |                   | 44:f4:77:68:eb:c1 |       |         1811 + 417 | e79-4              | rs1.distro6    | ge-0/0/17       | 151.216.181.147 |           26 | 151.216.181.129 |           64 | 2a02:ed02:181c::147 | 2a02:ed02:181c::1 |       666 |                   | 44:f4:77:69:02:c1 |       |         1794 +``` + + +**Connect to DB from CLI** +``` +j@lappie:~/git/tgmanage$ psql -U bootstrap -d bootstrap -W +Password for user bootstrap:  +psql (9.3.5) +Type "help" for help. + +bootstrap=>  +``` diff --git a/fap/dhcpd/DHCP_protocol_breakdown.txt b/fap/dhcpd/DHCP_protocol_breakdown.txt new file mode 100755 index 0000000..5af2bf2 --- /dev/null +++ b/fap/dhcpd/DHCP_protocol_breakdown.txt @@ -0,0 +1,18 @@ +Length of DHCP fields in octets, and their placement in packet. +Ref: http://4.bp.blogspot.com/-IyYoFjAC4l8/UXuo16a3sII/AAAAAAAAAXQ/b6BojbYXoXg/s1600/DHCPTitle.JPG +0  OP - 1 +1  HTYPE - 1 +2  HLEN - 1 +3  HOPS - 1 +4  XID - 4 +5  SECS - 2 +6  FLAGS - 2 +7  CIADDR - 4 +8  YIADDR - 4 +9  SIADDR - 4 +10 GIADDR - 4 +11 CHADDR - 6 +12 MAGIC COOKIE - 10 +13 PADDING - 192 octets of 0's +14 MAGIC COOKIE - 4 +15 OPTIONS - variable length diff --git a/fap/dhcpd/module_craft_option.py b/fap/dhcpd/module_craft_option.py new file mode 100755 index 0000000..35e7328 --- /dev/null +++ b/fap/dhcpd/module_craft_option.py @@ -0,0 +1,79 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +''' +    Created by Jonas 'j' Lindstad for The Gathering 2015 +    License: GPLv3 +     +    Class used to craft byte hex encoded DHCP options +     +    NB: No direct support for suboptions. Should be possible to craft suboptions as +    options, and inject them with craft_option(<option>).raw_hes(<conconcatenated options>) +     +    Usage examples: +    craft_option.debug = True +    print(craft_option(1).string('vg.no')) +    print(craft_option(2).bytes(b'abcd')) +    print(craft_option(3).bytes(socket.inet_aton('192.168.0.55'))) +    print(craft_option(4).bytes(b'\xde\xad\xbe\xef\xfe\xed')) +    print(craft_option(5).raw_hex(b'\x72\x78')) +    print(craft_option(6).ip('255.255.128.0')) +''' + +from binascii import hexlify, unhexlify + +class craft_option(object): +    # content = b'' # content will be stored as hex values like hex(10) + hex(255) =  0aff +    debug = False +    def __init__(self, code): +        self.code = self.__int_to_pad_byte(code) + +    # Works as intended +    # internal function. Converts int(3) to str('03'), int('11') to str('0b'), int(255) to str('ff') +    def __int_to_pad_byte(self, integer): +        return hex(integer).split('x')[1].rjust(2, '0').encode() + +    # Works as intended +    def string(self, string): +        self.method = 'string' +        self.content = hexlify(string.encode()) +        return self.process() + +    # Works as intended +    def bytes(self, bytes): +        self.method = 'bytes' +        self.content = hexlify(bytes) +        return self.process() +         +    # Works as intended +    # str('10.20.30.40') to b'\x10\x20\x30\x40' +    def ip(self, ip): +        self.method = 'ip' +        self.content = ''.join([hex(int(i))[2:].rjust(2, '0') for i in ip.split('.')]).encode() +        return self.process() + +    # Works as intended +    # string like '\x72\x78' for 'rx' +    def raw_hex(self, raw_hex): +        self.method = 'raw_hex' +        self.content = hexlify(raw_hex) +        return self.process() + + + +    # TODO Does not work as intended +    # int(666) to b'\x02\x9A' +    def integer(self, integer): +        self.method = 'integer' +        self.content = ''.join([hex(int(i))[2:].rjust(2, '0') for i in ip.split('.')]) +        return self.process() +         +    def process(self): +        length = self.__int_to_pad_byte(len(unhexlify(self.content))) +        if self.debug is True: +            print('----------') +            print(self.method + '():') +            print(self.code + length) +            print(b'content: ' + self.content) +            print(unhexlify(self.content)) +        return unhexlify(self.code + length + self.content) diff --git a/fap/dhcpd/module_lease.py b/fap/dhcpd/module_lease.py new file mode 100755 index 0000000..0473579 --- /dev/null +++ b/fap/dhcpd/module_lease.py @@ -0,0 +1,174 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +''' +    Created by Jonas 'j' Lindstad for The Gathering 2015 +    License: GPLv3 +     +    Class used to fetch data from the Postgres DB +     +    Usage examples: +    lease.debug = True +    x = lease({'distro_name': 'distro-test', 'distro_phy_port': 'ge-0/0/6'}).get_dict() +    print('key lookup - hostname: %s' % x['hostname']) +''' + +import psycopg2 +import psycopg2.extras + +# settings +settings = dict( +    db = dict( +	    user = 'fap', +	    password = '<sensored>', +	    dbname = 'fap', +	    host = 'localhost' +    ) +) + +# connect to Postgres DB +connect_params = ("dbname='%s' user='%s' host='%s' password='%s'" % (settings['db']['dbname'], settings['db']['user'], settings['db']['host'], settings['db']['password'])) +conn = psycopg2.connect(connect_params) +cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor) + +class lease(object): +    debug = False + +    def __init__(self, identifiers): +        if len(identifiers) > 0: # 1 or more identifiers - we're good to go +             +            # build query string +            where_pieces = [] +            for x in identifiers.items(): +                where_pieces.append(str(x[0]) + " = '" + str(x[1]) + "'") +            where = ' AND '.join(where_pieces) +            select = "SELECT * FROM switches WHERE " + where + " LIMIT 1" +             +            if self.debug is True: +                print('Executing query: ' + select) +             +            cur.execute(select) +             +            rows = cur.fetchall() +            if len(rows) is 1: +                if self.debug is True: +                    print('returned from DB:') +                    for key, value in rows[0].items(): +                        print('%s: %s' % (key, value)) +                     +                self.row = rows[0] +            else: +                self.row = False +        else: +            print('Missing identifier parameter') +            exit() +         +    def get_ip(self): +        if self.row is not False: +            return self.row['ip'] +        else: +            print('identifiers (%s) not found' % self.row) +            return False +             +    def get_config(self): +        if self.row is not False: +            return self.row['config'] +        else: +            print('identifiers (%s) not found' % self.row) +            return False +             +    def get_dict(self): +        if self.row is not False: +            return self.row +        else: +            print('identifiers (%s) not found' % self.row) +            return False + + +# +# TESTING - Bruker ID fra DB-en som identifier, og kjører en query per lease.get_x() +# +class lease2(object): +    debug = False +    hostname = False +    identifiers = False +     +    # identifiers = dict of field/values +    def __init__(self, identifiers): +        cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor) +     +        if len(identifiers) > 0: # 1 or more identifiers - we're good to go +            self.identifiers = identifiers # Used to debug if no match for the identifiers is given +             +            # build query string +            where_pieces = [] +            for identifier in identifiers.items(): +                where_pieces.append(str(identifier[0]) + " = '" + str(identifier[1]) + "'") +            where = ' AND '.join(where_pieces) +            select = "SELECT hostname FROM switches WHERE " + where + " LIMIT 1" +             +            if self.debug is True: +                print('Executing query: ' + select) +             +            cur.execute(select) +            rows = cur.fetchall() +            cur.close() +            if len(rows) is 1: +                if self.debug is True: +                    print('returned from DB:') +                    print(rows[0][0]) +                self.hostname = rows[0][0] +            else: +                self.hostname = False +        else: +            print('Missing identifier parameter') +            exit() +             +    # Used to fetch fields from DB +    def get(self, field): +        if self.hostname is not False: +            cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor) +         +            query = "SELECT %s FROM switches WHERE hostname = '%s' LIMIT 1" % (field, self.hostname) +            if self.debug is True: +                print('Query: %s' % query) +             +            try: +                cur.execute(query) +                rows = cur.fetchall() +                 +                if len(rows) is 1: +                    if self.debug is True: +                        print('returned from DB:') +                        print(rows[0][0]) +                    return rows[0][0] +                else: +                    if self.debug is True: +                        print('No data found - field: %s' % field) +                    return False +            except psycopg2.ProgrammingError: +                print('Field (%s) not found' % field) +                conn.rollback() # Prevents DB from locking up the next queries - http://initd.org/psycopg/docs/connection.html#connection.rollback +                return False +        else: +            print('identifiers (%s) not found' % self.identifiers) +            return False +             +    # Used to set fields in DB +    def set(self, field, value): +        if self.hostname is not False: +            cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor) +            query = "UPDATE switches SET %s = '%s' WHERE hostname = '%s'" % (field, value, self.hostname) +            if self.debug is True: +                print('Query: %s' % query) +            try: +                cur.execute(query) +                conn.commit() +                return True +            except psycopg2.ProgrammingError: +                print('Field (%s) not found' % field) +                conn.rollback() +                return False +        else: +            print('identifiers (%s) not found' % self.identifiers) +            return False diff --git a/fap/dhcpd/server_dhcp.py b/fap/dhcpd/server_dhcp.py new file mode 100755 index 0000000..592e1eb --- /dev/null +++ b/fap/dhcpd/server_dhcp.py @@ -0,0 +1,360 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +''' +server_dhcp.py by Jonas "j" Lindstad for The Gathering tech:server + +Used to configure the Juniper EX2200 edge switches with Zero Touch Protocol +License: GPLv2 + +Based on the work of psychomario - https://github.com/psychomario +''' + + +''' + +TODO + + * try/catch around each incomming packet - prevents DHCP-server from crashing if it receives a malformed packet +  +''' + +import socket, binascii, IN +from module_craft_option import craft_option # Module that crafts DHCP options +# from module_lease import lease # Module that fetches data from DB and provides data for the lease +from module_lease import lease2 as lease # Module that fetches data from DB and provides data for the lease + + +# Global options - not a pretty hack +options_raw = {} # TODO - not a nice way to do things +option_82_1 = '' +client = '' + + +############# +# FUNCTIONS # +############# + +# Generator for each of the dhcp fields +def split_packet(msg,slices):  +    for x in slices: +        yield msg[:x] +        msg = msg[x:] + +# Splits a chunk of hex into a list of hex. (0123456789abcdef => ['01', '23', '45', '67', '89', 'ab', 'cd', 'ef']) +def chunk_hex(hex): +    return [hex[i:i+2] for i in range(0, len(hex), 2)] + +# Convert hex IP to string with formated decimal IP. (0a0000ff => 10.0.0.255) +def hex_ip_to_str(hex_ip): +    return '.'.join(str(y) for y in map(lambda x: int(x, 16), chunk_hex(hex_ip))) # cast int to str for join + +# formats a MAC address in the format "b827eb9a520f" to "b8:27:eb:9a:52:0f" +def format_hex_mac(hex_mac): +    return ':'.join(str(x) for x in chunk_hex(hex_mac)) + +# Formats a 6 byte MAC to a readable string (b'5e\x21\x00r3' => '35:65:21:00:72:33') +def six_byte_mac_to_str(mac): +    return ':'.join('%02x' % byte for byte in mac) + +# b'b827eb9a520f' => 'b8:27:eb:9a:52:0f' +def prettyprint_hex_as_str(hex): +    return ':'.join('%02x' % byte for byte in binascii.unhexlify(hex)) + +# CIDR notation to subnet string ('25' => '255.255.255.128') +def cidr_to_subnet(cidr): +    mask = [0, 0, 0, 0] +    for i in range(int(cidr)): +        mask[i//8] = mask[i//8] + (1 << (7 - i % 8)) +    return '.'.join(str(x) for x in mask) + +# Parses DHCP options - raw = hex options +def parse_options(raw): +    print('[%s] --> processing DHCP options' % client) +    chunked = chunk_hex(raw) +    chunked_length = len(chunked) +    pointer = 0 # counter - next option start +    options = {} # options dataset +     +    global options_raw  +    options_raw = {} # incomming request's options +    special_options = [53, 82] + +    while True: # Loop over the DHCP options +        option = int(chunked[pointer], 16) # option ID (0 => 255) +        code = int(chunked[pointer], 16) # option code (0 => 255) # New int for options' ID with correct name. Replaces $option +         +        length = int(chunked[pointer+1], 16) # option length +        option_payload = raw[((pointer+2)*2):((pointer+length+2)*2)] # Contains the payload of the option - without option ID and length +        options_raw[code] = option_payload # copying incomming request's options, directly usable in outgoing replies +         +        asciivalue = binascii.unhexlify(option_payload) # should not contain unreadable characters +         +        if option in special_options: +            if option is 82: +                option82_raw = option_payload +                options[option] = parse_suboptions(option, option_payload) +            elif option is 53: +                options[option] = option_payload +                # options[option] = 1 # Not adding DHCP DISCOVER to the options list, becouse it will not be used further on +                if int(chunked[pointer+2], 16) is 1: +                    print('[%s]     --> option: %s: %s' % (client, option, 'DHCP Discover (will not be used in reply)')) +                else: +                    print('[%s]     --> option: %s: %s' % (client, option, asciivalue)) + +        else: +            options[option] = asciivalue +            # TODO: Formating.... Also crap code +            try: +                if len(asciivalue) > 30: +                    print('[%s]     --> option: %s: %s' % (client, option, asciivalue[:26] + ' [...]')) +                else: +                    print('[%s]     --> option: %s: %s' % (client, option, asciivalue)) +            except Exception: +                if len(asciivalue) > 30: +                    print('[%s]     --> option: %s: %s' % (client, option, prettyprint_hex_as_str(option_payload)[:26] + ' [...]')) +                else: +                    print('[%s]     --> option: %s: %s' % (client, option, prettyprint_hex_as_str(option_payload))) +                pass + +        pointer = pointer + length + 2 # place pointer at the next options' option ID/code field +         +        if int(chunked[pointer], 16) is 255: # end of DHCP options - should allways last field +            print('[%s] --> Finished processing options' % client) +            break +    return options + +# Parses suboptions +def parse_suboptions(option, raw): +    print('[%s]     --> processing suboption hook for option %s' % (client, option)) +    chunked = chunk_hex(raw) +    chunked_length = len(chunked) +    pointer = 0 # counter - next option start +    dataset = {} +     +    if option is 82: # Option 82 - custom shit: Setting global variable to list +        global option_82_1 +         +    while True: +        length = int(chunked[pointer+1], 16) # option length in bytes +        value = raw[4:(length*2)+(4)] + +        if option is 82 and int(chunked[0], 16) is 1: # Option 82 - custom shit: Putting data in list +            option_82_1 = binascii.unhexlify(value).decode() + +        print('[%s]         --> suboption %s found - value: "%s"' % (client, int(chunked[0], 16), binascii.unhexlify(value).decode())) # will fail on non-ascii characters +         +        dataset[int(chunked[0], 16)] = value +        pointer = pointer + length + 2 # place pointer at the next options' option ID/code field +        if pointer not in chunked: # end of DHCP options - allways last field +            print('[%s]     --> Finished processing suboption %s' % (client, option)) +            break +    return dataset + +# Parses and handles DHCP DISCOVER or DHCP REQUEST +def reqparse(message): +    data=None +    dhcpfields=[1,1,1,1,4,2,2,4,4,4,4,6,10,192,4,message.rfind(b'\xff'),1] +    hexmessage=binascii.hexlify(message) +    messagesplit=[binascii.hexlify(x) for x in split_packet(message,dhcpfields)] +     +    global client +    client = prettyprint_hex_as_str(messagesplit[11]) +     +    if messagesplit[11][0:6] != b'44f477': +        print('[%s] Client not Juniper - exiting (GIADDR: %s)' % (client, hex_ip_to_str(messagesplit[10]))) +        return False +     +    print('[%s] Parsing DHCP packet from client' % client) + +    # +    # Logical checks to decide to whether respond or reject +    # +    if int(hex_ip_to_str(messagesplit[10]).replace('.', '')) is 0: # DHCP request has been forwarded by DHCP relay - A bit haxxy.. +        print('[%s] Rejecting to process DHCP packet - not forwarded by DHCP relay' % client) +        return False + + +    # Process DHCP options +    options = parse_options(messagesplit[15]) +         +    # Option 82 is set in the packet +    if 82 not in options: +        print('[%s] Rejecting to process DHCP packet - DHCP option 82 not set' % client) +        return False +     +    # 1 = DHCP Discover message (DHCPDiscover). +    # 2 = DHCP Offer message (DHCPOffer). +    # 3 = DHCP Request message (DHCPRequest). +    # 4 = DHCP Decline message (DHCPDecline). +    # 5 = DHCP Acknowledgment message (DHCPAck). +    # 6 = DHCP Negative Acknowledgment message (DHCPNak). +    # 7 = DHCP Release message (DHCPRelease). +    # 8 = DHCP Informational message (DHCPInform). + +    # Check DHCP request type +    if options[53] == b'01': +        mode = 'dhcp_discover' +        print('[%s] --> DHCP packet type: DHCP DISCOVER' % client) +    elif options[53] == b'03': +        mode = 'dhcp_request' +        print('[%s] --> DHCP packet type: DHCP REQUEST' % client) +    elif options[53] == b'04': +        print('[%s] --> DHCP packet type: DHCP DECLINE - Not implemented' % client) +        return False +    elif options[53] == b'05': +        print('[%s] --> DHCP packet type: DHCP ACK - Not implemented' % client) +        return False +    elif options[53] == b'06': +        print('[%s] --> DHCP packet type: DHCP NEGATIVE ACK - Not implemented' % client) +        return False +    elif options[53] == b'07': +        print('[%s] --> DHCP packet type: DHCP RELEASE - Not implemented' % client) +        return False +    elif options[53] == b'08': +        print('[%s] --> DHCP packet type: DHCP INFORM - Not implemented' % client) +        return False +    else: +        print('[%s] Rejecting to continue process DHCP packet - option 53 missing' % client) # Small sanity check +        return False +     +     +    # +    # Packet passes our requirements +    # +    print('[%s] --> DHCP packet contains option 82 - continues to process' % client) +    print('[%s] --> DHCP packet forwarded by relay %s' % (client, hex_ip_to_str(messagesplit[10]))) +    print('[%s] --> DHCP XID/Transaction ID: %s' % (client, prettyprint_hex_as_str(messagesplit[4]))) +     +    # Handle DB request - do DB lookup based on option 82 +    print('[%s] --> Looking up in the DB' % (client)) +     +    option_82_1_pieces = option_82_1.split(':') +     +    if len(option_82_1_pieces) == 3: +        (distro, phy, vlan) = option_82_1.split(':') +        print('[%s]     --> Query details: distro_name:%s, distro_phy_port:%s' % (client, distro, phy.split('.')[0])) +         +        lease_identifiers = {'distro_name': distro, 'distro_phy_port': phy.split('.')[0]} +        if lease(lease_identifiers).get('hostname') is not False: +            l={ +                'hostname': lease(lease_identifiers).get('hostname'), +                'mgmt_v4_addr': lease(lease_identifiers).get('mgmt_v4_addr'), +                'mgmt_v4_gw': lease(lease_identifiers).get('mgmt_v4_gw'), +                'mgmt_v4_cidr': lease(lease_identifiers).get('mgmt_v4_cidr') +            } +         +            # lease_details = lease({'distro_name': distro, 'distro_phy_port': phy[:-2]}).get_dict() +            print('[%s]     --> Data found, switch exists in DB - ready to craft response' % client) +        else: +            print('[%s]     --> Data not found, switch does not exists in DB' % client) +            return False +    elif len(option_82_1_pieces) > 0: +        print('[%s]     --> Option 82 does not contained required syntax (<distro>:<phy_port>:<vlan>)' % client) +        print('[%s]     --> Option 82: %s' % (client, option_82_1)) +        print('[%s] --> Ending request' % client) +        return False +    else: +        print('[%s] Rejecting to continue to process DHCP packet - option 82.1 is empty' % client) +     +    if mode == 'dhcp_discover': +        print('[%s] --> Crafting DHCP OFFER response' % client) +         +    if mode == 'dhcp_request': +        print('[%s] --> Crafting DHCP ACK response' % client) +         +    print('[%s]     --> XID/Transaction ID: %s' % (client, prettyprint_hex_as_str(messagesplit[4]))) +    print('[%s]     --> Client IP: %s' % (client, l['mgmt_v4_addr'])) +    print('[%s]     --> DHCP forwarder IP: %s' % (client, l['mgmt_v4_gw'])) +    print('[%s]     --> Client MAC: %s' % (client, client)) +     +    data = b'\x02' # Message type - boot reply +    data += b'\x01' # Hardware type - ethernet +    data += b'\x06' # Hardware address length - 6 octets for MAC +    data += b'\x01' # Hops +    data += binascii.unhexlify(messagesplit[4]) # XID / Transaction ID +    data += b'\x00\x00' # seconds elapsed - 1 second +    data += b'\x80\x00' # BOOTP flags - broadcast (unicast: 0x0000) +    data += b'\x00'*4 # Client IP address +    data += socket.inet_aton(l['mgmt_v4_addr']) # New IP to client +    data += socket.inet_aton(dhcp_server_address) # Next server IP address +    data += socket.inet_aton(l['mgmt_v4_gw']) # Relay agent IP - DHCP forwarder +    data += binascii.unhexlify(messagesplit[11]) # Client MAC +    data += b'\x00'*202 # Client hardware address padding (10) + Server hostname (64) + Boot file name (128) +    data += b'\x63\x82\x53\x63' # Magic cookie +     +    # +    # Craft DHCP options +    # +    print('[%s] --> Completed DHCP header structure, building DHCP options' % client) +     +    if mode == 'dhcp_discover': +        print('[%s]     --> Option 53  (DHCP OFFER): 2' % client) +        data += craft_option(53).raw_hex(b'\x02') # Option 53 - DHCP OFFER + +    if mode == 'dhcp_request': +        print('[%s]     --> Option 53  (DHCP ACK): 5' % client) +        data += craft_option(53).raw_hex(b'\x05') # Option 53 - DHCP ACK +     +    data += craft_option(54).bytes(socket.inet_aton(dhcp_server_address)) # Option 54 - DHCP server identifier +    print('[%s]     --> Option 54  (DHCP server identifier): %s' % (client, dhcp_server_address)) +     +    data += craft_option(51).raw_hex(b'\x00\x00\xa8\xc0') # Option 51 - Lease time left padded with "0" +    print('[%s]     --> Option 51  (Lease time): %s' % (client, '43200 (12 hours)')) +     +    data += craft_option(1).ip(cidr_to_subnet(l['mgmt_v4_cidr'])) # Option 1 - Subnet mask +    print('[%s]     --> Option 1   (subnet mask): %s' % (client, cidr_to_subnet(l['mgmt_v4_cidr']))) +     +    data += craft_option(3).ip(l['mgmt_v4_gw']) # Option 3 - Default gateway (set to DHCP forwarders IP) +    print('[%s]     --> Option 3   (default gateway): %s' % (client, l['mgmt_v4_gw'])) +     +    data += craft_option(150).bytes(socket.inet_aton(dhcp_server_address)) # Option 150 - TFTP Server. Used as target for the Zero Touch Protocol. Not necessarily TFTP protocol used. +    print('[%s]     --> Option 150 (Cisco proprietary TFTP server(s)): %s' % (client, dhcp_server_address)) +     +    # http://www.juniper.net/documentation/en_US/junos13.2/topics/concept/software-image-and-configuration-automatic-provisioning-understanding.html +    data += craft_option(43).bytes(craft_option(0).string(target_junos_file) + craft_option(1).string('/tg-edge/' + l['hostname']) + craft_option(3).string('http')) # Option 43 - ZTP +    print('[%s]     --> Option 43  (Vendor-specific option):' % client) +    print('[%s]         --> Suboption 0: %s' % (client, target_junos_file)) +    print('[%s]         --> Suboption 1: %s' % (client, '/tg-edge/' + l['hostname'])) +    print('[%s]         --> Suboption 3: %s' % (client, 'http')) + +    data += b'\xff' +     +    lease(lease_identifiers).set('current_mac', client) # updates MAC in DB +     +    return data + +if __name__ == "__main__": +    interface = b'eth0' +    dhcp_server_address = '185.12.59.11' +    target_junos_file = '/files/jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz' +     +    # Setting up the server, and how it will communicate     +    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # IPv4 UDP socket +    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) +    s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) +    s.setsockopt(socket.SOL_SOCKET, 25, interface) +    s.bind(('', 67)) + +    # Starting the whole loop +    print('Starting main loop') +    while True: #main loop +        try: +            message, addressf = s.recvfrom(8192) +            # print(message) +            if message.startswith(b'\x01'): # UDP payload is DHCP request (discover, request, release) +                if addressf[0] == '0.0.0.0': +                    # print('[%s] DHCP broadcast - unsupported' % client) +                    reply_to = '<broadcast>' +                else: +                    print('[%s] DHCP unicast - DHCP forwarding' % client) +                    reply_to = addressf[0] # senders (DHCP forwarders) IP +                    # print(addressf[0]) +                    # reply_to = '10.0.0.1' +                    data=reqparse(message) # Parse the DHCP request +                    if data: +                        print('[%s] --> replying to %s' % (client, reply_to)) +                        s.sendto(data, (reply_to, 67)) # Sends reply +                        print('') +        except KeyboardInterrupt: +            exit() diff --git a/fap/dhcpd/terminal.log b/fap/dhcpd/terminal.log new file mode 100755 index 0000000..e865bd4 --- /dev/null +++ b/fap/dhcpd/terminal.log @@ -0,0 +1,146 @@ +j@lappie:~/git/tgmanage$ sudo python3 fap/dhcpd/server_dhcp.py +Starting main loop +[] DHCP unicast - DHCP forwarding +[40:b4:f0:cc:76:01] Parsing DHCP packet from client +[40:b4:f0:cc:76:01] --> processing DHCP options +[40:b4:f0:cc:76:01]     --> option: 53: DHCP Discover (will not be used in reply) +[40:b4:f0:cc:76:01]     --> option: 12: b'GP0212466317' +[40:b4:f0:cc:76:01]     --> option: 60: 4a:75:6e:69:70:65:72:2d:65 [...] +[40:b4:f0:cc:76:01]     --> processing suboption hook for option 82 +[40:b4:f0:cc:76:01]         --> suboption 1 found - value: "distro0gw:ge-0/0/0.0:mgmt" +[40:b4:f0:cc:76:01]     --> Finished processing suboption 82 +[40:b4:f0:cc:76:01] --> Finished processing options +[40:b4:f0:cc:76:01] --> DHCP packet type: DHCP DISCOVER +[40:b4:f0:cc:76:01] --> DHCP packet contains option 82 - continues to process +[40:b4:f0:cc:76:01] --> DHCP packet forwarded by relay 10.0.200.1 +[40:b4:f0:cc:76:01] --> DHCP XID/Transaction ID: 75:45:e1:46 +[40:b4:f0:cc:76:01] --> Looking up in the DB +[40:b4:f0:cc:76:01]     --> Query details: distro_name:distro0gw, distro_phy_port:ge-0/0/0 +[40:b4:f0:cc:76:01]     --> Data found, switch exists in DB - ready to craft response +[40:b4:f0:cc:76:01] --> Crafting DHCP OFFER response +[40:b4:f0:cc:76:01]     --> XID/Transaction ID: 75:45:e1:46 +[40:b4:f0:cc:76:01]     --> Client IP: 10.0.200.101 +[40:b4:f0:cc:76:01]     --> DHCP forwarder IP: 10.0.200.1 +[40:b4:f0:cc:76:01]     --> Client MAC: 40:b4:f0:cc:76:01 +[40:b4:f0:cc:76:01] --> Completed DHCP header structure, building DHCP options +[40:b4:f0:cc:76:01]     --> Option 53  (DHCP OFFER): 2 +[40:b4:f0:cc:76:01]     --> Option 54  (DHCP server identifier): 10.0.100.2 +[40:b4:f0:cc:76:01]     --> Option 51  (Lease time): 43200 (12 hours) +[40:b4:f0:cc:76:01]     --> Option 1   (subnet mask): 255.255.255.0 +[40:b4:f0:cc:76:01]     --> Option 3   (default gateway): 10.0.200.1 +[40:b4:f0:cc:76:01]     --> Option 150 (Cisco proprietary TFTP server(s)): 10.0.100.2 +[40:b4:f0:cc:76:01]     --> Option 43  (Vendor-specific option): +[40:b4:f0:cc:76:01]         --> Suboption 0: /files/jinstall-ex-2200-12.3R6.6-domestic-signed.tgz +[40:b4:f0:cc:76:01]         --> Suboption 1: /tg-edge/e-00-1 +[40:b4:f0:cc:76:01]         --> Suboption 3: http +[40:b4:f0:cc:76:01] --> replying to 10.0.100.1 + +[40:b4:f0:cc:76:01] DHCP unicast - DHCP forwarding +[40:b4:f0:cc:76:01] Parsing DHCP packet from client +[40:b4:f0:cc:76:01] --> processing DHCP options +[40:b4:f0:cc:76:01]     --> option: 54: b'\n\x00d\x02' +[40:b4:f0:cc:76:01]     --> option: 55: b'\x033\x01\x0f\x06BC+\x96\x0c\x07*' +[40:b4:f0:cc:76:01]     --> option: 50: b'\n\x00\xc8e' +[40:b4:f0:cc:76:01]     --> option: 53: b'\x03' +[40:b4:f0:cc:76:01]     --> option: 12: b'GP0212466317' +[40:b4:f0:cc:76:01]     --> option: 60: 4a:75:6e:69:70:65:72:2d:65 [...] +[40:b4:f0:cc:76:01]     --> processing suboption hook for option 82 +[40:b4:f0:cc:76:01]         --> suboption 1 found - value: "distro0gw:ge-0/0/0.0:mgmt" +[40:b4:f0:cc:76:01]     --> Finished processing suboption 82 +[40:b4:f0:cc:76:01] --> Finished processing options +[40:b4:f0:cc:76:01] --> DHCP packet type: DHCP REQUEST +[40:b4:f0:cc:76:01] --> DHCP packet contains option 82 - continues to process +[40:b4:f0:cc:76:01] --> DHCP packet forwarded by relay 10.0.200.1 +[40:b4:f0:cc:76:01] --> DHCP XID/Transaction ID: 51:5f:00:7c +[40:b4:f0:cc:76:01] --> Looking up in the DB +[40:b4:f0:cc:76:01]     --> Query details: distro_name:distro0gw, distro_phy_port:ge-0/0/0 +[40:b4:f0:cc:76:01]     --> Data found, switch exists in DB - ready to craft response +[40:b4:f0:cc:76:01] --> Crafting DHCP ACK response +[40:b4:f0:cc:76:01]     --> XID/Transaction ID: 51:5f:00:7c +[40:b4:f0:cc:76:01]     --> Client IP: 10.0.200.101 +[40:b4:f0:cc:76:01]     --> DHCP forwarder IP: 10.0.200.1 +[40:b4:f0:cc:76:01]     --> Client MAC: 40:b4:f0:cc:76:01 +[40:b4:f0:cc:76:01] --> Completed DHCP header structure, building DHCP options +[40:b4:f0:cc:76:01]     --> Option 53  (DHCP ACK): 5 +[40:b4:f0:cc:76:01]     --> Option 54  (DHCP server identifier): 10.0.100.2 +[40:b4:f0:cc:76:01]     --> Option 51  (Lease time): 43200 (12 hours) +[40:b4:f0:cc:76:01]     --> Option 1   (subnet mask): 255.255.255.0 +[40:b4:f0:cc:76:01]     --> Option 3   (default gateway): 10.0.200.1 +[40:b4:f0:cc:76:01]     --> Option 150 (Cisco proprietary TFTP server(s)): 10.0.100.2 +[40:b4:f0:cc:76:01]     --> Option 43  (Vendor-specific option): +[40:b4:f0:cc:76:01]         --> Suboption 0: /files/jinstall-ex-2200-12.3R6.6-domestic-signed.tgz +[40:b4:f0:cc:76:01]         --> Suboption 1: /tg-edge/e-00-1 +[40:b4:f0:cc:76:01]         --> Suboption 3: http +[40:b4:f0:cc:76:01] --> replying to 10.0.100.1 + +[40:b4:f0:cc:76:01] DHCP unicast - DHCP forwarding +[40:b4:f0:cc:76:01] Parsing DHCP packet from client +[40:b4:f0:cc:76:01] --> processing DHCP options +[40:b4:f0:cc:76:01]     --> option: 53: DHCP Discover (will not be used in reply) +[40:b4:f0:cc:76:01]     --> option: 60: 4a:75:6e:69:70:65:72:2d:65 [...] +[40:b4:f0:cc:76:01]     --> processing suboption hook for option 82 +[40:b4:f0:cc:76:01]         --> suboption 1 found - value: "distro0gw:ge-0/0/0.0:mgmt" +[40:b4:f0:cc:76:01]     --> Finished processing suboption 82 +[40:b4:f0:cc:76:01] --> Finished processing options +[40:b4:f0:cc:76:01] --> DHCP packet type: DHCP DISCOVER +[40:b4:f0:cc:76:01] --> DHCP packet contains option 82 - continues to process +[40:b4:f0:cc:76:01] --> DHCP packet forwarded by relay 10.0.200.1 +[40:b4:f0:cc:76:01] --> DHCP XID/Transaction ID: 64:3c:98:69 +[40:b4:f0:cc:76:01] --> Looking up in the DB +[40:b4:f0:cc:76:01]     --> Query details: distro_name:distro0gw, distro_phy_port:ge-0/0/0 +[40:b4:f0:cc:76:01]     --> Data found, switch exists in DB - ready to craft response +[40:b4:f0:cc:76:01] --> Crafting DHCP OFFER response +[40:b4:f0:cc:76:01]     --> XID/Transaction ID: 64:3c:98:69 +[40:b4:f0:cc:76:01]     --> Client IP: 10.0.200.101 +[40:b4:f0:cc:76:01]     --> DHCP forwarder IP: 10.0.200.1 +[40:b4:f0:cc:76:01]     --> Client MAC: 40:b4:f0:cc:76:01 +[40:b4:f0:cc:76:01] --> Completed DHCP header structure, building DHCP options +[40:b4:f0:cc:76:01]     --> Option 53  (DHCP OFFER): 2 +[40:b4:f0:cc:76:01]     --> Option 54  (DHCP server identifier): 10.0.100.2 +[40:b4:f0:cc:76:01]     --> Option 51  (Lease time): 43200 (12 hours) +[40:b4:f0:cc:76:01]     --> Option 1   (subnet mask): 255.255.255.0 +[40:b4:f0:cc:76:01]     --> Option 3   (default gateway): 10.0.200.1 +[40:b4:f0:cc:76:01]     --> Option 150 (Cisco proprietary TFTP server(s)): 10.0.100.2 +[40:b4:f0:cc:76:01]     --> Option 43  (Vendor-specific option): +[40:b4:f0:cc:76:01]         --> Suboption 0: /files/jinstall-ex-2200-12.3R6.6-domestic-signed.tgz +[40:b4:f0:cc:76:01]         --> Suboption 1: /tg-edge/e-00-1 +[40:b4:f0:cc:76:01]         --> Suboption 3: http +[40:b4:f0:cc:76:01] --> replying to 10.0.100.1 + +[40:b4:f0:cc:76:01] DHCP unicast - DHCP forwarding +[40:b4:f0:cc:76:01] Parsing DHCP packet from client +[40:b4:f0:cc:76:01] --> processing DHCP options +[40:b4:f0:cc:76:01]     --> option: 54: b'\n\x00d\x02' +[40:b4:f0:cc:76:01]     --> option: 55: b'\x033\x01\x0f\x06BC+\x96\x0c\x07*' +[40:b4:f0:cc:76:01]     --> option: 50: b'\n\x00\xc8e' +[40:b4:f0:cc:76:01]     --> option: 53: b'\x03' +[40:b4:f0:cc:76:01]     --> option: 60: 4a:75:6e:69:70:65:72:2d:65 [...] +[40:b4:f0:cc:76:01]     --> processing suboption hook for option 82 +[40:b4:f0:cc:76:01]         --> suboption 1 found - value: "distro0gw:ge-0/0/0.0:mgmt" +[40:b4:f0:cc:76:01]     --> Finished processing suboption 82 +[40:b4:f0:cc:76:01] --> Finished processing options +[40:b4:f0:cc:76:01] --> DHCP packet type: DHCP REQUEST +[40:b4:f0:cc:76:01] --> DHCP packet contains option 82 - continues to process +[40:b4:f0:cc:76:01] --> DHCP packet forwarded by relay 10.0.200.1 +[40:b4:f0:cc:76:01] --> DHCP XID/Transaction ID: 66:33:48:73 +[40:b4:f0:cc:76:01] --> Looking up in the DB +[40:b4:f0:cc:76:01]     --> Query details: distro_name:distro0gw, distro_phy_port:ge-0/0/0 +[40:b4:f0:cc:76:01]     --> Data found, switch exists in DB - ready to craft response +[40:b4:f0:cc:76:01] --> Crafting DHCP ACK response +[40:b4:f0:cc:76:01]     --> XID/Transaction ID: 66:33:48:73 +[40:b4:f0:cc:76:01]     --> Client IP: 10.0.200.101 +[40:b4:f0:cc:76:01]     --> DHCP forwarder IP: 10.0.200.1 +[40:b4:f0:cc:76:01]     --> Client MAC: 40:b4:f0:cc:76:01 +[40:b4:f0:cc:76:01] --> Completed DHCP header structure, building DHCP options +[40:b4:f0:cc:76:01]     --> Option 53  (DHCP ACK): 5 +[40:b4:f0:cc:76:01]     --> Option 54  (DHCP server identifier): 10.0.100.2 +[40:b4:f0:cc:76:01]     --> Option 51  (Lease time): 43200 (12 hours) +[40:b4:f0:cc:76:01]     --> Option 1   (subnet mask): 255.255.255.0 +[40:b4:f0:cc:76:01]     --> Option 3   (default gateway): 10.0.200.1 +[40:b4:f0:cc:76:01]     --> Option 150 (Cisco proprietary TFTP server(s)): 10.0.100.2 +[40:b4:f0:cc:76:01]     --> Option 43  (Vendor-specific option): +[40:b4:f0:cc:76:01]         --> Suboption 0: /files/jinstall-ex-2200-12.3R6.6-domestic-signed.tgz +[40:b4:f0:cc:76:01]         --> Suboption 1: /tg-edge/e-00-1 +[40:b4:f0:cc:76:01]         --> Suboption 3: http +[40:b4:f0:cc:76:01] --> replying to 10.0.100.1 + diff --git a/fap/httpd/# DEPRECATED/server_http.py b/fap/httpd/# DEPRECATED/server_http.py new file mode 100755 index 0000000..a9ae74c --- /dev/null +++ b/fap/httpd/# DEPRECATED/server_http.py @@ -0,0 +1,146 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +from http.server import BaseHTTPRequestHandler, HTTPServer +from string import Template +import time +import psycopg2 +import psycopg2.extras +import sys +import os + +def main(): +    # +    # Settings +    # +    settings = { +	    'db': { +		    'user': 'bootstrap', +		    'password': 'asdf', +		    'dbname': 'bootstrap', +		    'host': 'localhost' +	    }, +	    'http': { +		    'host': '0.0.0.0', +		    'port': 80 +	    } +    } +     +    # +    # Connect to DB +    # +    try: +        connect_params = ("dbname='%s' user='%s' host='%s' password='%s'" % (settings['db']['dbname'], settings['db']['user'], settings['db']['host'], settings['db']['password'])) +        conn = psycopg2.connect(connect_params) +        cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor) +        # cur.execute("""SELECT * from switches""") +        # rows = cur.fetchall() +        # print ("\nSwitches in DB during server_http.py startup:") +        # for row in rows: +        #     print (" --> %s, connected to %s port %s" % (row['hostname'], row['distro_name'], row['distro_phy_port'])) +	 +    except (psycopg2.DatabaseError, psycopg2.OperationalError) as e: +	    print ('Error: %s' % e) +	    sys.exit(1) + +    except: +        print(sys.exc_info()[0]) +        sys.exit(1) + +    def template_get(model): +        return open('fap/httpd/' + model + '.template').read() +         +    def template_parse(template_src, hostname): +        cur.execute("SELECT * FROM switches WHERE hostname = '%s'" % hostname) +        if(cur.rowcount == 1): +            row = cur.fetchall()[0] +            d={ +                'hostname': row['hostname'], +                'distro_name': row['distro_name'], +                'distro_phy_port': row['distro_phy_port'], +                'mgmt_addr': row['mgmt_addr'], +                'mgmt_cidr': row['mgmt_cidr'], +                'mgmt_gw': row['mgmt_gw'], +                'mgmt_vlan': row['mgmt_vlan'], +                'traffic_vlan': row['traffic_vlan'], +                'mgmt_v6_addr': row['mgmt_v6_addr'], +                'mgmt_v6_cidr': row['mgmt_v6_cidr'], +                'mgmt_v6_gw': row['mgmt_v6_gw'] +            } +            cur.execute("UPDATE switches SET last_config_fetch = '%s' WHERE hostname = '%s'" % (str(time.time()).split('.')[0], hostname)) # updated DB with last config fetch +            conn.commit() +            return Template(template_src).safe_substitute(d) +        else: +            return False + +    class httpd(BaseHTTPRequestHandler): +        def do_GET(self): +            print('[%s] [%s] Incoming HTTP GET URI:%s ' % (self.client_address[0], time.asctime(), self.path)) +             +            # Client asks for the config file +            if '/tg-edge/' in self.path: +                hostname = self.path.split('/tg-edge/')[1] +                if len(hostname) > 0: +                    print('[%s] --> Hostname "%s" accepted, fetching info from DB' % (self.client_address[0], hostname)) +                    template_parsed = template_parse(template_get('ex2200'), hostname) +                    if template_parsed: +                        print('[%s] --> Template successfully populated' % self.client_address[0]) +                        print('[%s] --> Sending response to client' % self.client_address[0]) +                        self.send_response(200) +                        self.send_header("Content-type", "text/plain") +                        self.end_headers() +                        self.wfile.write(bytes(template_parsed, "utf-8")) +                        print('[%s] --> Success - %s bytes sent to client' % (self.client_address[0], len(template_parsed))) +                    else: +                        print('[%s] --> Error - could not find hostname "%s" in DB' % (self.client_address[0], hostname)) +                else: +                    print('[%s] --> Rejected due to missing hostname' % self.client_address[0]) +                     +            # Client asks for a file download - most likely a JunOS file +            elif '/files/' in self.path: +                # It seems that "http.server" escapes nastiness from the URL - ("/files/../../../root_file" => "/files/root_file") +                requested_file = self.path.split('/files/')[1] +                files_dir = 'fap/httpd/files/' +                print('[%s] --> File request for "%s" in "%s"' % (self.client_address[0], requested_file, files_dir)) +                if os.path.isfile(files_dir + requested_file): +                    print('[%s] --> File found' % self.client_address[0]) +                    try: +                        f = open(files_dir + requested_file) +                        self.send_response(200) +                        self.send_header('Content-type', 'application/x-gzip') # correct content type for tar.gz +                        self.end_headers() +                        print('[%s]     --> File transfer started' % self.client_address[0]) +                        f = open(files_dir + requested_file, 'rb') +                        self.wfile.write(f.read()) +                        f.close() +                        print('[%s]     --> File transfer completed' % self.client_address[0]) +                        return +                    except IOError: +                        self.send_error(404,'File Not Found: %s' % self.path) +                        print('[%s] --> ERROR 404 - File not found' % self.client_address[0]) +                        pass +                    except: +                        print('[%s] --> Generic error during file reading' % self.client_address[0]) +                        pass +                else: +                    print('[%s] --> File request rejected due to nonexisting file' % self.client_address[0]) +            else: +                print('[%s] --> rejected due to bad URI' % self.client_address[0]) +        # silence stderr from BaseHTTPRequestHandler +        # source: http://stackoverflow.com/questions/3389305/how-to-silent-quiet-httpserver-and-basichttprequesthandlers-stderr-output +        def log_message(self, format, *args): +            return +             +    httpd_instance = HTTPServer((settings['http']['host'], settings['http']['port']), httpd) +    print("\n[%s] Server Starts - %s:%s" % (time.asctime(), settings['http']['host'], settings['http']['port'])) + +    try: +        httpd_instance.serve_forever() +    except KeyboardInterrupt: +        pass + +    httpd_instance.server_close() +    print("\n\n[%s] HTTP Server stopped\n" % time.asctime()) + +if __name__ == "__main__": +	main() diff --git a/fap/httpd/# DEPRECATED/terminal.log b/fap/httpd/# DEPRECATED/terminal.log new file mode 100755 index 0000000..bedb829 --- /dev/null +++ b/fap/httpd/# DEPRECATED/terminal.log @@ -0,0 +1,14 @@ +j@lappie:~/git/tgmanage$ sudo python3 fap/httpd/server_http.py + +[Thu Feb 19 23:15:45 2015] Server Starts - 0.0.0.0:80 +[10.0.200.101] [Fri Feb 20 00:18:25 2015] Incoming HTTP GET URI://tg-edge/e-00-1  +[10.0.200.101] --> Hostname "e-00-1" accepted, fetching info from DB +[10.0.200.101] --> Template successfully populated +[10.0.200.101] --> Sending response to client +[10.0.200.101] --> Success - 1437 bytes sent to client +[10.0.200.101] [Fri Feb 20 00:18:26 2015] Incoming HTTP GET URI://files/jinstall-ex-2200-12.3R6.6-domestic-signed.tgz  +[10.0.200.101] --> File request for "jinstall-ex-2200-12.3R6.6-domestic-signed.tgz" in "fap/httpd/files/" +[10.0.200.101] --> File found +[10.0.200.101]     --> File transfer started +[10.0.200.101]     --> File transfer completed + diff --git a/fap/httpd/README.md b/fap/httpd/README.md new file mode 100755 index 0000000..73c5634 --- /dev/null +++ b/fap/httpd/README.md @@ -0,0 +1,26 @@ +# HTTPD + +Well, not working out quite as I've hoped (at least for now). + +Resorted to Apache2, PHP and Postgres for the HTTP. Apache starts at boot, so no action required to get the stack up and after installation. + +``` +j@lappie:~/git/tgmanage$ cat /etc/apache2/sites-enabled/000-default.conf +<VirtualHost *:80> +        ServerAdmin webmaster@localhost + +        DocumentRoot /home/j/git/tgmanage/fap/httpd/httpd_root/ + +        <Directory /home/j/git/tgmanage/fap/httpd/httpd_root> +                Options Indexes FollowSymLinks MultiViews +                AllowOverride All +                Order allow,deny +                allow from all +        </Directory> + +	ErrorLog ${APACHE_LOG_DIR}/error.log +	LogLevel warn + +	CustomLog ${APACHE_LOG_DIR}/access.log combined +</VirtualHost> +``` diff --git a/fap/httpd/files/.gitignore b/fap/httpd/files/.gitignore new file mode 100755 index 0000000..cec9082 --- /dev/null +++ b/fap/httpd/files/.gitignore @@ -0,0 +1,3 @@ +* + +!.gitignore diff --git a/fap/httpd/httpd_root/# create_queries - DEPRECATED/create_queries.php b/fap/httpd/httpd_root/# create_queries - DEPRECATED/create_queries.php new file mode 100644 index 0000000..8d4bf26 --- /dev/null +++ b/fap/httpd/httpd_root/# create_queries - DEPRECATED/create_queries.php @@ -0,0 +1,55 @@ +<?php +    /* +        Used for generating SQL queries for FAP +        Jonas Lindstad for TG15 +        GPL V2 +    */ +     +    chdir(__DIR__); # sets the executing directory to be the path of this script - necessary for CLI require() usage +    header("Content-Type: text/plain"); +     +    require 'ipcalc_functions.php'; +    /* +        Load data sources +    */ +    $patchlist = file('patchlist.txt'); +    $switches = file('switches.txt'); +     +    $dataset = array(); +     +    foreach($patchlist as $lines){ +        $pieces = explode(' ', trim($lines)); +        $dataset[$pieces[0]] = array( +            'hostname' => $pieces[0], +            'distro_name' => 'rs1.' . $pieces[1], # prefix with "rs." so we get "rs1.distro0" syntax +            'distro_phy_port' => $pieces[2] +        ); +    } +     +    /* +        Assign to logical and usable names in array +    */ +    foreach($switches as $lines){ +        $pieces = explode(' ', trim($lines)); +        $dataset[$pieces[0]]['mgmt_v4_addr'] = explode('/', $pieces[3])[0]; +        $dataset[$pieces[0]]['mgmt_v4_cidr'] = explode('/', $pieces[3])[1]; +        $dataset[$pieces[0]]['mgmt_v4_gw'] = net_to_gw($pieces[3]); +        $dataset[$pieces[0]]['mgmt_v6_addr'] = explode('/', $pieces[4])[0]; +        $dataset[$pieces[0]]['mgmt_v6_cidr'] = explode('/', $pieces[4])[1]; +        $dataset[$pieces[0]]['mgmt_v6_gw'] = net_to_gw($pieces[4]); +        $dataset[$pieces[0]]['traffic_vlan'] = $pieces[5]; +        $dataset[$pieces[0]]['mgmt_vlan'] = '666'; +    } +     +    /* +        Prints the query rows +    */ +    $sql_query = ''; +    foreach($dataset as $k => $v){ +        $columns = implode(', ', array_keys($v)); +        $values = "'" . implode("', '", array_values($v)) . "'"; +        $sql_query .= 'INSERT INTO switches (' . $columns . ') VALUES (' . $values . ');' . "\n"; +    } +     +    echo $sql_query; +?> diff --git a/fap/httpd/httpd_root/# create_queries - DEPRECATED/ipcalc_functions.php b/fap/httpd/httpd_root/# create_queries - DEPRECATED/ipcalc_functions.php new file mode 100644 index 0000000..e848ef1 --- /dev/null +++ b/fap/httpd/httpd_root/# create_queries - DEPRECATED/ipcalc_functions.php @@ -0,0 +1,134 @@ +<?php +    /* +        Mainly copied from djamps's work - https://github.com/djamps/php-ipv6-calculator/blob/master/ipcalc.php +        Edited by Jonas Lindstad for The Gathering 2015 +        Licensed under GPL +    */ +     +     +     +    // Convert array of short unsigned integers to binary +    function _packBytes($array) { +        foreach ( $array as $byte ) { +            $chars .= pack('C',$byte); +        } +        return $chars; +    } +     +     +    // Convert binary to array of short integers +    function _unpackBytes($string) { +        return unpack('C*',$string); +    } +     +     +    // Add array of short unsigned integers +    function _addBytes($array1,$array2) { +        $result = array(); +        $carry = 0; +        foreach ( array_reverse($array1,true) as $value1 ) { +            $value2 = array_pop($array2); +            if ( empty($result) ) { $value2++; } +            $newValue = $value1 + $value2 + $carry; +            if ( $newValue > 255 ) { +                $newValue = $newValue - 256; +                $carry = 1; +            } else { +                $carry = 0; +            } +            array_unshift($result,$newValue); +        } +        return $result; +    } +     +     +    /* Useful Functions */ +    function _cdr2Bin ($cdrin,$len=4){ +        if ( $len > 4 || $cdrin > 32 ) { // Are we ipv6? +            return str_pad(str_pad("", $cdrin, "1"), 128, "0"); +        } else { +            return str_pad(str_pad("", $cdrin, "1"), 32, "0"); +        } +    } +     +     +    function _bin2Cdr ($binin){ +        return strlen(rtrim($binin,"0")); +    } +     +     +    function _cdr2Char ($cdrin,$len=4){ +        $hex = _bin2Hex(_cdr2Bin($cdrin,$len)); +        return _hex2Char($hex); +    } +     +     +    function _char2Cdr ($char){ +        $bin = _hex2Bin(_char2Hex($char)); +        return _bin2Cdr($bin); +    } +     +     +    function _hex2Char($hex){ +        return pack('H*',$hex); +    } +     +     +    function _char2Hex($char){ +        $hex = unpack('H*',$char); +        return array_pop($hex); +    } +     +     +    function _hex2Bin($hex){ +        $bin=''; +        for($i=0;$i<strlen($hex);$i++) +            $bin.=str_pad(decbin(hexdec($hex{$i})),4,'0',STR_PAD_LEFT); +        return $bin; +    } +     +     +    function _bin2Hex($bin){ +        $hex=''; +        for($i=strlen($bin)-4;$i>=0;$i-=4) +            $hex.=dechex(bindec(substr($bin,$i,4))); +        return strrev($hex); +    } +     +    /* +        Converts a v4/v6 subnet to the first usable IP +    */ +    function net_to_gw($net){ +        $maxSubNets = '2048'; // Stop memory leak from invalid input or large ranges +        $charHost = inet_pton(strtok($net, '/')); +        $charMask = _cdr2Char(strtok('/'),strlen($charHost)); +        $charHostMask = substr(_cdr2Char(127),-strlen($charHost)); +        $charNet = $charHost & $charMask; // Supernet network address +        $charHostMin = $charNet | ~$charHostMask; +        return inet_ntop($charHostMin); +    } +     +     +     + + + + + +/* + +    $maxSubNets = '2048'; // Stop memory leak from invalid input or large ranges +    $superNet = '2a02:ed02:180a::13/64'; +    if (ereg('/',$superNet)){ //if cidr type mask +        $charHost = inet_pton(strtok($superNet, '/')); +        $charMask = _cdr2Char(strtok('/'),strlen($charHost)); +    } +     +    $charHostMask = substr(_cdr2Char(127),-strlen($charHost)); +    $charNet = $charHost & $charMask; // Supernet network address +    $charHostMin = $charNet | ~$charHostMask; +    echo 'Første brukbare adresse i ' . $superNet . ': '; +    echo inet_ntop($charHostMin); +*/ +     +?> diff --git a/fap/httpd/httpd_root/# create_queries - DEPRECATED/patchlist.txt b/fap/httpd/httpd_root/# create_queries - DEPRECATED/patchlist.txt new file mode 100644 index 0000000..7454441 --- /dev/null +++ b/fap/httpd/httpd_root/# create_queries - DEPRECATED/patchlist.txt @@ -0,0 +1,142 @@ +e1-3 distro0 ge-0/0/0 ge-1/0/0 ge-2/0/0 ge-3/0/0 +e3-3 distro0 ge-0/0/1 ge-1/0/1 ge-2/0/1 ge-3/0/1 +e3-4 distro0 ge-0/0/2 ge-1/0/2 ge-2/0/2 ge-3/0/2 +e5-2 distro1 ge-0/0/0 ge-1/0/0 ge-2/0/0 ge-3/0/0 +e5-3 distro0 ge-0/0/3 ge-1/0/3 ge-2/0/3 ge-3/0/3 +e5-4 distro0 ge-0/0/4 ge-1/0/4 ge-2/0/4 ge-3/0/4 +e7-2 distro1 ge-0/0/1 ge-1/0/1 ge-2/0/1 ge-3/0/1 +e7-3 distro0 ge-0/0/5 ge-1/0/5 ge-2/0/5 ge-3/0/5 +e7-4 distro0 ge-0/0/6 ge-1/0/6 ge-2/0/6 ge-3/0/6 +e9-2 distro1 ge-0/0/2 ge-1/0/2 ge-2/0/2 ge-3/0/2 +e9-3 distro0 ge-0/0/7 ge-1/0/7 ge-2/0/7 ge-3/0/7 +e9-4 distro0 ge-0/0/8 ge-1/0/8 ge-2/0/8 ge-3/0/8 +e11-1 distro1 ge-0/0/3 ge-1/0/3 ge-2/0/3 ge-3/0/3 +e11-2 distro1 ge-0/0/4 ge-1/0/4 ge-2/0/4 ge-3/0/4 +e11-3 distro0 ge-0/0/9 ge-1/0/9 ge-2/0/9 ge-3/0/9 +e11-4 distro0 ge-0/0/10 ge-1/0/10 ge-2/0/10 ge-3/0/10 +e13-1 distro1 ge-0/0/5 ge-1/0/5 ge-2/0/5 ge-3/0/5 +e13-2 distro1 ge-0/0/6 ge-1/0/6 ge-2/0/6 ge-3/0/6 +e13-3 distro0 ge-0/0/11 ge-1/0/11 ge-2/0/11 ge-3/0/11 +e13-4 distro0 ge-0/0/12 ge-1/0/12 ge-2/0/12 ge-3/0/12 +e15-1 distro1 ge-0/0/7 ge-1/0/7 ge-2/0/7 ge-3/0/7 +e15-2 distro1 ge-0/0/8 ge-1/0/8 ge-2/0/8 ge-3/0/8 +e15-3 distro0 ge-0/0/13 ge-1/0/13 ge-2/0/13 ge-3/0/13 +e15-4 distro0 ge-0/0/14 ge-1/0/14 ge-2/0/14 ge-3/0/14 +e17-1 distro1 ge-0/0/9 ge-1/0/9 ge-2/0/9 ge-3/0/9 +e17-2 distro1 ge-0/0/10 ge-1/0/10 ge-2/0/10 ge-3/0/10 +e17-3 distro2 ge-0/0/0 ge-1/0/0 ge-2/0/0 ge-3/0/0 +e17-4 distro2 ge-0/0/1 ge-1/0/1 ge-2/0/1 ge-3/0/1 +e19-1 distro1 ge-0/0/11 ge-1/0/11 ge-2/0/11 ge-3/0/11 +e19-2 distro1 ge-0/0/12 ge-1/0/12 ge-2/0/12 ge-3/0/12 +e19-3 distro2 ge-0/0/2 ge-1/0/2 ge-2/0/2 ge-3/0/2 +e19-4 distro2 ge-0/0/3 ge-1/0/3 ge-2/0/3 ge-3/0/3 +e21-1 distro1 ge-0/0/13 ge-1/0/13 ge-2/0/13 ge-3/0/13 +e21-2 distro1 ge-0/0/14 ge-1/0/14 ge-2/0/14 ge-3/0/14 +e21-3 distro2 ge-0/0/4 ge-1/0/4 ge-2/0/4 ge-3/0/4 +e21-4 distro2 ge-0/0/5 ge-1/0/5 ge-2/0/5 ge-3/0/5 +e23-1 distro1 ge-0/0/15 ge-1/0/15 ge-2/0/15 ge-3/0/15 +e23-2 distro1 ge-0/0/16 ge-1/0/16 ge-2/0/16 ge-3/0/16 +e23-3 distro2 ge-0/0/6 ge-1/0/6 ge-2/0/6 ge-3/0/6 +e23-4 distro2 ge-0/0/7 ge-1/0/7 ge-2/0/7 ge-3/0/7 +e25-1 distro1 ge-0/0/17 ge-1/0/17 ge-2/0/17 ge-3/0/17 +e25-2 distro1 ge-0/0/18 ge-1/0/18 ge-2/0/18 ge-3/0/18 +e25-3 distro2 ge-0/0/8 ge-1/0/8 ge-2/0/8 ge-3/0/8 +e25-4 distro2 ge-0/0/9 ge-1/0/9 ge-2/0/9 ge-3/0/9 +e27-1 distro1 ge-0/0/19 ge-1/0/19 ge-2/0/19 ge-3/0/19 +e27-2 distro1 ge-0/0/20 ge-1/0/20 ge-2/0/20 ge-3/0/20 +e27-3 distro2 ge-0/0/10 ge-1/0/10 ge-2/0/10 ge-3/0/10 +e27-4 distro2 ge-0/0/11 ge-1/0/11 ge-2/0/11 ge-3/0/11 +e27-1 distro1 ge-0/0/21 ge-1/0/21 ge-2/0/21 ge-3/0/21 +e27-2 distro1 ge-0/0/22 ge-1/0/22 ge-2/0/22 ge-3/0/22 +e29-1 distro3 ge-0/0/0 ge-1/0/0 ge-2/0/0 ge-3/0/0 +e29-2 distro3 ge-0/0/1 ge-1/0/1 ge-2/0/1 ge-3/0/1 +e31-1 distro3 ge-0/0/2 ge-1/0/2 ge-2/0/2 ge-3/0/2 +e31-2 distro3 ge-0/0/3 ge-1/0/3 ge-2/0/3 ge-3/0/3 +e33-1 distro3 ge-0/0/4 ge-1/0/4 ge-2/0/4 ge-3/0/4 +e33-2 distro3 ge-0/0/5 ge-1/0/5 ge-2/0/5 ge-3/0/5 +e35-1 distro3 ge-0/0/6 ge-1/0/6 ge-2/0/6 ge-3/0/6 +e35-2 distro3 ge-0/0/7 ge-1/0/7 ge-2/0/7 ge-3/0/7 +e37-1 distro3 ge-0/0/8 ge-1/0/8 ge-2/0/8 ge-3/0/8 +e37-2 distro3 ge-0/0/9 ge-1/0/9 ge-2/0/9 ge-3/0/9 +e39-1 distro3 ge-0/0/10 ge-1/0/10 ge-2/0/10 ge-3/0/10 +e39-2 distro3 ge-0/0/11 ge-1/0/11 ge-2/0/11 ge-3/0/11 +e41-1 distro3 ge-0/0/12 ge-1/0/12 ge-2/0/12 ge-3/0/12 +e41-2 distro3 ge-0/0/13 ge-1/0/13 ge-2/0/13 ge-3/0/13 +e43-1 distro3 ge-0/0/14 ge-1/0/14 ge-2/0/14 ge-3/0/14 +e43-2 distro3 ge-0/0/15 ge-1/0/15 ge-2/0/15 ge-3/0/15 +e45-1 distro4 ge-0/0/0 ge-1/0/0 ge-2/0/0 ge-3/0/0 +e45-2 distro4 ge-0/0/1 ge-1/0/1 ge-2/0/1 ge-3/0/1 +e45-3 distro5 ge-0/0/0 ge-1/0/0 ge-2/0/0 ge-3/0/0 +e45-4 distro5 ge-0/0/1 ge-1/0/1 ge-2/0/1 ge-3/0/1 +e47-1 distro4 ge-0/0/2 ge-1/0/2 ge-2/0/2 ge-3/0/2 +e47-2 distro4 ge-0/0/3 ge-1/0/3 ge-2/0/3 ge-3/0/3 +e47-3 distro5 ge-0/0/2 ge-1/0/2 ge-2/0/2 ge-3/0/2 +e47-4 distro5 ge-0/0/3 ge-1/0/3 ge-2/0/3 ge-3/0/3 +e49-1 distro4 ge-0/0/4 ge-1/0/4 ge-2/0/4 ge-3/0/4 +e49-2 distro4 ge-0/0/5 ge-1/0/5 ge-2/0/5 ge-3/0/5 +e49-3 distro5 ge-0/0/4 ge-1/0/4 ge-2/0/4 ge-3/0/4 +e49-4 distro5 ge-0/0/5 ge-1/0/5 ge-2/0/5 ge-3/0/5 +e51-1 distro4 ge-0/0/6 ge-1/0/6 ge-2/0/6 ge-3/0/6 +e51-2 distro4 ge-0/0/7 ge-1/0/7 ge-2/0/7 ge-3/0/7 +e51-3 distro5 ge-0/0/6 ge-1/0/6 ge-2/0/6 ge-3/0/6 +e51-4 distro5 ge-0/0/7 ge-1/0/7 ge-2/0/7 ge-3/0/7 +e53-1 distro4 ge-0/0/8 ge-1/0/8 ge-2/0/8 ge-3/0/8 +e53-2 distro4 ge-0/0/9 ge-1/0/9 ge-2/0/9 ge-3/0/9 +e53-3 distro5 ge-0/0/8 ge-1/0/8 ge-2/0/8 ge-3/0/8 +e53-4 distro5 ge-0/0/9 ge-1/0/9 ge-2/0/9 ge-3/0/9 +e55-1 distro4 ge-0/0/10 ge-1/0/10 ge-2/0/10 ge-3/0/10 +e55-2 distro4 ge-0/0/11 ge-1/0/11 ge-2/0/11 ge-3/0/11 +e55-3 distro5 ge-0/0/10 ge-1/0/10 ge-2/0/10 ge-3/0/10 +e55-4 distro5 ge-0/0/11 ge-1/0/11 ge-2/0/11 ge-3/0/11 +e57-1 distro4 ge-0/0/12 ge-1/0/12 ge-2/0/12 ge-3/0/12 +e57-2 distro4 ge-0/0/13 ge-1/0/13 ge-2/0/13 ge-3/0/13 +e57-3 distro5 ge-0/0/12 ge-1/0/12 ge-2/0/12 ge-3/0/12 +e57-4 distro5 ge-0/0/13 ge-1/0/13 ge-2/0/13 ge-3/0/13 +e59-1 distro4 ge-0/0/14 ge-1/0/14 ge-2/0/14 ge-3/0/14 +e59-2 distro4 ge-0/0/15 ge-1/0/15 ge-2/0/15 ge-3/0/15 +e59-3 distro5 ge-0/0/14 ge-1/0/14 ge-2/0/14 ge-3/0/14 +e59-4 distro5 ge-0/0/15 ge-1/0/15 ge-2/0/15 ge-3/0/15 +e61-1 distro4 ge-0/0/16 ge-1/0/16 ge-2/0/16 ge-3/0/16 +e61-2 distro4 ge-0/0/17 ge-1/0/17 ge-2/0/17 ge-3/0/17 +e61-3 distro5 ge-0/0/16 ge-1/0/16 ge-2/0/16 ge-3/0/16 +e61-4 distro5 ge-0/0/17 ge-1/0/17 ge-2/0/17 ge-3/0/17 +e63-1 distro7 ge-0/0/0 ge-1/0/0 ge-2/0/0 ge-3/0/0 +e63-2 distro7 ge-0/0/1 ge-1/0/1 ge-2/0/1 ge-3/0/1 +e63-3 distro6 ge-0/0/0 ge-1/0/0 ge-2/0/0 ge-3/0/0 +e63-4 distro6 ge-0/0/1 ge-1/0/1 ge-2/0/1 ge-3/0/1 +e65-1 distro7 ge-0/0/2 ge-1/0/2 ge-2/0/2 ge-3/0/2 +e65-2 distro7 ge-0/0/3 ge-1/0/3 ge-2/0/3 ge-3/0/3 +e65-3 distro6 ge-0/0/2 ge-1/0/2 ge-2/0/2 ge-3/0/2 +e65-4 distro6 ge-0/0/3 ge-1/0/3 ge-2/0/3 ge-3/0/3 +e67-1 distro7 ge-0/0/4 ge-1/0/4 ge-2/0/4 ge-3/0/4 +e67-2 distro7 ge-0/0/5 ge-1/0/5 ge-2/0/5 ge-3/0/5 +e67-3 distro6 ge-0/0/4 ge-1/0/4 ge-2/0/4 ge-3/0/4 +e67-4 distro6 ge-0/0/5 ge-1/0/5 ge-2/0/5 ge-3/0/5 +e69-1 distro7 ge-0/0/6 ge-1/0/6 ge-2/0/6 ge-3/0/6 +e69-2 distro7 ge-0/0/7 ge-1/0/7 ge-2/0/7 ge-3/0/7 +e69-3 distro6 ge-0/0/6 ge-1/0/6 ge-2/0/6 ge-3/0/6 +e69-4 distro6 ge-0/0/7 ge-1/0/7 ge-2/0/7 ge-3/0/7 +e71-1 distro7 ge-0/0/8 ge-1/0/8 ge-2/0/8 ge-3/0/8 +e71-2 distro7 ge-0/0/9 ge-1/0/9 ge-2/0/9 ge-3/0/9 +e71-3 distro6 ge-0/0/8 ge-1/0/8 ge-2/0/8 ge-3/0/8 +e71-4 distro6 ge-0/0/9 ge-1/0/9 ge-2/0/9 ge-3/0/9 +e73-1 distro7 ge-0/0/10 ge-1/0/10 ge-2/0/10 ge-3/0/10 +e73-2 distro7 ge-0/0/11 ge-1/0/11 ge-2/0/11 ge-3/0/11 +e73-3 distro6 ge-0/0/10 ge-1/0/10 ge-2/0/10 ge-3/0/10 +e73-4 distro6 ge-0/0/11 ge-1/0/11 ge-2/0/11 ge-3/0/11 +e75-1 distro7 ge-0/0/12 ge-1/0/12 ge-2/0/12 ge-3/0/12 +e75-2 distro7 ge-0/0/13 ge-1/0/13 ge-2/0/13 ge-3/0/13 +e75-3 distro6 ge-0/0/12 ge-1/0/12 ge-2/0/12 ge-3/0/12 +e75-4 distro6 ge-0/0/13 ge-1/0/13 ge-2/0/13 ge-3/0/13 +e77-1 distro7 ge-0/0/14 ge-1/0/14 ge-2/0/14 ge-3/0/14 +e77-2 distro7 ge-0/0/15 ge-1/0/15 ge-2/0/15 ge-3/0/15 +e77-3 distro6 ge-0/0/14 ge-1/0/14 ge-2/0/14 ge-3/0/14 +e77-4 distro6 ge-0/0/15 ge-1/0/15 ge-2/0/15 ge-3/0/15 +e79-1 distro7 ge-0/0/16 ge-1/0/16 ge-2/0/16 ge-3/0/16 +e79-2 distro7 ge-0/0/17 ge-1/0/17 ge-2/0/17 ge-3/0/17 +e79-3 distro6 ge-0/0/16 ge-1/0/16 ge-2/0/16 ge-3/0/16 +e79-4 distro6 ge-0/0/17 ge-1/0/17 ge-2/0/17 ge-3/0/17 +e81-1 distro7 ge-0/0/18 ge-1/0/18 ge-2/0/18 ge-3/0/18 +e81-2 distro7 ge-0/0/19 ge-1/0/19 ge-2/0/19 ge-3/0/19 +e83-1 distro7 ge-0/0/20 ge-1/0/20 ge-2/0/20 ge-3/0/20 +e83-2 distro7 ge-0/0/21 ge-1/0/21 ge-2/0/21 ge-3/0/21 diff --git a/fap/httpd/httpd_root/# create_queries - DEPRECATED/switches.txt b/fap/httpd/httpd_root/# create_queries - DEPRECATED/switches.txt new file mode 100644 index 0000000..c9d60d9 --- /dev/null +++ b/fap/httpd/httpd_root/# create_queries - DEPRECATED/switches.txt @@ -0,0 +1,142 @@ +e1-3 151.216.129.0/26 2a02:ed02:129a::/64 151.216.180.2/26 2a02:ed02:180a::2/64 1013 distro0 +e3-3 151.216.129.64/26 2a02:ed02:129b::/64 151.216.180.3/26 2a02:ed02:180a::3/64 1033 distro0 +e3-4 151.216.129.128/26 2a02:ed02:129c::/64 151.216.180.4/26 2a02:ed02:180a::4/64 1034 distro0 +e5-2 151.216.129.192/26 2a02:ed02:129d::/64 151.216.180.66/26 2a02:ed02:180b::66/64 1052 distro1 +e5-3 151.216.130.0/26 2a02:ed02:130a::/64 151.216.180.5/26 2a02:ed02:180a::5/64 1053 distro0 +e5-4 151.216.130.64/26 2a02:ed02:130b::/64 151.216.180.6/26 2a02:ed02:180a::6/64 1054 distro0 +e7-2 151.216.130.128/26 2a02:ed02:130c::/64 151.216.180.67/26 2a02:ed02:180b::67/64 1072 distro1 +e7-3 151.216.130.192/26 2a02:ed02:130d::/64 151.216.180.7/26 2a02:ed02:180a::7/64 1073 distro0 +e7-4 151.216.131.0/26 2a02:ed02:131a::/64 151.216.180.8/26 2a02:ed02:180a::8/64 1074 distro0 +e9-2 151.216.131.64/26 2a02:ed02:131b::/64 151.216.180.68/26 2a02:ed02:180b::68/64 1092 distro1 +e9-3 151.216.131.128/26 2a02:ed02:131c::/64 151.216.180.9/26 2a02:ed02:180a::9/64 1093 distro0 +e9-4 151.216.131.192/26 2a02:ed02:131d::/64 151.216.180.10/26 2a02:ed02:180a::10/64 1094 distro0 +e11-1 151.216.132.0/26 2a02:ed02:132a::/64 151.216.180.69/26 2a02:ed02:180b::69/64 1111 distro1 +e11-2 151.216.132.64/26 2a02:ed02:132b::/64 151.216.180.70/26 2a02:ed02:180b::70/64 1112 distro1 +e11-3 151.216.132.128/26 2a02:ed02:132c::/64 151.216.180.11/26 2a02:ed02:180a::11/64 1113 distro0 +e11-4 151.216.132.192/26 2a02:ed02:132d::/64 151.216.180.12/26 2a02:ed02:180a::12/64 1114 distro0 +e13-1 151.216.133.0/26 2a02:ed02:133a::/64 151.216.180.71/26 2a02:ed02:180b::71/64 1131 distro1 +e13-2 151.216.133.64/26 2a02:ed02:133b::/64 151.216.180.72/26 2a02:ed02:180b::72/64 1132 distro1 +e13-3 151.216.133.128/26 2a02:ed02:133c::/64 151.216.180.13/26 2a02:ed02:180a::13/64 1133 distro0 +e13-4 151.216.133.192/26 2a02:ed02:133d::/64 151.216.180.14/26 2a02:ed02:180a::14/64 1134 distro0 +e15-1 151.216.134.0/26 2a02:ed02:134a::/64 151.216.180.73/26 2a02:ed02:180b::73/64 1151 distro1 +e15-2 151.216.134.64/26 2a02:ed02:134b::/64 151.216.180.74/26 2a02:ed02:180b::74/64 1152 distro1 +e15-3 151.216.134.128/26 2a02:ed02:134c::/64 151.216.180.15/26 2a02:ed02:180a::15/64 1153 distro0 +e15-4 151.216.134.192/26 2a02:ed02:134d::/64 151.216.180.16/26 2a02:ed02:180a::16/64 1154 distro0 +e17-1 151.216.135.0/26 2a02:ed02:135a::/64 151.216.180.75/26 2a02:ed02:180b::75/64 1171 distro1 +e17-2 151.216.135.64/26 2a02:ed02:135b::/64 151.216.180.76/26 2a02:ed02:180b::76/64 1172 distro1 +e17-3 151.216.135.128/26 2a02:ed02:135c::/64 151.216.180.130/26 2a02:ed02:180c::130/64 1173 distro2 +e17-4 151.216.135.192/26 2a02:ed02:135d::/64 151.216.180.131/26 2a02:ed02:180c::131/64 1174 distro2 +e19-1 151.216.136.0/26 2a02:ed02:136a::/64 151.216.180.77/26 2a02:ed02:180b::77/64 1191 distro1 +e19-2 151.216.136.64/26 2a02:ed02:136b::/64 151.216.180.78/26 2a02:ed02:180b::78/64 1192 distro1 +e19-3 151.216.136.128/26 2a02:ed02:136c::/64 151.216.180.132/26 2a02:ed02:180c::132/64 1193 distro2 +e19-4 151.216.136.192/26 2a02:ed02:136d::/64 151.216.180.133/26 2a02:ed02:180c::133/64 1194 distro2 +e21-1 151.216.137.0/26 2a02:ed02:137a::/64 151.216.180.79/26 2a02:ed02:180b::79/64 1211 distro1 +e21-2 151.216.137.64/26 2a02:ed02:137b::/64 151.216.180.80/26 2a02:ed02:180b::80/64 1212 distro1 +e21-3 151.216.137.128/26 2a02:ed02:137c::/64 151.216.180.134/26 2a02:ed02:180c::134/64 1213 distro2 +e21-4 151.216.137.192/26 2a02:ed02:137d::/64 151.216.180.135/26 2a02:ed02:180c::135/64 1214 distro2 +e23-1 151.216.138.0/26 2a02:ed02:138a::/64 151.216.180.81/26 2a02:ed02:180b::81/64 1231 distro1 +e23-2 151.216.138.64/26 2a02:ed02:138b::/64 151.216.180.82/26 2a02:ed02:180b::82/64 1232 distro1 +e23-3 151.216.138.128/26 2a02:ed02:138c::/64 151.216.180.136/26 2a02:ed02:180c::136/64 1233 distro2 +e23-4 151.216.138.192/26 2a02:ed02:138d::/64 151.216.180.137/26 2a02:ed02:180c::137/64 1234 distro2 +e25-1 151.216.139.0/26 2a02:ed02:139a::/64 151.216.180.83/26 2a02:ed02:180b::83/64 1251 distro1 +e25-2 151.216.139.64/26 2a02:ed02:139b::/64 151.216.180.84/26 2a02:ed02:180b::84/64 1252 distro1 +e25-3 151.216.139.128/26 2a02:ed02:139c::/64 151.216.180.138/26 2a02:ed02:180c::138/64 1253 distro2 +e25-4 151.216.139.192/26 2a02:ed02:139d::/64 151.216.180.139/26 2a02:ed02:180c::139/64 1254 distro2 +e27-1 151.216.140.0/26 2a02:ed02:140a::/64 151.216.180.85/26 2a02:ed02:180b::85/64 1271 distro1 +e27-2 151.216.140.64/26 2a02:ed02:140b::/64 151.216.180.86/26 2a02:ed02:180b::86/64 1272 distro1 +e27-3 151.216.140.128/26 2a02:ed02:140c::/64 151.216.180.140/26 2a02:ed02:180c::140/64 1273 distro2 +e27-4 151.216.140.192/26 2a02:ed02:140d::/64 151.216.180.141/26 2a02:ed02:180c::141/64 1274 distro2 +e27-1 151.216.141.0/26 2a02:ed02:141a::/64 151.216.180.87/26 2a02:ed02:180b::87/64 1271 distro1 +e27-2 151.216.141.64/26 2a02:ed02:141b::/64 151.216.180.88/26 2a02:ed02:180b::88/64 1272 distro1 +e29-1 151.216.141.128/26 2a02:ed02:141c::/64 151.216.180.194/26 2a02:ed02:180d::194/64 1291 distro3 +e29-2 151.216.141.192/26 2a02:ed02:141d::/64 151.216.180.195/26 2a02:ed02:180d::195/64 1292 distro3 +e31-1 151.216.142.0/26 2a02:ed02:142a::/64 151.216.180.196/26 2a02:ed02:180d::196/64 1311 distro3 +e31-2 151.216.142.64/26 2a02:ed02:142b::/64 151.216.180.197/26 2a02:ed02:180d::197/64 1312 distro3 +e33-1 151.216.142.128/26 2a02:ed02:142c::/64 151.216.180.198/26 2a02:ed02:180d::198/64 1331 distro3 +e33-2 151.216.142.192/26 2a02:ed02:142d::/64 151.216.180.199/26 2a02:ed02:180d::199/64 1332 distro3 +e35-1 151.216.143.0/26 2a02:ed02:143a::/64 151.216.180.200/26 2a02:ed02:180d::200/64 1351 distro3 +e35-2 151.216.143.64/26 2a02:ed02:143b::/64 151.216.180.201/26 2a02:ed02:180d::201/64 1352 distro3 +e37-1 151.216.143.128/26 2a02:ed02:143c::/64 151.216.180.202/26 2a02:ed02:180d::202/64 1371 distro3 +e37-2 151.216.143.192/26 2a02:ed02:143d::/64 151.216.180.203/26 2a02:ed02:180d::203/64 1372 distro3 +e39-1 151.216.144.0/26 2a02:ed02:144a::/64 151.216.180.204/26 2a02:ed02:180d::204/64 1391 distro3 +e39-2 151.216.144.64/26 2a02:ed02:144b::/64 151.216.180.205/26 2a02:ed02:180d::205/64 1392 distro3 +e41-1 151.216.144.128/26 2a02:ed02:144c::/64 151.216.180.206/26 2a02:ed02:180d::206/64 1411 distro3 +e41-2 151.216.144.192/26 2a02:ed02:144d::/64 151.216.180.207/26 2a02:ed02:180d::207/64 1412 distro3 +e43-1 151.216.145.0/26 2a02:ed02:145a::/64 151.216.180.208/26 2a02:ed02:180d::208/64 1431 distro3 +e43-2 151.216.145.64/26 2a02:ed02:145b::/64 151.216.180.209/26 2a02:ed02:180d::209/64 1432 distro3 +e45-1 151.216.145.128/26 2a02:ed02:145c::/64 151.216.181.2/26 2a02:ed02:181a::2/64 1451 distro4 +e45-2 151.216.145.192/26 2a02:ed02:145d::/64 151.216.181.3/26 2a02:ed02:181a::3/64 1452 distro4 +e45-3 151.216.146.0/26 2a02:ed02:146a::/64 151.216.181.66/26 2a02:ed02:181b::66/64 1453 distro5 +e45-4 151.216.146.64/26 2a02:ed02:146b::/64 151.216.181.67/26 2a02:ed02:181b::67/64 1454 distro5 +e47-1 151.216.146.128/26 2a02:ed02:146c::/64 151.216.181.4/26 2a02:ed02:181a::4/64 1471 distro4 +e47-2 151.216.146.192/26 2a02:ed02:146d::/64 151.216.181.5/26 2a02:ed02:181a::5/64 1472 distro4 +e47-3 151.216.147.0/26 2a02:ed02:147a::/64 151.216.181.68/26 2a02:ed02:181b::68/64 1473 distro5 +e47-4 151.216.147.64/26 2a02:ed02:147b::/64 151.216.181.69/26 2a02:ed02:181b::69/64 1474 distro5 +e49-1 151.216.147.128/26 2a02:ed02:147c::/64 151.216.181.6/26 2a02:ed02:181a::6/64 1491 distro4 +e49-2 151.216.147.192/26 2a02:ed02:147d::/64 151.216.181.7/26 2a02:ed02:181a::7/64 1492 distro4 +e49-3 151.216.148.0/26 2a02:ed02:148a::/64 151.216.181.70/26 2a02:ed02:181b::70/64 1493 distro5 +e49-4 151.216.148.64/26 2a02:ed02:148b::/64 151.216.181.71/26 2a02:ed02:181b::71/64 1494 distro5 +e51-1 151.216.148.128/26 2a02:ed02:148c::/64 151.216.181.8/26 2a02:ed02:181a::8/64 1511 distro4 +e51-2 151.216.148.192/26 2a02:ed02:148d::/64 151.216.181.9/26 2a02:ed02:181a::9/64 1512 distro4 +e51-3 151.216.149.0/26 2a02:ed02:149a::/64 151.216.181.72/26 2a02:ed02:181b::72/64 1513 distro5 +e51-4 151.216.149.64/26 2a02:ed02:149b::/64 151.216.181.73/26 2a02:ed02:181b::73/64 1514 distro5 +e53-1 151.216.149.128/26 2a02:ed02:149c::/64 151.216.181.10/26 2a02:ed02:181a::10/64 1531 distro4 +e53-2 151.216.149.192/26 2a02:ed02:149d::/64 151.216.181.11/26 2a02:ed02:181a::11/64 1532 distro4 +e53-3 151.216.150.0/26 2a02:ed02:150a::/64 151.216.181.74/26 2a02:ed02:181b::74/64 1533 distro5 +e53-4 151.216.150.64/26 2a02:ed02:150b::/64 151.216.181.75/26 2a02:ed02:181b::75/64 1534 distro5 +e55-1 151.216.150.128/26 2a02:ed02:150c::/64 151.216.181.12/26 2a02:ed02:181a::12/64 1551 distro4 +e55-2 151.216.150.192/26 2a02:ed02:150d::/64 151.216.181.13/26 2a02:ed02:181a::13/64 1552 distro4 +e55-3 151.216.151.0/26 2a02:ed02:151a::/64 151.216.181.76/26 2a02:ed02:181b::76/64 1553 distro5 +e55-4 151.216.151.64/26 2a02:ed02:151b::/64 151.216.181.77/26 2a02:ed02:181b::77/64 1554 distro5 +e57-1 151.216.151.128/26 2a02:ed02:151c::/64 151.216.181.14/26 2a02:ed02:181a::14/64 1571 distro4 +e57-2 151.216.151.192/26 2a02:ed02:151d::/64 151.216.181.15/26 2a02:ed02:181a::15/64 1572 distro4 +e57-3 151.216.152.0/26 2a02:ed02:152a::/64 151.216.181.78/26 2a02:ed02:181b::78/64 1573 distro5 +e57-4 151.216.152.64/26 2a02:ed02:152b::/64 151.216.181.79/26 2a02:ed02:181b::79/64 1574 distro5 +e59-1 151.216.152.128/26 2a02:ed02:152c::/64 151.216.181.16/26 2a02:ed02:181a::16/64 1591 distro4 +e59-2 151.216.152.192/26 2a02:ed02:152d::/64 151.216.181.17/26 2a02:ed02:181a::17/64 1592 distro4 +e59-3 151.216.153.0/26 2a02:ed02:153a::/64 151.216.181.80/26 2a02:ed02:181b::80/64 1593 distro5 +e59-4 151.216.153.64/26 2a02:ed02:153b::/64 151.216.181.81/26 2a02:ed02:181b::81/64 1594 distro5 +e61-1 151.216.153.128/26 2a02:ed02:153c::/64 151.216.181.18/26 2a02:ed02:181a::18/64 1611 distro4 +e61-2 151.216.153.192/26 2a02:ed02:153d::/64 151.216.181.19/26 2a02:ed02:181a::19/64 1612 distro4 +e61-3 151.216.154.0/26 2a02:ed02:154a::/64 151.216.181.82/26 2a02:ed02:181b::82/64 1613 distro5 +e61-4 151.216.154.64/26 2a02:ed02:154b::/64 151.216.181.83/26 2a02:ed02:181b::83/64 1614 distro5 +e63-1 151.216.154.128/26 2a02:ed02:154c::/64 151.216.181.194/26 2a02:ed02:181d::194/64 1631 distro7 +e63-2 151.216.154.192/26 2a02:ed02:154d::/64 151.216.181.195/26 2a02:ed02:181d::195/64 1632 distro7 +e63-3 151.216.155.0/26 2a02:ed02:155a::/64 151.216.181.130/26 2a02:ed02:181c::130/64 1633 distro6 +e63-4 151.216.155.64/26 2a02:ed02:155b::/64 151.216.181.131/26 2a02:ed02:181c::131/64 1634 distro6 +e65-1 151.216.155.128/26 2a02:ed02:155c::/64 151.216.181.196/26 2a02:ed02:181d::196/64 1651 distro7 +e65-2 151.216.155.192/26 2a02:ed02:155d::/64 151.216.181.197/26 2a02:ed02:181d::197/64 1652 distro7 +e65-3 151.216.156.0/26 2a02:ed02:156a::/64 151.216.181.132/26 2a02:ed02:181c::132/64 1653 distro6 +e65-4 151.216.156.64/26 2a02:ed02:156b::/64 151.216.181.133/26 2a02:ed02:181c::133/64 1654 distro6 +e67-1 151.216.156.128/26 2a02:ed02:156c::/64 151.216.181.198/26 2a02:ed02:181d::198/64 1671 distro7 +e67-2 151.216.156.192/26 2a02:ed02:156d::/64 151.216.181.199/26 2a02:ed02:181d::199/64 1672 distro7 +e67-3 151.216.157.0/26 2a02:ed02:157a::/64 151.216.181.134/26 2a02:ed02:181c::134/64 1673 distro6 +e67-4 151.216.157.64/26 2a02:ed02:157b::/64 151.216.181.135/26 2a02:ed02:181c::135/64 1674 distro6 +e69-1 151.216.157.128/26 2a02:ed02:157c::/64 151.216.181.200/26 2a02:ed02:181d::200/64 1691 distro7 +e69-2 151.216.157.192/26 2a02:ed02:157d::/64 151.216.181.201/26 2a02:ed02:181d::201/64 1692 distro7 +e69-3 151.216.158.0/26 2a02:ed02:158a::/64 151.216.181.136/26 2a02:ed02:181c::136/64 1693 distro6 +e69-4 151.216.158.64/26 2a02:ed02:158b::/64 151.216.181.137/26 2a02:ed02:181c::137/64 1694 distro6 +e71-1 151.216.158.128/26 2a02:ed02:158c::/64 151.216.181.202/26 2a02:ed02:181d::202/64 1711 distro7 +e71-2 151.216.158.192/26 2a02:ed02:158d::/64 151.216.181.203/26 2a02:ed02:181d::203/64 1712 distro7 +e71-3 151.216.159.0/26 2a02:ed02:159a::/64 151.216.181.138/26 2a02:ed02:181c::138/64 1713 distro6 +e71-4 151.216.159.64/26 2a02:ed02:159b::/64 151.216.181.139/26 2a02:ed02:181c::139/64 1714 distro6 +e73-1 151.216.159.128/26 2a02:ed02:159c::/64 151.216.181.204/26 2a02:ed02:181d::204/64 1731 distro7 +e73-2 151.216.159.192/26 2a02:ed02:159d::/64 151.216.181.205/26 2a02:ed02:181d::205/64 1732 distro7 +e73-3 151.216.160.0/26 2a02:ed02:160a::/64 151.216.181.140/26 2a02:ed02:181c::140/64 1733 distro6 +e73-4 151.216.160.64/26 2a02:ed02:160b::/64 151.216.181.141/26 2a02:ed02:181c::141/64 1734 distro6 +e75-1 151.216.160.128/26 2a02:ed02:160c::/64 151.216.181.206/26 2a02:ed02:181d::206/64 1751 distro7 +e75-2 151.216.160.192/26 2a02:ed02:160d::/64 151.216.181.207/26 2a02:ed02:181d::207/64 1752 distro7 +e75-3 151.216.161.0/26 2a02:ed02:161a::/64 151.216.181.142/26 2a02:ed02:181c::142/64 1753 distro6 +e75-4 151.216.161.64/26 2a02:ed02:161b::/64 151.216.181.143/26 2a02:ed02:181c::143/64 1754 distro6 +e77-1 151.216.161.128/26 2a02:ed02:161c::/64 151.216.181.208/26 2a02:ed02:181d::208/64 1771 distro7 +e77-2 151.216.161.192/26 2a02:ed02:161d::/64 151.216.181.209/26 2a02:ed02:181d::209/64 1772 distro7 +e77-3 151.216.162.0/26 2a02:ed02:162a::/64 151.216.181.144/26 2a02:ed02:181c::144/64 1773 distro6 +e77-4 151.216.162.64/26 2a02:ed02:162b::/64 151.216.181.145/26 2a02:ed02:181c::145/64 1774 distro6 +e79-1 151.216.162.128/26 2a02:ed02:162c::/64 151.216.181.210/26 2a02:ed02:181d::210/64 1791 distro7 +e79-2 151.216.162.192/26 2a02:ed02:162d::/64 151.216.181.211/26 2a02:ed02:181d::211/64 1792 distro7 +e79-3 151.216.163.0/26 2a02:ed02:163a::/64 151.216.181.146/26 2a02:ed02:181c::146/64 1793 distro6 +e79-4 151.216.163.64/26 2a02:ed02:163b::/64 151.216.181.147/26 2a02:ed02:181c::147/64 1794 distro6 +e81-1 151.216.163.128/26 2a02:ed02:163c::/64 151.216.181.212/26 2a02:ed02:181d::212/64 1811 distro7 +e81-2 151.216.163.192/26 2a02:ed02:163d::/64 151.216.181.213/26 2a02:ed02:181d::213/64 1812 distro7 +e83-1 151.216.164.0/26 2a02:ed02:164a::/64 151.216.181.214/26 2a02:ed02:181d::214/64 1831 distro7 +e83-2 151.216.164.64/26 2a02:ed02:164b::/64 151.216.181.215/26 2a02:ed02:181d::215/64 1832 distro7 diff --git a/fap/httpd/httpd_root/.gitignore b/fap/httpd/httpd_root/.gitignore new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/fap/httpd/httpd_root/.gitignore diff --git a/fap/httpd/httpd_root/.htaccess b/fap/httpd/httpd_root/.htaccess new file mode 100755 index 0000000..17add11 --- /dev/null +++ b/fap/httpd/httpd_root/.htaccess @@ -0,0 +1,3 @@ +RewriteEngine on +RewriteRule ^files/(.+)$ x.php?mode=image&file=$1 [L] +RewriteRule ^tg-edge/(.+)$ x.php?mode=config&hostname=$1 [L] diff --git a/fap/httpd/httpd_root/ex2200.template b/fap/httpd/httpd_root/ex2200.template new file mode 100755 index 0000000..7f3bbaf --- /dev/null +++ b/fap/httpd/httpd_root/ex2200.template @@ -0,0 +1,288 @@ +system { +    host-name <?php echo $c['hostname']; ?>; +    auto-snapshot; +    time-zone Europe/Oslo; +    authentication-order [ tacplus password ]; +    root-authentication { +        encrypted-password "<sensored>"; +    } +    name-server { +        2a02:ed02:1ee7::66; +        2a02:ed02:1337::2; +    } +    login { +        user technet { +            uid 2000; +            class super-user; +            authentication { +                encrypted-password "<sensored>"; +            } +        } +    } +    services { +        ssh { +            root-login deny; +        } +        netconf { +            ssh; +        } +    } +    syslog { +        user * { +            any emergency; +        } +        file messages { +            any notice; +            authorization info; +        } +        file interactive-commands { +            interactive-commands any; +        } +    } +    ntp { +        server 2001:700:100:2::6; +    } +} + +chassis { +    aggregated-devices { +        ethernet { +            device-count 1; +        } +    } +    alarm { +        management-ethernet { +            link-down ignore; +        } +    } +} + +interfaces { +    interface-range edge-ports { +        description "Clients"; +        member-range ge-0/0/0 to ge-0/0/43; +        unit 0 { +            family ethernet-switching { +                port-mode access; +                vlan { +                    members clients; +                } +            } +        } +    } +    interface-range core-ports { +        description "<?php echo $c['distro_name']; ?> <?php echo $c['distro_phy_port']; ?>"; +        member-range ge-0/0/44 to ge-0/0/47; +        ether-options { +            802.3ad ae0; +        } +    } +    ae0 { +        description "<?php echo $c['distro_name']; ?> <?php echo $c['distro_phy_port']; ?>"; +        aggregated-ether-options { +            lacp { +                active; +            } +        } +        unit 0 { +            family ethernet-switching { +                port-mode trunk; +                vlan { +                    members [clients mgmt]; +                } +            } +        } +    } +    vlan { +        unit <?php echo $c['mgmt_vlan']; ?> { +            description "MGMT L3 interface"; +            family inet { +                filter { +                    input v4-mgmt; +                } +                address <?php echo $c['mgmt_v4_addr'] . '/' . $c['mgmt_v4_cidr']; ?>; +            } +            family inet6 { +                filter { +                    input v6-mgmt; +                } +                address <?php echo $c['mgmt_v6_addr'] . '/' . $c['mgmt_v6_cidr']; ?>; +            } +        } +    } +} + +snmp { +    community <sensored> { +        client-list-name mgmt; +    } +} + +policy-options { +    prefix-list v4-mgmt { +        /* nLogic jumpstation */ +        <sensored> +        /* Harald jumpstation */ +        <sensored> +        /* Tech colo-boks */ +        <sensored> +        /* NOC clients */ +        151.216.254.0/24; +        /* Servers */ +        185.12.59.0/26; +    } +    prefix-list v6-mgmt { +        /* Harald jumpstation */ +        <sensored> +        /* nLogic jumpstation */ +        <sensored> +        /* Tech colo-boks */ +        <sensored> +        /* NOC clients */ +        2a02:ed02:254::/64; +        /* Servers */ +        2a02:ed02:1337::/64; +    } +    prefix-list mgmt { +        /* nLogic jumpstation */ +        <sensored> +        /* Harald jumpstation */ +        <sensored> +        /* Tech colo-boks */ +        <sensored> +        /* NOC clients */ +        151.216.254.0/24; +        /* Servers */ +        185.12.59.0/26; +        /* Harald jumpstation */ +        <sensored> +        /* nLogic jumpstation */ +        <sensored> +        /* Tech colo-boks */ +        <sensored> +        /* NOC clients */ +        2a02:ed02:254::/64; +        /* Servers */ +        2a02:ed02:1337::/64; +    } +} +firewall { +    family inet { +        filter v4-mgmt { +            term accept-ssh { +                from { +                    source-prefix-list { +                        v4-mgmt; +                    } +                    destination-port 22; +                } +                then { +                    accept; +                } +            } +            term discard-ssh { +                from { +                    destination-port 22; +                } +                then { +                    discard; +                } +            } +            term accept-all { +                then { +                    accept; +                } +            } +        } +    } +    family inet6 { +        filter v6-mgmt { +            term accept-ssh { +                from { +                    source-prefix-list { +                        v6-mgmt; +                    } +                    destination-port 22; +                } +                then { +                    accept; +                } +            } +            term discard-ssh { +                from { +                    destination-port 22; +                } +                then { +                    discard; +                } +            } +            term accept-all { +                then { + +                    accept; +                } +            } +        } +    } +} + +protocols { +    sflow { +        sample-rate { +            ingress 10000; +            egress 10000; +        } +        collector <sensored>; +        interfaces edge-ports; +        interfaces core-ports; +    } +    igmp-snooping { +        vlan all { +            version 3; +            immediate-leave; +        } +    } +    mld-snooping { +        vlan all { +            version 2; +            immediate-leave; +        } +    } +    rstp { +        bridge-priority 8k; +        interface edge-ports { +            edge; +            no-root-port; +        } +    } +    lldp { +        interface ae0.0 +    } +} + +vlans { +    clients { +        vlan-id <?php echo $c['traffic_vlan']; ?>; +    } +    mgmt { +        vlan-id <?php echo $c['mgmt_vlan']; ?>; +        l3-interface vlan.<?php echo $c['mgmt_vlan']; ?>; +    } +} + +routing-options { +    rib inet.0 { +        static { +            route 0.0.0.0/0 { +                next-hop <?php echo $c['mgmt_v4_gw']; ?>; +            } +        } +    } +    rib inet6.0 { +        static { +            route ::/0 { +                next-hop <?php echo $c['mgmt_v6_gw']; ?>; +            } +        } +    } +} diff --git a/fap/httpd/httpd_root/ex2200_secure.template b/fap/httpd/httpd_root/ex2200_secure.template new file mode 100755 index 0000000..de9bd3b --- /dev/null +++ b/fap/httpd/httpd_root/ex2200_secure.template @@ -0,0 +1,312 @@ +system { +    host-name <?php echo $c['hostname']; ?>; +    auto-snapshot; +    time-zone Europe/Oslo; +    authentication-order [ tacplus password ]; +    root-authentication { +        encrypted-password "<sensored>"; +    } +    name-server { +        2a02:ed02:1ee7::66; +        2a02:ed02:1337::2; +    } +    login { +        user technet { +            uid 2000; +            class super-user; +            authentication { +                encrypted-password "<sensored>"; +            } +        } +    } +    services { +        ssh { +            root-login deny; +        } +        netconf { +            ssh; +        } +    } +    syslog { +        user * { +            any emergency; +        } +        file messages { +            any notice; +            authorization info; +        } +        file interactive-commands { +            interactive-commands any; +        } +    } +    ntp { +        server 2001:700:100:2::6; +    } +} + +chassis { +    aggregated-devices { +        ethernet { +            device-count 1; +        } +    } +    alarm { +        management-ethernet { +            link-down ignore; +        } +    } +} + +interfaces { +    interface-range edge-ports { +        description "Clients"; +        member-range ge-0/0/0 to ge-0/0/43; +        unit 0 { +            family ethernet-switching { +                port-mode access; +                vlan { +                    members clients; +                } +            } +        } +    } +    interface-range core-ports { +        description "<?php echo $c['distro_name']; ?> <?php echo $c['distro_phy_port']; ?>"; +        member-range ge-0/0/44 to ge-0/0/47; +        ether-options { +            802.3ad ae0; +        } +    } +    ae0 { +        description "<?php echo $c['distro_name']; ?> <?php echo $c['distro_phy_port']; ?>"; +        aggregated-ether-options { +            lacp { +                active; +            } +        } +        unit 0 { +            family ethernet-switching { +                port-mode trunk; +                vlan { +                    members [clients mgmt]; +                } +            } +        } +    } +    vlan { +        unit <?php echo $c['mgmt_vlan']; ?> { +            description "MGMT L3 interface"; +            family inet { +                filter { +                    input v4-mgmt; +                } +                address <?php echo $c['mgmt_v4_addr'] . '/' . $c['mgmt_v4_cidr']; ?>; +            } +            family inet6 { +                filter { +                    input v6-mgmt; +                } +                address <?php echo $c['mgmt_v6_addr'] . '/' . $c['mgmt_v6_cidr']; ?>; +            } +        } +    } +} + +snmp { +    community <sensored> { +        client-list-name mgmt; +    } +} + +policy-options { +    prefix-list v4-mgmt { +        /* nLogic jumpstation */ +        <sensored> +        /* Harald jumpstation */ +        <sensored> +        /* Tech colo-boks */ +        <sensored> +        /* NOC clients */ +        151.216.254.0/24; +        /* Servers */ +        185.12.59.0/26; +    } +    prefix-list v6-mgmt { +        /* Harald jumpstation */ +        <sensored> +        /* nLogic jumpstation */ +        <sensored> +        /* Tech colo-boks */ +        <sensored> +        /* NOC clients */ +        2a02:ed02:254::/64; +        /* Servers */ +        2a02:ed02:1337::/64; +    } +    prefix-list mgmt { +        /* nLogic jumpstation */ +        <sensored> +        /* Harald jumpstation */ +        <sensored> +        /* Tech colo-boks */ +        <sensored> +        /* NOC clients */ +        151.216.254.0/24; +        /* Servers */ +        185.12.59.0/26; +        /* Harald jumpstation */ +        <sensored> +        /* nLogic jumpstation */ +        <sensored> +        /* Tech colo-boks */ +        <sensored> +        /* NOC clients */ +        2a02:ed02:254::/64; +        /* Servers */ +        2a02:ed02:1337::/64; +    } +} +firewall { +    family inet { +        filter v4-mgmt { +            term accept-ssh { +                from { +                    source-prefix-list { +                        v4-mgmt; +                    } +                    destination-port 22; +                } +                then { +                    accept; +                } +            } +            term discard-ssh { +                from { +                    destination-port 22; +                } +                then { +                    discard; +                } +            } +            term accept-all { +                then { +                    accept; +                } +            } +        } +    } +    family inet6 { +        filter v6-mgmt { +            term accept-ssh { +                from { +                    source-prefix-list { +                        v6-mgmt; +                    } +                    destination-port 22; +                } +                then { +                    accept; +                } +            } +            term discard-ssh { +                from { +                    destination-port 22; +                } +                then { +                    discard; +                } +            } +            term accept-all { +                then { + +                    accept; +                } +            } +        } +    } +} + +protocols { +    sflow { +        sample-rate { +            ingress 10000; +            egress 10000; +        } +        collector 91.209.30.12; +        interfaces edge-ports; +        interfaces core-ports; +    } +    igmp-snooping { +        vlan all { +            version 3; +            immediate-leave; +        } +    } +    mld-snooping { +        vlan all { +            version 2; +            immediate-leave; +        } +    } +    rstp { +        bridge-priority 8k; +        interface edge-ports { +            edge; +            no-root-port; +        } +    } +    lldp { +        interface ae0.0 +    } +} +ethernet-switching-options { +    secure-access-port { +        interface edge-ports { +            no-dhcp-trusted; +        } +        vlan clients { +            arp-inspection; +            examine-dhcp; +            examine-dhcpv6; +            neighbor-discovery-inspection; +            ip-source-guard; +            ipv6-source-guard; +            dhcp-option82; +            dhcpv6-option18 { +                use-option-82; +            } +        } +        ipv6-source-guard-sessions { +            max-number 128; +        } +    } +    storm-control { +        interface all; +    } +} +vlans { +    clients { +        vlan-id <?php echo $c['traffic_vlan']; ?>; +    } +    mgmt { +        vlan-id <?php echo $c['mgmt_vlan']; ?>; +        l3-interface vlan.<?php echo $c['mgmt_vlan']; ?>; +    } +} + +routing-options { +    rib inet.0 { +        static { +            route 0.0.0.0/0 { +                next-hop <?php echo $c['mgmt_v4_gw']; ?>; +            } +        } +    } +    rib inet6.0 { +        static { +            route ::/0 { +                next-hop <?php echo $c['mgmt_v6_gw']; ?>; +            } +        } +    } +} diff --git a/fap/httpd/httpd_root/pg_connect.php b/fap/httpd/httpd_root/pg_connect.php new file mode 100644 index 0000000..6808cb0 --- /dev/null +++ b/fap/httpd/httpd_root/pg_connect.php @@ -0,0 +1,6 @@ +<?php +    if(!$dbconn = pg_connect("host=localhost dbname=fap user=fap password=<sensored>")){ +        echo 'Could not connect:' . pg_last_error(); +        exit(); +    } +?> diff --git a/fap/httpd/httpd_root/x.php b/fap/httpd/httpd_root/x.php new file mode 100755 index 0000000..dda20f2 --- /dev/null +++ b/fap/httpd/httpd_root/x.php @@ -0,0 +1,67 @@ +<?php +    if(isset($_GET['mode'])){ +        function log_to_file($text){ +            $out = date('c') . ' - ' . $_SERVER['REMOTE_ADDR'] . ' - ' . $text . "\n"; +            file_put_contents('../../logs/httpd.log', $out, FILE_APPEND); +        } + +        if($_GET['mode'] === 'config'){ +            # LASTE NED CONFIG +            /* +            header('Content-Description: File Transfer'); +            header('Content-Type: application/octet-stream'); +            header('Content-Disposition: attachment; filename='.basename($file)); +            header('Content-Length: ' . filesize('../files/' . $_GET['file'])); +            */ +             +            # File containing pg_connect() with DB credentials - excluded for GIT safety +            require 'pg_connect.php'; +             +             +            $template = 'ex2200.template'; # default template +             +            $pieces = explode('/', $_GET['hostname']); +            if(count($pieces) == 2){ +                $_GET['hostname'] = $pieces[0]; +                if($pieces[1] == 'secure'){ +                    $template = 'ex2200_secure.template'; +                } +            } + + +            // Performing SQL query +            $query = 'SELECT * FROM switches WHERE hostname = \'' . $_GET['hostname'] . '\''; +            $result = pg_query($query) or die('Query failed: ' . pg_last_error()); +            if(pg_num_rows($result) == 1){ +                $c = pg_fetch_assoc($result); +                include $template; +                log_to_file('Served ' . $template . ' to client'); +            }else{ +                log_to_file('Hostname not found in DB'); +                header("HTTP/1.0 404 Not Found"); +                exit(); +            } +             +        }elseif($_GET['mode'] === 'image'){ +            if(isset($_GET['file']) && is_readable('../files/' . $_GET['file'])){ +                # SEND IMAGE +                header('Content-Description: File Transfer'); +                header('Content-Type: application/octet-stream'); +                header('Content-Disposition: attachment; filename='.basename($file)); +                header('Content-Length: ' . filesize('../files/' . $_GET['file'])); +                 +                $time_start = microtime(true); +                $bytes = readfile('../files/' . $_GET['file']); +                $time_end = microtime(true); +                $time = $time_end - $time_start; +                 +                log_to_file('Transferred "' . $_GET['file'] . '" in ' . round($time, 2) . 'sec (' . round(($bytes/$time)/(1024*128), 2) . 'Mbit/s)'); +            }else{ +                log_to_file('404 - File not found'); +                header("HTTP/1.1 404 Not Found"); +                exit(); +            } + +        } +    } +?> diff --git a/fap/logs/httpd.log b/fap/logs/httpd.log new file mode 100644 index 0000000..8571480 --- /dev/null +++ b/fap/logs/httpd.log @@ -0,0 +1,667 @@ +2015-03-30T08:01:36+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-30T08:01:43+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-30T00:10:24+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-30T00:10:26+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-30T00:10:56+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-30T00:10:59+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-30T00:12:12+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-30T00:12:25+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-30T00:36:39+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-30T00:36:57+02:00 - 151.216.254.19 - Served ex2200.template to client +2015-03-30T00:37:06+02:00 - 151.216.183.130 - Served ex2200.template to client +2015-03-30T00:37:40+02:00 - 151.216.254.19 - Served ex2200.template to client +2015-03-30T00:38:13+02:00 - 150.70.97.117 - Served ex2200.template to client +2015-03-30T00:39:15+02:00 - 150.70.173.10 - Served ex2200.template to client +2015-03-30T00:42:10+02:00 - 151.216.254.19 - Served ex2200.template to client +2015-03-30T00:46:07+02:00 - 151.216.254.19 - Served ex2200.template to client +2015-03-30T00:47:24+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-30T00:47:26+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-30T00:47:43+02:00 - 151.216.183.130 - Served ex2200.template to client +2015-03-30T00:53:45+02:00 - 151.216.254.32 - Hostname not found in DB +2015-03-30T00:53:54+02:00 - 151.216.254.32 - Hostname not found in DB +2015-03-30T00:54:33+02:00 - 151.216.254.32 - Hostname not found in DB +2015-03-30T00:54:42+02:00 - 151.216.254.32 - Hostname not found in DB +2015-03-30T00:54:47+02:00 - 151.216.254.32 - Hostname not found in DB +2015-03-30T01:12:55+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-30T01:25:53+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-30T01:25:55+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-30T01:25:56+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-30T01:26:15+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-30T01:26:17+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-30T01:27:17+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-30T01:27:23+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-30T01:27:45+02:00 - 151.216.254.32 - Served ex2200_secure.template to client +2015-03-30T01:27:49+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-30T01:31:37+02:00 - 151.216.254.19 - Served ex2200_secure.template to client +2015-03-30T01:31:46+02:00 - 151.216.183.130 - Served ex2200_secure.template to client +2015-03-30T01:33:11+02:00 - 150.70.97.99 - Served ex2200_secure.template to client +2015-03-30T02:39:48+02:00 - 151.216.254.19 - Served ex2200.template to client +2015-03-30T02:42:44+02:00 - 151.216.254.19 - Served ex2200.template to client +2015-03-30T15:33:26+02:00 - 151.216.254.200 - Served ex2200_secure.template to client +2015-03-30T15:33:26+02:00 - 151.216.254.200 - Served ex2200_secure.template to client +2015-03-30T15:35:26+02:00 - 150.70.173.45 - Served ex2200_secure.template to client +2015-03-30T15:41:53+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-30T15:41:58+02:00 - 151.216.254.32 - Transferred "distro0.conf" in 0sec (~0Mbit/s) +2015-03-30T15:42:31+02:00 - 151.216.254.200 - Transferred "distro0.conf" in 0sec (~0Mbit/s) +2015-03-30T15:43:07+02:00 - 151.216.128.43 - Transferred "distro0.conf" in 0sec (~0Mbit/s) +2015-03-30T15:43:11+02:00 - 150.70.173.53 - Transferred "distro0.conf" in 0sec (~0Mbit/s) +2015-03-30T15:43:42+02:00 - 151.216.128.43 - Transferred "distro0.conf" in 0sec (~0Mbit/s) +2015-03-30T15:48:06+02:00 - 151.216.128.43 - Transferred "distro0.conf" in 0sec (~0Mbit/s) +2015-03-30T15:55:00+02:00 - 151.216.128.43 - Transferred "distro0.conf" in 0sec (~0Mbit/s) +2015-03-30T16:21:28+02:00 - 151.216.254.32 - Transferred "distro0.conf" in 0sec (~0Mbit/s) +2015-03-30T16:29:06+02:00 - 151.216.128.43 - Transferred "distro0.conf" in 0sec (~0Mbit/s) +2015-03-30T16:56:52+02:00 - 151.216.180.3 - Served ex2200.template to client +2015-03-30T16:56:53+02:00 - 151.216.180.4 - Served ex2200.template to client +2015-03-30T16:56:55+02:00 - 151.216.180.2 - Served ex2200.template to client +2015-03-30T16:59:18+02:00 - 151.216.180.4 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 144.16sec (~5.8715227044515Mbit/s) +2015-03-30T16:59:19+02:00 - 151.216.180.3 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 145.77sec (~5.806672930464Mbit/s) +2015-03-30T16:59:23+02:00 - 151.216.180.2 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.51sec (~5.7381785172106Mbit/s) +2015-03-30T17:45:52+02:00 - 151.216.128.39 - Transferred "distro0.conf" in 0sec (~1925.07Mbit/s) +2015-03-30T17:46:04+02:00 - 151.216.128.39 - Transferred "distro1.conf" in 0sec (~2592.55Mbit/s) +2015-03-30T17:52:57+02:00 - 151.216.254.32 - Transferred "distro0.conf" in 0sec (~2094.98Mbit/s) +2015-03-30T17:53:53+02:00 - 151.216.128.43 - Transferred "distro0.conf" in 0sec (~2013.31Mbit/s) +2015-03-30T18:02:19+02:00 - 151.216.254.32 - Transferred "distro0.conf" in 0sec (~1821.57Mbit/s) +2015-03-30T18:03:50+02:00 - 151.216.128.43 - Transferred "distro0.conf" in 0sec (2150.91Mbit/s) +2015-03-30T18:53:02+02:00 - 151.216.180.81 - Served ex2200.template to client +2015-03-30T18:55:28+02:00 - 151.216.180.81 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 145.69sec (5.81Mbit/s) +2015-03-30T19:06:21+02:00 - 151.216.128.43 - Transferred "distro0.conf" in 0sec (2123.73Mbit/s) +2015-03-30T19:06:58+02:00 - 151.216.128.39 - Transferred "distro1.conf" in 0sec (2464.54Mbit/s) +2015-03-30T19:09:53+02:00 - 151.216.128.39 - Transferred "distro1.conf" in 0sec (2561.39Mbit/s) +2015-03-30T19:43:30+02:00 - 151.216.128.41 - Transferred "distro2.conf" in 0sec (1562.09Mbit/s) +2015-03-30T19:47:40+02:00 - 151.216.180.76 - Served ex2200.template to client +2015-03-30T19:48:03+02:00 - 151.216.180.75 - Served ex2200.template to client +2015-03-30T19:49:12+02:00 - 151.216.180.73 - Served ex2200.template to client +2015-03-30T19:49:32+02:00 - 151.216.180.76 - Served ex2200.template to client +2015-03-30T19:50:34+02:00 - 151.216.180.75 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 150.92sec (5.61Mbit/s) +2015-03-30T19:51:35+02:00 - 151.216.180.84 - Served ex2200.template to client +2015-03-30T19:51:38+02:00 - 151.216.180.73 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 146.03sec (5.8Mbit/s) +2015-03-30T19:52:03+02:00 - 151.216.180.76 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 149.89sec (5.65Mbit/s) +2015-03-30T19:52:39+02:00 - 151.216.180.69 - Served ex2200.template to client +2015-03-30T19:53:30+02:00 - 151.216.180.83 - Served ex2200.template to client +2015-03-30T19:53:45+02:00 - 151.216.180.67 - Served ex2200.template to client +2015-03-30T19:54:11+02:00 - 151.216.180.84 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 155.06sec (5.46Mbit/s) +2015-03-30T19:55:07+02:00 - 151.216.180.69 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.25sec (5.75Mbit/s) +2015-03-30T19:55:37+02:00 - 151.216.180.82 - Served ex2200.template to client +2015-03-30T19:55:44+02:00 - 151.216.180.74 - Served ex2200.template to client +2015-03-30T19:56:12+02:00 - 151.216.180.83 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 162.23sec (5.22Mbit/s) +2015-03-30T19:56:14+02:00 - 151.216.180.67 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.83sec (5.73Mbit/s) +2015-03-30T19:56:22+02:00 - 151.216.180.80 - Served ex2200.template to client +2015-03-30T19:57:07+02:00 - 151.216.180.79 - Served ex2200.template to client +2015-03-30T19:58:22+02:00 - 151.216.180.74 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 157.61sec (5.37Mbit/s) +2015-03-30T19:58:31+02:00 - 151.216.180.82 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 172.86sec (4.9Mbit/s) +2015-03-30T19:58:48+02:00 - 151.216.180.80 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 145.61sec (5.81Mbit/s) +2015-03-30T19:59:34+02:00 - 151.216.180.79 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 145.59sec (5.81Mbit/s) +2015-03-30T20:05:35+02:00 - 151.216.180.71 - Served ex2200.template to client +2015-03-30T20:07:06+02:00 - 151.216.254.32 - Transferred "fap.sql" in 0sec (2289Mbit/s) +2015-03-30T20:08:03+02:00 - 151.216.180.71 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.28sec (5.75Mbit/s) +2015-03-30T20:08:24+02:00 - 151.216.180.85 - Served ex2200.template to client +2015-03-30T20:08:25+02:00 - 151.216.180.86 - Served ex2200.template to client +2015-03-30T20:10:51+02:00 - 151.216.180.85 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 145.65sec (5.81Mbit/s) +2015-03-30T20:10:52+02:00 - 151.216.180.86 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 146.59sec (5.77Mbit/s) +2015-03-30T21:02:13+02:00 - 151.216.128.41 - Transferred "distro0.conf" in 0sec (1750.68Mbit/s) +2015-03-30T21:02:24+02:00 - 151.216.128.41 - Transferred "distro2.conf" in 0sec (1640.49Mbit/s) +2015-03-30T21:13:20+02:00 - 151.216.128.37 - Transferred "distro3.conf" in 0sec (1923.68Mbit/s) +2015-03-30T21:21:24+02:00 - 151.216.128.35 - Transferred "distro5.conf" in 0sec (2082.34Mbit/s) +2015-03-30T21:29:05+02:00 - 151.216.128.33 - Transferred "distro4.conf" in 0sec (2072.46Mbit/s) +2015-03-30T21:30:04+02:00 - 151.216.128.35 - Transferred "distro5.conf" in 0sec (1884.14Mbit/s) +2015-03-30T21:32:25+02:00 - 151.216.128.31 - Transferred "distro6.conf" in 0sec (1875.11Mbit/s) +2015-03-30T21:33:25+02:00 - 151.216.128.29 - Transferred "distro7.conf" in 0sec (2184.1Mbit/s) +2015-03-30T21:53:03+02:00 - 151.216.180.138 - Served ex2200.template to client +2015-03-30T21:55:33+02:00 - 151.216.180.138 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 149.29sec (5.67Mbit/s) +2015-03-30T22:00:33+02:00 - 151.216.180.201 - Served ex2200.template to client +2015-03-30T22:01:20+02:00 - 151.216.180.139 - Served ex2200.template to client +2015-03-30T22:01:27+02:00 - 151.216.180.200 - Served ex2200.template to client +2015-03-30T22:02:13+02:00 - 151.216.180.198 - Served ex2200.template to client +2015-03-30T22:03:00+02:00 - 151.216.180.201 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 146.64sec (5.77Mbit/s) +2015-03-30T22:03:48+02:00 - 151.216.180.139 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.75sec (5.73Mbit/s) +2015-03-30T22:03:54+02:00 - 151.216.180.200 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 146.38sec (5.78Mbit/s) +2015-03-30T22:04:38+02:00 - 151.216.180.198 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 145.1sec (5.83Mbit/s) +2015-03-30T22:05:02+02:00 - 151.216.180.138 - Served ex2200.template to client +2015-03-30T22:07:32+02:00 - 151.216.180.138 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 149.03sec (5.68Mbit/s) +2015-03-30T22:07:35+02:00 - 151.216.180.141 - Served ex2200.template to client +2015-03-30T22:10:04+02:00 - 151.216.180.141 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.29sec (5.71Mbit/s) +2015-03-30T22:10:41+02:00 - 151.216.180.140 - Served ex2200.template to client +2015-03-30T22:13:11+02:00 - 151.216.180.140 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.87sec (5.69Mbit/s) +2015-03-30T22:13:12+02:00 - 151.216.180.132 - Served ex2200.template to client +2015-03-30T22:14:04+02:00 - 151.216.180.130 - Served ex2200.template to client +2015-03-30T22:14:59+02:00 - 151.216.180.133 - Served ex2200.template to client +2015-03-30T22:15:33+02:00 - 151.216.180.135 - Served ex2200.template to client +2015-03-30T22:15:54+02:00 - 151.216.180.132 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 161.39sec (5.24Mbit/s) +2015-03-30T22:16:38+02:00 - 151.216.180.130 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 153.35sec (5.52Mbit/s) +2015-03-30T22:17:55+02:00 - 151.216.180.133 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 176.05sec (4.81Mbit/s) +2015-03-30T22:18:18+02:00 - 151.216.180.135 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 164.34sec (5.15Mbit/s) +2015-03-30T22:18:47+02:00 - 151.216.180.136 - Served ex2200.template to client +2015-03-30T22:21:14+02:00 - 151.216.180.136 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 146.65sec (5.77Mbit/s) +2015-03-30T22:22:23+02:00 - 151.216.180.131 - Served ex2200.template to client +2015-03-30T22:25:23+02:00 - 151.216.180.131 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 178.4sec (4.74Mbit/s) +2015-03-30T22:27:06+02:00 - 151.216.180.134 - Served ex2200.template to client +2015-03-30T22:29:34+02:00 - 151.216.180.134 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.06sec (5.72Mbit/s) +2015-03-30T23:18:19+02:00 - 151.216.180.207 - Served ex2200.template to client +2015-03-30T23:20:01+02:00 - 151.216.180.204 - Served ex2200.template to client +2015-03-30T23:20:49+02:00 - 151.216.180.207 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 150.01sec (5.64Mbit/s) +2015-03-30T23:22:24+02:00 - 151.216.180.205 - Served ex2200.template to client +2015-03-30T23:22:29+02:00 - 151.216.180.204 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.54sec (5.74Mbit/s) +2015-03-30T23:24:54+02:00 - 151.216.180.205 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.91sec (5.68Mbit/s) +2015-03-30T23:25:12+02:00 - 151.216.180.194 - Served ex2200.template to client +2015-03-30T23:27:43+02:00 - 151.216.180.194 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 150.22sec (5.63Mbit/s) +2015-03-30T23:28:34+02:00 - 151.216.181.132 - Served ex2200.template to client +2015-03-30T23:28:52+02:00 - 151.216.180.195 - Served ex2200.template to client +2015-03-30T23:29:05+02:00 - 151.216.181.132 - Served ex2200.template to client +2015-03-30T23:30:51+02:00 - 151.216.180.206 - Served ex2200.template to client +2015-03-30T23:31:21+02:00 - 151.216.180.195 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.95sec (5.68Mbit/s) +2015-03-30T23:33:19+02:00 - 151.216.180.206 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.9sec (5.72Mbit/s) +2015-03-30T23:34:57+02:00 - 151.216.181.133 - Served ex2200.template to client +2015-03-30T23:35:11+02:00 - 151.216.181.132 - Served ex2200.template to client +2015-03-30T23:36:26+02:00 - 151.216.180.199 - Served ex2200.template to client +2015-03-30T23:37:28+02:00 - 151.216.181.133 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 150.24sec (5.63Mbit/s) +2015-03-30T23:37:41+02:00 - 151.216.181.132 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 149.41sec (5.67Mbit/s) +2015-03-30T23:38:35+02:00 - 151.216.180.197 - Served ex2200.template to client +2015-03-30T23:38:45+02:00 - 151.216.181.131 - Served ex2200.template to client +2015-03-30T23:38:56+02:00 - 151.216.180.199 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 149.71sec (5.65Mbit/s) +2015-03-30T23:39:00+02:00 - 151.216.181.130 - Served ex2200.template to client +2015-03-30T23:40:44+02:00 - 151.216.180.196 - Served ex2200.template to client +2015-03-30T23:41:06+02:00 - 151.216.180.197 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 150.7sec (5.62Mbit/s) +2015-03-30T23:41:14+02:00 - 151.216.181.131 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.73sec (5.73Mbit/s) +2015-03-30T23:41:29+02:00 - 151.216.181.130 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.52sec (5.7Mbit/s) +2015-03-30T23:42:25+02:00 - 151.216.254.32 - Transferred "rs1.backstage.conf" in 0sec (429.68Mbit/s) +2015-03-30T23:43:13+02:00 - 151.216.180.196 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 149.09sec (5.68Mbit/s) +2015-03-30T23:45:12+02:00 - 151.216.180.203 - Served ex2200.template to client +2015-03-30T23:46:42+02:00 - 151.216.180.202 - Served ex2200.template to client +2015-03-30T23:47:17+02:00 - 151.216.254.203 - Transferred "rs1.backstage.conf" in 0sec (571.5Mbit/s) +2015-03-30T23:47:40+02:00 - 151.216.180.203 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.52sec (5.74Mbit/s) +2015-03-30T23:48:57+02:00 - 151.216.181.13 - Served ex2200.template to client +2015-03-30T23:49:11+02:00 - 151.216.180.202 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.78sec (5.73Mbit/s) +2015-03-30T23:51:25+02:00 - 151.216.181.13 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.59sec (5.74Mbit/s) +2015-03-30T23:52:50+02:00 - 151.216.181.5 - Served ex2200.template to client +2015-03-30T23:53:06+02:00 - 151.216.181.10 - Served ex2200.template to client +2015-03-30T23:53:45+02:00 - 151.216.181.12 - Served ex2200.template to client +2015-03-30T23:53:45+02:00 - 151.216.181.4 - Served ex2200.template to client +2015-03-30T23:53:57+02:00 - 151.216.181.3 - Served ex2200.template to client +2015-03-30T23:54:16+02:00 - 151.216.180.208 - Served ex2200.template to client +2015-03-30T23:54:28+02:00 - 151.216.181.2 - Served ex2200.template to client +2015-03-30T23:54:31+02:00 - 151.216.180.209 - Served ex2200.template to client +2015-03-30T23:55:32+02:00 - 151.216.181.10 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 145.12sec (5.83Mbit/s) +2015-03-30T23:55:34+02:00 - 151.216.254.203 - Transferred "rs1.backstage.conf" in 0sec (526.75Mbit/s) +2015-03-30T23:55:39+02:00 - 151.216.181.5 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 168.81sec (5.01Mbit/s) +2015-03-30T23:56:25+02:00 - 151.216.181.3 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.86sec (5.72Mbit/s) +2015-03-30T23:56:34+02:00 - 151.216.181.12 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 168.13sec (5.03Mbit/s) +2015-03-30T23:56:42+02:00 - 151.216.128.21 - Transferred "rs1.backstage.conf" in 0sec (429.68Mbit/s) +2015-03-30T23:56:43+02:00 - 151.216.181.4 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 176.63sec (4.79Mbit/s) +2015-03-30T23:56:56+02:00 - 151.216.181.2 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.48sec (5.74Mbit/s) +2015-03-30T23:57:02+02:00 - 151.216.180.208 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 164.93sec (5.13Mbit/s) +2015-03-30T23:57:13+02:00 - 151.216.181.11 - Served ex2200.template to client +2015-03-30T23:57:25+02:00 - 151.216.180.209 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 173.05sec (4.89Mbit/s) +2015-03-30T23:58:12+02:00 - 151.216.181.9 - Served ex2200.template to client +2015-03-31T00:00:06+02:00 - 151.216.181.11 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 172.59sec (4.9Mbit/s) +2015-03-31T00:00:14+02:00 - 151.216.181.8 - Served ex2200.template to client +2015-03-31T00:00:46+02:00 - 151.216.128.21 - Transferred "rs1.backstage.conf" in 0sec (631.34Mbit/s) +2015-03-31T00:01:00+02:00 - 151.216.181.7 - Served ex2200.template to client +2015-03-31T00:01:08+02:00 - 151.216.181.9 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 175.41sec (4.83Mbit/s) +2015-03-31T00:01:23+02:00 - 151.216.181.6 - Served ex2200.template to client +2015-03-31T00:02:40+02:00 - 151.216.181.8 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 145.22sec (5.83Mbit/s) +2015-03-31T00:02:49+02:00 - 151.216.181.15 - Served ex2200.template to client +2015-03-31T00:03:30+02:00 - 151.216.181.7 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 149.02sec (5.68Mbit/s) +2015-03-31T00:03:52+02:00 - 151.216.181.6 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.05sec (5.72Mbit/s) +2015-03-31T00:04:41+02:00 - 151.216.181.134 - Served ex2200.template to client +2015-03-31T00:05:30+02:00 - 151.216.181.15 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 159.57sec (5.3Mbit/s) +2015-03-31T00:05:36+02:00 - 151.216.181.17 - Served ex2200.template to client +2015-03-31T00:06:50+02:00 - 151.216.181.16 - Served ex2200.template to client +2015-03-31T00:07:08+02:00 - 151.216.181.134 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.07sec (5.76Mbit/s) +2015-03-31T00:07:33+02:00 - 151.216.181.18 - Served ex2200.template to client +2015-03-31T00:08:03+02:00 - 151.216.181.17 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 146.12sec (5.79Mbit/s) +2015-03-31T00:08:51+02:00 - 151.216.181.19 - Served ex2200.template to client +2015-03-31T00:09:33+02:00 - 151.216.181.16 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 161.64sec (5.24Mbit/s) +2015-03-31T00:09:43+02:00 - 151.216.181.139 - Served ex2200.template to client +2015-03-31T00:10:01+02:00 - 151.216.181.135 - Served ex2200.template to client +2015-03-31T00:10:17+02:00 - 151.216.181.14 - Served ex2200.template to client +2015-03-31T00:10:31+02:00 - 151.216.181.18 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 176.87sec (4.79Mbit/s) +2015-03-31T00:11:13+02:00 - 151.216.181.138 - Served ex2200.template to client +2015-03-31T00:11:28+02:00 - 151.216.181.19 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 156.67sec (5.4Mbit/s) +2015-03-31T00:11:41+02:00 - 151.216.181.83 - Served ex2200.template to client +2015-03-31T00:12:43+02:00 - 151.216.181.135 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 160.91sec (5.26Mbit/s) +2015-03-31T00:12:44+02:00 - 151.216.181.14 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 146.26sec (5.79Mbit/s) +2015-03-31T00:12:48+02:00 - 151.216.181.139 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 184.22sec (4.59Mbit/s) +2015-03-31T00:13:23+02:00 - 151.216.181.82 - Served ex2200.template to client +2015-03-31T00:13:40+02:00 - 151.216.181.138 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 146.63sec (5.77Mbit/s) +2015-03-31T00:14:10+02:00 - 151.216.181.83 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.42sec (5.7Mbit/s) +2015-03-31T00:15:07+02:00 - 151.216.181.140 - Served ex2200.template to client +2015-03-31T00:15:54+02:00 - 151.216.181.82 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 150.1sec (5.64Mbit/s) +2015-03-31T00:17:35+02:00 - 151.216.181.140 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.53sec (5.74Mbit/s) +2015-03-31T00:18:38+02:00 - 151.216.181.141 - Served ex2200.template to client +2015-03-31T00:21:08+02:00 - 151.216.181.141 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.82sec (5.69Mbit/s) +2015-03-31T00:21:13+02:00 - 151.216.181.195 - Served ex2200.template to client +2015-03-31T00:22:48+02:00 - 151.216.181.196 - Served ex2200.template to client +2015-03-31T00:23:10+02:00 - 151.216.181.81 - Served ex2200.template to client +2015-03-31T00:23:40+02:00 - 151.216.181.195 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 146.11sec (5.79Mbit/s) +2015-03-31T00:24:08+02:00 - 151.216.181.80 - Served ex2200.template to client +2015-03-31T00:25:08+02:00 - 151.216.181.78 - Served ex2200.template to client +2015-03-31T00:25:16+02:00 - 151.216.181.196 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.02sec (5.76Mbit/s) +2015-03-31T00:25:36+02:00 - 151.216.254.32 - Transferred "rs1.backstage.conf" in 0sec (571.5Mbit/s) +2015-03-31T00:25:56+02:00 - 151.216.181.143 - Served ex2200.template to client +2015-03-31T00:25:58+02:00 - 151.216.181.81 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 168.12sec (5.03Mbit/s) +2015-03-31T00:26:17+02:00 - 151.216.181.76 - Served ex2200.template to client +2015-03-31T00:26:37+02:00 - 151.216.181.80 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.59sec (5.7Mbit/s) +2015-03-31T00:26:42+02:00 - 151.216.181.77 - Served ex2200.template to client +2015-03-31T00:26:43+02:00 - 151.216.181.194 - Served ex2200.template to client +2015-03-31T00:27:30+02:00 - 151.216.181.197 - Served ex2200.template to client +2015-03-31T00:27:36+02:00 - 151.216.181.78 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 146.78sec (5.77Mbit/s) +2015-03-31T00:28:22+02:00 - 151.216.181.143 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 145.06sec (5.84Mbit/s) +2015-03-31T00:28:44+02:00 - 151.216.181.76 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 146.69sec (5.77Mbit/s) +2015-03-31T00:29:12+02:00 - 151.216.181.194 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.64sec (5.73Mbit/s) +2015-03-31T00:29:12+02:00 - 151.216.181.77 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.86sec (5.69Mbit/s) +2015-03-31T00:29:41+02:00 - 151.216.181.74 - Served ex2200.template to client +2015-03-31T00:30:01+02:00 - 151.216.181.197 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 150.1sec (5.64Mbit/s) +2015-03-31T00:30:32+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-31T00:30:39+02:00 - 151.216.254.32 - Hostname not found in DB +2015-03-31T00:31:00+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-31T00:31:55+02:00 - 151.216.181.75 - Served ex2200.template to client +2015-03-31T00:32:07+02:00 - 151.216.254.32 - Transferred "rs1.backstage.conf" in 0sec (579.07Mbit/s) +2015-03-31T00:32:10+02:00 - 151.216.181.74 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.45sec (5.7Mbit/s) +2015-03-31T00:32:52+02:00 - 151.216.128.21 - Transferred "rs1.backstage.conf" in 0sec (613.61Mbit/s) +2015-03-31T00:33:25+02:00 - 151.216.181.142 - Served ex2200.template to client +2015-03-31T00:33:57+02:00 - 151.216.181.66 - Served ex2200.template to client +2015-03-31T00:34:24+02:00 - 151.216.181.75 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.76sec (5.73Mbit/s) +2015-03-31T00:35:07+02:00 - 151.216.181.213 - Served ex2200.template to client +2015-03-31T00:35:55+02:00 - 151.216.181.142 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 149.48sec (5.66Mbit/s) +2015-03-31T00:36:27+02:00 - 151.216.181.66 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.87sec (5.69Mbit/s) +2015-03-31T00:36:48+02:00 - 151.216.181.211 - Served ex2200.template to client +2015-03-31T00:37:35+02:00 - 151.216.181.213 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 146.73sec (5.77Mbit/s) +2015-03-31T00:38:17+02:00 - 151.216.181.67 - Served ex2200.template to client +2015-03-31T00:39:16+02:00 - 151.216.181.211 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.09sec (5.75Mbit/s) +2015-03-31T00:40:06+02:00 - 151.216.181.68 - Served ex2200.template to client +2015-03-31T00:40:46+02:00 - 151.216.181.67 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.65sec (5.69Mbit/s) +2015-03-31T00:41:14+02:00 - 151.216.181.70 - Served ex2200.template to client +2015-03-31T00:42:35+02:00 - 151.216.181.68 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.44sec (5.7Mbit/s) +2015-03-31T00:43:05+02:00 - 151.216.181.72 - Served ex2200.template to client +2015-03-31T00:43:21+02:00 - 151.216.181.210 - Served ex2200.template to client +2015-03-31T00:43:43+02:00 - 151.216.181.70 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.55sec (5.7Mbit/s) +2015-03-31T00:43:59+02:00 - 151.216.181.208 - Served ex2200.template to client +2015-03-31T00:45:34+02:00 - 151.216.181.72 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.28sec (5.71Mbit/s) +2015-03-31T00:45:49+02:00 - 151.216.181.71 - Served ex2200.template to client +2015-03-31T00:45:51+02:00 - 151.216.181.210 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.4sec (5.7Mbit/s) +2015-03-31T00:46:29+02:00 - 151.216.181.208 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 149.25sec (5.67Mbit/s) +2015-03-31T00:46:34+02:00 - 151.216.181.73 - Served ex2200.template to client +2015-03-31T00:48:17+02:00 - 151.216.181.71 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.01sec (5.72Mbit/s) +2015-03-31T00:49:01+02:00 - 151.216.181.73 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 145.74sec (5.81Mbit/s) +2015-03-31T00:50:18+02:00 - 151.216.183.163 - Served ex2200.template to client +2015-03-31T00:50:56+02:00 - 151.216.181.145 - Served ex2200.template to client +2015-03-31T00:51:37+02:00 - 151.216.181.144 - Served ex2200.template to client +2015-03-31T00:52:46+02:00 - 151.216.183.163 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.39sec (5.74Mbit/s) +2015-03-31T00:53:24+02:00 - 151.216.181.145 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.85sec (5.72Mbit/s) +2015-03-31T00:54:06+02:00 - 151.216.181.144 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.58sec (5.7Mbit/s) +2015-03-31T00:57:03+02:00 - 151.216.181.206 - Served ex2200.template to client +2015-03-31T00:57:54+02:00 - 151.216.181.146 - Served ex2200.template to client +2015-03-31T00:57:59+02:00 - 151.216.181.147 - Served ex2200.template to client +2015-03-31T00:59:29+02:00 - 151.216.181.206 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 145.33sec (5.82Mbit/s) +2015-03-31T00:59:34+02:00 - 151.216.180.5 - Served ex2200.template to client +2015-03-31T01:00:20+02:00 - 151.216.181.146 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 145.83sec (5.8Mbit/s) +2015-03-31T01:00:27+02:00 - 151.216.181.209 - Served ex2200.template to client +2015-03-31T01:00:38+02:00 - 151.216.181.147 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 158.34sec (5.35Mbit/s) +2015-03-31T01:01:59+02:00 - 151.216.181.199 - Served ex2200.template to client +2015-03-31T01:02:02+02:00 - 151.216.180.5 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.18sec (5.75Mbit/s) +2015-03-31T01:02:54+02:00 - 151.216.181.209 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 145.56sec (5.81Mbit/s) +2015-03-31T01:04:16+02:00 - 151.216.180.12 - Served ex2200.template to client +2015-03-31T01:04:27+02:00 - 151.216.181.199 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.46sec (5.74Mbit/s) +2015-03-31T01:04:37+02:00 - 151.216.181.215 - Served ex2200.template to client +2015-03-31T01:05:22+02:00 - 151.216.180.11 - Served ex2200.template to client +2015-03-31T01:05:57+02:00 - 151.216.181.214 - Served ex2200.template to client +2015-03-31T01:06:30+02:00 - 151.216.180.10 - Served ex2200.template to client +2015-03-31T01:06:46+02:00 - 151.216.180.12 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 149.39sec (5.67Mbit/s) +2015-03-31T01:07:07+02:00 - 151.216.181.215 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.77sec (5.69Mbit/s) +2015-03-31T01:07:39+02:00 - 151.216.181.207 - Served ex2200.template to client +2015-03-31T01:07:41+02:00 - 151.216.181.212 - Served ex2200.template to client +2015-03-31T01:07:50+02:00 - 151.216.180.11 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.92sec (5.72Mbit/s) +2015-03-31T01:08:25+02:00 - 151.216.181.214 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.31sec (5.71Mbit/s) +2015-03-31T01:08:51+02:00 - 151.216.180.9 - Served ex2200.template to client +2015-03-31T01:08:53+02:00 - 151.216.181.207 - Served ex2200.template to client +2015-03-31T01:09:00+02:00 - 151.216.180.10 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 149.21sec (5.67Mbit/s) +2015-03-31T01:09:32+02:00 - 151.216.180.13 - Served ex2200.template to client +2015-03-31T01:09:44+02:00 - 151.216.181.198 - Served ex2200.template to client +2015-03-31T01:10:11+02:00 - 151.216.181.212 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 149.55sec (5.66Mbit/s) +2015-03-31T01:11:20+02:00 - 151.216.180.9 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.59sec (5.7Mbit/s) +2015-03-31T01:11:23+02:00 - 151.216.181.207 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 149.66sec (5.66Mbit/s) +2015-03-31T01:11:44+02:00 - 151.216.180.14 - Served ex2200.template to client +2015-03-31T01:12:01+02:00 - 151.216.180.13 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.75sec (5.69Mbit/s) +2015-03-31T01:12:13+02:00 - 151.216.181.198 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148sec (5.72Mbit/s) +2015-03-31T01:13:18+02:00 - 151.216.180.16 - Served ex2200.template to client +2015-03-31T01:14:01+02:00 - 151.216.180.15 - Served ex2200.template to client +2015-03-31T01:14:10+02:00 - 151.216.180.14 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 145.18sec (5.83Mbit/s) +2015-03-31T01:15:45+02:00 - 151.216.180.16 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.28sec (5.75Mbit/s) +2015-03-31T01:16:21+02:00 - 151.216.181.204 - Served ex2200.template to client +2015-03-31T01:16:31+02:00 - 151.216.180.15 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 149.15sec (5.67Mbit/s) +2015-03-31T01:17:00+02:00 - 151.216.181.202 - Served ex2200.template to client +2015-03-31T01:17:43+02:00 - 151.216.180.137 - Served ex2200.template to client +2015-03-31T01:18:51+02:00 - 151.216.181.204 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 149.42sec (5.66Mbit/s) +2015-03-31T01:19:27+02:00 - 151.216.181.202 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 146.3sec (5.79Mbit/s) +2015-03-31T01:20:15+02:00 - 151.216.180.137 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 150.68sec (5.62Mbit/s) +2015-03-31T01:21:18+02:00 - 151.216.181.205 - Served ex2200.template to client +2015-03-31T01:23:46+02:00 - 151.216.181.205 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.87sec (5.72Mbit/s) +2015-03-31T01:26:10+02:00 - 151.216.181.200 - Served ex2200.template to client +2015-03-31T01:26:21+02:00 - 151.216.181.203 - Served ex2200.template to client +2015-03-31T01:28:36+02:00 - 151.216.181.200 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 144.96sec (5.84Mbit/s) +2015-03-31T01:28:48+02:00 - 151.216.181.203 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 146.27sec (5.79Mbit/s) +2015-03-31T01:29:49+02:00 - 151.216.181.201 - Served ex2200.template to client +2015-03-31T01:32:16+02:00 - 151.216.181.201 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 146.52sec (5.78Mbit/s) +2015-03-31T01:49:49+02:00 - 151.216.183.162 - Served ex2200.template to client +2015-03-31T01:53:04+02:00 - 151.216.183.162 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 194.4sec (4.35Mbit/s) +2015-03-31T02:20:51+02:00 - 151.216.181.79 - Served ex2200.template to client +2015-03-31T02:23:17+02:00 - 151.216.181.79 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 146.05sec (5.8Mbit/s) +2015-03-31T02:27:20+02:00 - 151.216.181.69 - Served ex2200.template to client +2015-03-31T02:29:47+02:00 - 151.216.181.69 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 146.43sec (5.78Mbit/s) +2015-03-31T03:18:42+02:00 - 151.216.180.77 - Served ex2200.template to client +2015-03-31T03:21:08+02:00 - 151.216.180.77 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 145.66sec (5.81Mbit/s) +2015-03-31T09:50:51+02:00 - 151.216.180.68 - Served ex2200.template to client +2015-03-31T09:53:21+02:00 - 151.216.180.68 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 149.43sec (5.66Mbit/s) +2015-03-31T09:57:30+02:00 - 151.216.180.78 - Served ex2200.template to client +2015-03-31T10:00:07+02:00 - 151.216.180.78 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 155.88sec (5.43Mbit/s) +2015-03-31T10:46:03+02:00 - 151.216.180.72 - Served ex2200.template to client +2015-03-31T10:48:30+02:00 - 151.216.180.72 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 146.27sec (5.79Mbit/s) +2015-03-31T11:48:49+02:00 - 151.216.180.6 - Served ex2200.template to client +2015-03-31T11:54:49+02:00 - 151.216.180.7 - Served ex2200.template to client +2015-03-31T11:57:18+02:00 - 151.216.180.7 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 147.99sec (5.72Mbit/s) +2015-03-31T11:58:09+02:00 - 151.216.254.219 - Transferred "rs1.backstage.conf" in 0sec (662.42Mbit/s) +2015-03-31T11:59:31+02:00 - 151.216.254.20 - Transferred "rs1.backstage.conf" in 0sec (672.62Mbit/s) +2015-03-31T12:00:56+02:00 - 151.216.254.20 - Transferred "rs1.backstage.conf" in 0sec (672.62Mbit/s) +2015-03-31T12:19:33+02:00 - 151.216.180.6 - Served ex2200.template to client +2015-03-31T12:22:03+02:00 - 151.216.180.6 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 148.91sec (5.68Mbit/s) +2015-03-31T13:30:34+02:00 - 151.216.254.32 - Transferred "rs1.north.conf" in 0sec (306.91Mbit/s) +2015-03-31T13:39:00+02:00 - 151.216.254.25 - Transferred "rs1.north.conf" in 0sec (352.28Mbit/s) +2015-03-31T13:41:32+02:00 - 151.216.128.18 - Transferred "rs1.north.conf" in 0sec (311.63Mbit/s) +2015-03-31T13:43:14+02:00 - 151.216.128.18 - Transferred "rs1.north.conf" in 0sec (344.78Mbit/s) +2015-03-31T13:44:09+02:00 - 151.216.128.18 - Transferred "rs1.north.conf" in 0sec (363.34Mbit/s) +2015-03-31T13:44:56+02:00 - 151.216.128.18 - Transferred "rs1.north.conf" in 0sec (344.78Mbit/s) +2015-03-31T13:46:24+02:00 - 151.216.128.18 - Transferred "rs1.north.conf" in 0sec (241.86Mbit/s) +2015-03-31T13:48:13+02:00 - 151.216.254.32 - Transferred "rs1.gamehq.conf" in 0sec (483.52Mbit/s) +2015-03-31T13:49:29+02:00 - 151.216.254.20 - Transferred "rs1.gamehq.conf" in 0sec (586.51Mbit/s) +2015-03-31T13:52:15+02:00 - 151.216.128.16 - Transferred "rs1.gamehq.conf" in 0sec (570.05Mbit/s) +2015-03-31T14:23:11+02:00 - 151.216.181.136 - Served ex2200.template to client +2015-03-31T14:23:13+02:00 - 151.216.181.137 - Served ex2200.template to client +2015-03-31T14:26:11+02:00 - 151.216.180.70 - Served ex2200.template to client +2015-03-31T14:26:24+02:00 - 151.216.181.136 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 191.49sec (4.42Mbit/s) +2015-03-31T14:26:25+02:00 - 151.216.181.137 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 191.46sec (4.42Mbit/s) +2015-03-31T14:27:46+02:00 - 151.216.180.8 - Served ex2200.template to client +2015-03-31T14:29:25+02:00 - 151.216.180.70 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 194.18sec (4.36Mbit/s) +2015-03-31T14:31:06+02:00 - 151.216.180.8 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 198.88sec (4.26Mbit/s) +2015-03-31T15:50:15+02:00 - 151.216.254.200 - Transferred "rs1.gamehq.conf" in 0sec (483.52Mbit/s) +2015-03-31T15:50:43+02:00 - 151.216.254.200 - 404 - File not found +2015-03-31T15:50:51+02:00 - 151.216.254.200 - 404 - File not found +2015-03-31T15:51:01+02:00 - 151.216.254.200 - 404 - File not found +2015-03-31T15:51:11+02:00 - 150.70.97.119 - Transferred "rs1.gamehq.conf" in 0sec (606.21Mbit/s) +2015-03-31T15:51:18+02:00 - 151.216.254.200 - Served ex2200.template to client +2015-03-31T15:51:23+02:00 - 151.216.254.200 - Served ex2200.template to client +2015-03-31T15:52:44+02:00 - 150.70.97.124 - Served ex2200.template to client +2015-03-31T15:53:16+02:00 - 150.70.97.97 - Served ex2200.template to client +2015-03-31T16:33:45+02:00 - 151.216.128.31 - Transferred "distro6_creativia.conf" in 0sec (998.52Mbit/s) +2015-03-31T16:48:02+02:00 - 151.216.181.148 - Served ex2200.template to client +2015-03-31T16:50:27+02:00 - 151.216.181.148 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 144.42sec (5.86Mbit/s) +2015-03-31T16:53:43+02:00 - 151.216.181.150 - Served ex2200.template to client +2015-03-31T16:55:11+02:00 - 151.216.181.153 - Served ex2200.template to client +2015-03-31T16:56:11+02:00 - 151.216.181.150 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 146.64sec (5.77Mbit/s) +2015-03-31T16:56:23+02:00 - 151.216.181.155 - Served ex2200.template to client +2015-03-31T16:56:44+02:00 - 151.216.181.151 - Served ex2200.template to client +2015-03-31T16:57:31+02:00 - 151.216.181.152 - Served ex2200.template to client +2015-03-31T16:57:38+02:00 - 151.216.181.153 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 146.13sec (5.79Mbit/s) +2015-03-31T16:58:50+02:00 - 151.216.181.155 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 146.4sec (5.78Mbit/s) +2015-03-31T16:59:10+02:00 - 151.216.181.151 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 145.66sec (5.81Mbit/s) +2015-03-31T16:59:57+02:00 - 151.216.181.152 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 145.33sec (5.82Mbit/s) +2015-03-31T17:22:57+02:00 - 151.216.128.11 - 404 - File not found +2015-03-31T17:25:46+02:00 - 151.216.128.11 - 404 - File not found +2015-03-31T17:26:22+02:00 - 151.216.254.219 - 404 - File not found +2015-03-31T17:27:30+02:00 - 151.216.128.11 - Transferred "rs1.south.conf" in 0sec (321.52Mbit/s) +2015-03-31T17:54:05+02:00 - 151.216.180.66 - Served ex2200.template to client +2015-03-31T17:57:10+02:00 - 151.216.180.66 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 184.02sec (4.6Mbit/s) +2015-03-31T17:59:53+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-31T18:13:33+02:00 - 151.216.254.237 - Transferred "rs1.gamehq.conf" in 0sec (560.22Mbit/s) +2015-03-31T18:13:37+02:00 - 151.216.254.237 - 404 - File not found +2015-03-31T18:13:44+02:00 - 151.216.254.237 - 404 - File not found +2015-03-31T18:13:54+02:00 - 151.216.254.237 - 404 - File not found +2015-03-31T18:14:06+02:00 - 151.216.254.237 - 404 - File not found +2015-03-31T18:14:10+02:00 - 151.216.254.237 - 404 - File not found +2015-03-31T18:24:06+02:00 - 176.11.7.229 - Served ex2200.template to client +2015-03-31T18:25:19+02:00 - 151.216.181.154 - Served ex2200.template to client +2015-03-31T18:27:45+02:00 - 151.216.181.154 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 146.34sec (5.78Mbit/s) +2015-03-31T18:27:50+02:00 - 151.216.181.149 - Served ex2200.template to client +2015-03-31T18:30:55+02:00 - 151.216.181.149 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 183.5sec (4.61Mbit/s) +2015-03-31T18:43:33+02:00 - 151.216.229.12 - 404 - File not found +2015-03-31T18:43:41+02:00 - 151.216.229.12 - Served ex2200.template to client +2015-03-31T20:17:12+02:00 - 151.216.181.148 - Served ex2200.template to client +2015-03-31T20:19:09+02:00 - 151.216.181.148 - Served ex2200.template to client +2015-03-31T20:45:47+02:00 - 151.216.183.98 - Served ex2200.template to client +2015-03-31T20:48:18+02:00 - 151.216.183.98 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 150.84sec (5.61Mbit/s) +2015-03-31T22:10:24+02:00 - 151.216.254.20 - Hostname not found in DB +2015-03-31T22:10:31+02:00 - 151.216.254.20 - Hostname not found in DB +2015-03-31T22:12:27+02:00 - 151.216.254.20 - Hostname not found in DB +2015-03-31T22:12:36+02:00 - 151.216.254.20 - Hostname not found in DB +2015-03-31T22:13:06+02:00 - 151.216.254.32 - Hostname not found in DB +2015-03-31T22:13:21+02:00 - 151.216.254.32 - Hostname not found in DB +2015-03-31T22:13:35+02:00 - 151.216.254.32 - Transferred "rs1.north_sw1-infodesk.conf" in 0sec (329.03Mbit/s) +2015-03-31T22:13:55+02:00 - 151.216.254.20 - Transferred "rs1.north_sw1-infodesk.conf" in 0sec (461.02Mbit/s) +2015-03-31T22:14:33+02:00 - 151.216.254.20 - Hostname not found in DB +2015-03-31T22:37:45+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-03-31T22:38:05+02:00 - 151.216.254.20 - Served ex2200.template to client +2015-03-31T22:39:04+02:00 - 151.216.254.200 - Hostname not found in DB +2015-03-31T22:39:12+02:00 - 151.216.254.200 - Served ex2200_secure.template to client +2015-03-31T22:40:22+02:00 - 150.70.97.113 - Served ex2200_secure.template to client +2015-03-31T22:40:28+02:00 - 150.70.97.114 - Hostname not found in DB +2015-03-31T22:50:27+02:00 - 151.216.181.196 - Served ex2200_secure.template to client +2015-03-31T22:52:37+02:00 - 151.216.181.196 - Served ex2200_secure.template to client +2015-03-31T22:53:48+02:00 - 151.216.181.196 - Served ex2200_secure.template to client +2015-03-31T23:01:27+02:00 - 151.216.181.196 - Served ex2200_secure.template to client +2015-03-31T23:02:16+02:00 - 151.216.181.196 - Served ex2200_secure.template to client +2015-03-31T23:04:51+02:00 - 151.216.181.196 - Hostname not found in DB +2015-03-31T23:32:54+02:00 - 151.216.181.198 - Served ex2200_secure.template to client +2015-03-31T23:41:24+02:00 - 151.216.181.198 - Served ex2200_secure.template to client +2015-04-01T00:20:21+02:00 - 151.216.180.2 - Served ex2200_secure.template to client +2015-04-01T00:21:28+02:00 - 151.216.180.3 - Served ex2200_secure.template to client +2015-04-01T02:10:33+02:00 - 151.216.183.229 - Served ex2200.template to client +2015-04-01T02:13:26+02:00 - 151.216.183.229 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 172.98sec (4.89Mbit/s) +2015-04-01T02:37:02+02:00 - 151.216.183.230 - Served ex2200.template to client +2015-04-01T02:38:52+02:00 - 151.216.183.231 - Served ex2200.template to client +2015-04-01T02:39:58+02:00 - 151.216.183.230 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 175.76sec (4.82Mbit/s) +2015-04-01T02:41:26+02:00 - 151.216.183.231 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 153.39sec (5.52Mbit/s) +2015-04-01T03:08:24+02:00 - 151.216.180.69 - Served ex2200_secure.template to client +2015-04-01T03:08:30+02:00 - 151.216.180.70 - Served ex2200_secure.template to client +2015-04-01T03:08:30+02:00 - 151.216.180.71 - Served ex2200_secure.template to client +2015-04-01T03:08:30+02:00 - 151.216.180.11 - Served ex2200_secure.template to client +2015-04-01T03:08:31+02:00 - 151.216.180.12 - Served ex2200_secure.template to client +2015-04-01T03:08:31+02:00 - 151.216.180.2 - Served ex2200_secure.template to client +2015-04-01T03:08:31+02:00 - 151.216.180.72 - Served ex2200_secure.template to client +2015-04-01T03:08:33+02:00 - 151.216.180.13 - Served ex2200_secure.template to client +2015-04-01T03:08:33+02:00 - 151.216.180.14 - Served ex2200_secure.template to client +2015-04-01T03:09:13+02:00 - 151.216.180.73 - Served ex2200_secure.template to client +2015-04-01T03:09:15+02:00 - 151.216.180.15 - Served ex2200_secure.template to client +2015-04-01T03:09:15+02:00 - 151.216.180.74 - Served ex2200_secure.template to client +2015-04-01T03:09:16+02:00 - 151.216.180.16 - Served ex2200_secure.template to client +2015-04-01T03:09:16+02:00 - 151.216.180.76 - Served ex2200_secure.template to client +2015-04-01T03:09:16+02:00 - 151.216.180.75 - Served ex2200_secure.template to client +2015-04-01T03:09:18+02:00 - 151.216.180.130 - Served ex2200_secure.template to client +2015-04-01T03:09:18+02:00 - 151.216.180.77 - Served ex2200_secure.template to client +2015-04-01T03:09:18+02:00 - 151.216.180.131 - Served ex2200_secure.template to client +2015-04-01T03:09:59+02:00 - 151.216.180.78 - Served ex2200_secure.template to client +2015-04-01T03:10:00+02:00 - 151.216.180.132 - Served ex2200_secure.template to client +2015-04-01T03:10:00+02:00 - 151.216.180.133 - Served ex2200_secure.template to client +2015-04-01T03:10:01+02:00 - 151.216.180.79 - Served ex2200_secure.template to client +2015-04-01T03:10:02+02:00 - 151.216.180.80 - Served ex2200_secure.template to client +2015-04-01T03:10:03+02:00 - 151.216.180.134 - Served ex2200_secure.template to client +2015-04-01T03:10:03+02:00 - 151.216.180.135 - Served ex2200_secure.template to client +2015-04-01T03:10:03+02:00 - 151.216.180.81 - Served ex2200_secure.template to client +2015-04-01T03:10:05+02:00 - 151.216.180.82 - Served ex2200_secure.template to client +2015-04-01T03:10:36+02:00 - 151.216.180.136 - Served ex2200_secure.template to client +2015-04-01T03:10:40+02:00 - 151.216.180.137 - Served ex2200_secure.template to client +2015-04-01T03:10:44+02:00 - 151.216.180.83 - Served ex2200_secure.template to client +2015-04-01T03:10:44+02:00 - 151.216.180.84 - Served ex2200_secure.template to client +2015-04-01T03:10:45+02:00 - 151.216.180.139 - Served ex2200_secure.template to client +2015-04-01T03:10:45+02:00 - 151.216.180.138 - Served ex2200_secure.template to client +2015-04-01T03:10:46+02:00 - 151.216.180.85 - Served ex2200_secure.template to client +2015-04-01T03:10:47+02:00 - 151.216.180.86 - Served ex2200_secure.template to client +2015-04-01T03:10:49+02:00 - 151.216.180.140 - Served ex2200_secure.template to client +2015-04-01T03:10:50+02:00 - 151.216.180.194 - Served ex2200_secure.template to client +2015-04-01T03:10:51+02:00 - 151.216.180.141 - Served ex2200_secure.template to client +2015-04-01T03:10:51+02:00 - 151.216.180.195 - Served ex2200_secure.template to client +2015-04-01T03:10:52+02:00 - 151.216.180.196 - Served ex2200_secure.template to client +2015-04-01T03:10:54+02:00 - 151.216.180.197 - Served ex2200_secure.template to client +2015-04-01T03:10:57+02:00 - 151.216.180.3 - Served ex2200_secure.template to client +2015-04-01T03:11:23+02:00 - 151.216.180.198 - Served ex2200_secure.template to client +2015-04-01T03:11:25+02:00 - 151.216.180.199 - Served ex2200_secure.template to client +2015-04-01T03:11:30+02:00 - 151.216.180.4 - Served ex2200_secure.template to client +2015-04-01T03:11:30+02:00 - 151.216.180.200 - Served ex2200_secure.template to client +2015-04-01T03:11:31+02:00 - 151.216.180.201 - Served ex2200_secure.template to client +2015-04-01T03:11:31+02:00 - 151.216.180.202 - Served ex2200_secure.template to client +2015-04-01T03:11:32+02:00 - 151.216.180.203 - Served ex2200_secure.template to client +2015-04-01T03:11:32+02:00 - 151.216.180.204 - Served ex2200_secure.template to client +2015-04-01T03:11:33+02:00 - 151.216.180.205 - Served ex2200_secure.template to client +2015-04-01T03:11:34+02:00 - 151.216.180.207 - Served ex2200_secure.template to client +2015-04-01T03:11:34+02:00 - 151.216.180.206 - Served ex2200_secure.template to client +2015-04-01T03:11:37+02:00 - 151.216.180.208 - Served ex2200_secure.template to client +2015-04-01T03:11:37+02:00 - 151.216.180.209 - Served ex2200_secure.template to client +2015-04-01T03:11:39+02:00 - 151.216.181.2 - Served ex2200_secure.template to client +2015-04-01T03:11:41+02:00 - 151.216.181.3 - Served ex2200_secure.template to client +2015-04-01T03:12:08+02:00 - 151.216.181.66 - Served ex2200_secure.template to client +2015-04-01T03:12:11+02:00 - 151.216.181.67 - Served ex2200_secure.template to client +2015-04-01T03:12:16+02:00 - 151.216.181.4 - Served ex2200_secure.template to client +2015-04-01T03:12:18+02:00 - 151.216.181.5 - Served ex2200_secure.template to client +2015-04-01T03:12:19+02:00 - 151.216.181.69 - Served ex2200_secure.template to client +2015-04-01T03:12:19+02:00 - 151.216.181.68 - Served ex2200_secure.template to client +2015-04-01T03:12:19+02:00 - 151.216.181.7 - Served ex2200_secure.template to client +2015-04-01T03:12:20+02:00 - 151.216.181.6 - Served ex2200_secure.template to client +2015-04-01T03:12:21+02:00 - 151.216.180.66 - Served ex2200_secure.template to client +2015-04-01T03:12:21+02:00 - 151.216.181.71 - Served ex2200_secure.template to client +2015-04-01T03:12:21+02:00 - 151.216.181.70 - Served ex2200_secure.template to client +2015-04-01T03:12:24+02:00 - 151.216.180.5 - Served ex2200_secure.template to client +2015-04-01T03:12:25+02:00 - 151.216.180.6 - Served ex2200_secure.template to client +2015-04-01T03:12:26+02:00 - 151.216.180.67 - Served ex2200_secure.template to client +2015-04-01T03:12:29+02:00 - 151.216.180.7 - Served ex2200_secure.template to client +2015-04-01T03:12:53+02:00 - 151.216.180.8 - Served ex2200_secure.template to client +2015-04-01T03:12:54+02:00 - 151.216.180.68 - Served ex2200_secure.template to client +2015-04-01T03:13:02+02:00 - 151.216.180.9 - Served ex2200_secure.template to client +2015-04-01T03:13:03+02:00 - 151.216.180.10 - Served ex2200_secure.template to client +2015-04-01T03:44:54+02:00 - 151.216.181.19 - Served ex2200_secure.template to client +2015-04-01T03:44:54+02:00 - 151.216.181.18 - Served ex2200_secure.template to client +2015-04-01T03:44:55+02:00 - 151.216.181.82 - Served ex2200_secure.template to client +2015-04-01T03:44:56+02:00 - 151.216.181.83 - Served ex2200_secure.template to client +2015-04-01T03:44:57+02:00 - 151.216.181.194 - Served ex2200_secure.template to client +2015-04-01T03:44:58+02:00 - 151.216.181.195 - Served ex2200_secure.template to client +2015-04-01T03:44:59+02:00 - 151.216.181.196 - Served ex2200_secure.template to client +2015-04-01T03:45:00+02:00 - 151.216.181.197 - Served ex2200_secure.template to client +2015-04-01T03:45:00+02:00 - 151.216.181.132 - Served ex2200_secure.template to client +2015-04-01T03:45:01+02:00 - 151.216.181.131 - Served ex2200_secure.template to client +2015-04-01T03:45:01+02:00 - 151.216.181.133 - Served ex2200_secure.template to client +2015-04-01T03:45:01+02:00 - 151.216.181.130 - Served ex2200_secure.template to client +2015-04-01T03:45:01+02:00 - 151.216.181.199 - Served ex2200_secure.template to client +2015-04-01T03:45:01+02:00 - 151.216.181.198 - Served ex2200_secure.template to client +2015-04-01T03:45:02+02:00 - 151.216.181.135 - Served ex2200_secure.template to client +2015-04-01T03:45:02+02:00 - 151.216.181.134 - Served ex2200_secure.template to client +2015-04-01T03:45:38+02:00 - 151.216.181.200 - Served ex2200_secure.template to client +2015-04-01T03:45:39+02:00 - 151.216.181.201 - Served ex2200_secure.template to client +2015-04-01T03:45:40+02:00 - 151.216.181.136 - Served ex2200_secure.template to client +2015-04-01T03:45:41+02:00 - 151.216.181.137 - Served ex2200_secure.template to client +2015-04-01T03:45:42+02:00 - 151.216.181.202 - Served ex2200_secure.template to client +2015-04-01T03:45:43+02:00 - 151.216.181.203 - Served ex2200_secure.template to client +2015-04-01T03:45:44+02:00 - 151.216.181.138 - Served ex2200_secure.template to client +2015-04-01T03:45:45+02:00 - 151.216.181.204 - Served ex2200_secure.template to client +2015-04-01T03:45:45+02:00 - 151.216.181.139 - Served ex2200_secure.template to client +2015-04-01T03:45:45+02:00 - 151.216.181.205 - Served ex2200_secure.template to client +2015-04-01T03:45:46+02:00 - 151.216.181.206 - Served ex2200_secure.template to client +2015-04-01T03:45:46+02:00 - 151.216.181.141 - Served ex2200_secure.template to client +2015-04-01T03:45:48+02:00 - 151.216.181.143 - Served ex2200_secure.template to client +2015-04-01T03:45:49+02:00 - 151.216.181.140 - Served ex2200_secure.template to client +2015-04-01T03:45:49+02:00 - 151.216.181.207 - Served ex2200_secure.template to client +2015-04-01T03:45:50+02:00 - 151.216.181.142 - Served ex2200_secure.template to client +2015-04-01T03:46:24+02:00 - 151.216.181.208 - Served ex2200_secure.template to client +2015-04-01T03:46:26+02:00 - 151.216.181.209 - Served ex2200_secure.template to client +2015-04-01T03:46:27+02:00 - 151.216.181.144 - Served ex2200_secure.template to client +2015-04-01T03:46:28+02:00 - 151.216.181.145 - Served ex2200_secure.template to client +2015-04-01T03:46:29+02:00 - 151.216.181.211 - Served ex2200_secure.template to client +2015-04-01T03:46:29+02:00 - 151.216.181.210 - Served ex2200_secure.template to client +2015-04-01T03:46:30+02:00 - 151.216.181.146 - Served ex2200_secure.template to client +2015-04-01T03:46:30+02:00 - 151.216.181.147 - Served ex2200_secure.template to client +2015-04-01T03:46:30+02:00 - 151.216.181.212 - Served ex2200_secure.template to client +2015-04-01T03:46:31+02:00 - 151.216.181.213 - Served ex2200_secure.template to client +2015-04-01T03:46:32+02:00 - 151.216.181.214 - Served ex2200_secure.template to client +2015-04-01T03:46:32+02:00 - 151.216.181.215 - Served ex2200_secure.template to client +2015-04-01T03:48:21+02:00 - 151.216.180.137 - Served ex2200_secure.template to client +2015-04-01T03:52:38+02:00 - 151.216.180.8 - Served ex2200_secure.template to client +2015-04-01T03:53:13+02:00 - 151.216.181.8 - Served ex2200_secure.template to client +2015-04-01T03:53:13+02:00 - 151.216.181.9 - Served ex2200_secure.template to client +2015-04-01T03:53:13+02:00 - 151.216.181.73 - Served ex2200_secure.template to client +2015-04-01T03:53:14+02:00 - 151.216.181.10 - Served ex2200_secure.template to client +2015-04-01T03:53:14+02:00 - 151.216.181.72 - Served ex2200_secure.template to client +2015-04-01T03:53:14+02:00 - 151.216.181.11 - Served ex2200_secure.template to client +2015-04-01T03:53:17+02:00 - 151.216.181.12 - Served ex2200_secure.template to client +2015-04-01T03:53:18+02:00 - 151.216.181.74 - Served ex2200_secure.template to client +2015-04-01T03:53:18+02:00 - 151.216.181.13 - Served ex2200_secure.template to client +2015-04-01T03:53:18+02:00 - 151.216.181.75 - Served ex2200_secure.template to client +2015-04-01T03:53:19+02:00 - 151.216.181.14 - Served ex2200_secure.template to client +2015-04-01T03:53:20+02:00 - 151.216.181.79 - Served ex2200_secure.template to client +2015-04-01T03:53:20+02:00 - 151.216.181.78 - Served ex2200_secure.template to client +2015-04-01T03:53:22+02:00 - 151.216.181.76 - Served ex2200_secure.template to client +2015-04-01T03:53:22+02:00 - 151.216.181.77 - Served ex2200_secure.template to client +2015-04-01T03:53:23+02:00 - 151.216.181.15 - Served ex2200_secure.template to client +2015-04-01T03:53:57+02:00 - 151.216.181.17 - Served ex2200_secure.template to client +2015-04-01T03:53:57+02:00 - 151.216.181.16 - Served ex2200_secure.template to client +2015-04-01T03:53:59+02:00 - 151.216.181.80 - Served ex2200_secure.template to client +2015-04-01T03:54:01+02:00 - 151.216.181.81 - Served ex2200_secure.template to client +2015-04-01T03:56:05+02:00 - 151.216.180.70 - Served ex2200_secure.template to client +2015-04-01T04:27:22+02:00 - 151.216.254.200 - Hostname not found in DB +2015-04-01T04:27:26+02:00 - 151.216.181.149 - Served ex2200_secure.template to client +2015-04-01T04:27:27+02:00 - 151.216.181.148 - Served ex2200_secure.template to client +2015-04-01T04:27:28+02:00 - 151.216.181.150 - Served ex2200_secure.template to client +2015-04-01T04:27:31+02:00 - 151.216.181.151 - Served ex2200_secure.template to client +2015-04-01T04:27:32+02:00 - 151.216.181.152 - Served ex2200_secure.template to client +2015-04-01T04:27:32+02:00 - 151.216.181.153 - Served ex2200_secure.template to client +2015-04-01T04:27:32+02:00 - 151.216.181.154 - Served ex2200_secure.template to client +2015-04-01T04:27:34+02:00 - 151.216.181.155 - Served ex2200_secure.template to client +2015-04-01T04:27:40+02:00 - 151.216.254.200 - Hostname not found in DB +2015-04-01T04:27:48+02:00 - 151.216.254.200 - Served ex2200_secure.template to client +2015-04-01T04:27:53+02:00 - 151.216.254.200 - Served ex2200_secure.template to client +2015-04-01T04:27:56+02:00 - 151.216.254.200 - Served ex2200_secure.template to client +2015-04-01T04:28:09+02:00 - 151.216.254.200 - Served ex2200_secure.template to client +2015-04-01T04:28:13+02:00 - 150.70.97.121 - Hostname not found in DB +2015-04-01T04:28:18+02:00 - 150.70.97.97 - Hostname not found in DB +2015-04-01T04:29:08+02:00 - 150.70.97.114 - Served ex2200_secure.template to client +2015-04-01T04:29:09+02:00 - 150.70.97.126 - Served ex2200_secure.template to client +2015-04-01T04:29:31+02:00 - 150.70.173.47 - Served ex2200_secure.template to client +2015-04-01T04:33:34+02:00 - 151.216.181.137 - Served ex2200_secure.template to client +2015-04-01T04:40:24+02:00 - 151.216.181.136 - Served ex2200_secure.template to client +2015-04-01T05:53:42+02:00 - 151.216.254.32 - Transferred "rs1.crew.conf" in 0sec (497.33Mbit/s) +2015-04-01T05:54:24+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-04-01T05:54:34+02:00 - 151.216.254.32 - Transferred "rs1.crew.conf" in 0sec (563.5Mbit/s) +2015-04-01T05:55:21+02:00 - 151.216.254.241 - Transferred "rs1.crew.conf" in 0sec (493.59Mbit/s) +2015-04-01T05:56:18+02:00 - 151.216.128.27 - Transferred "rs1.crew.conf" in 0sec (534.81Mbit/s) +2015-04-01T06:02:23+02:00 - 151.216.128.27 - Transferred "rs1.crew.conf" in 0sec (530.49Mbit/s) +2015-04-01T06:42:02+02:00 - 151.216.254.241 - Transferred "rs1.crew.conf" in 0sec (426.29Mbit/s) +2015-04-01T07:12:49+02:00 - 213.188.19.15 - Served ex2200.template to client +2015-04-01T07:14:47+02:00 - 151.216.183.229 - Served ex2200_secure.template to client +2015-04-01T07:31:09+02:00 - 151.216.183.66 - Served ex2200.template to client +2015-04-01T07:49:17+02:00 - 151.216.183.67 - Served ex2200.template to client +2015-04-01T07:51:49+02:00 - 151.216.183.67 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 151.28sec (5.6Mbit/s) +2015-04-01T07:51:55+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-04-01T08:26:56+02:00 - 151.216.254.32 - Served ex2200_secure.template to client +2015-04-01T08:32:16+02:00 - 151.216.254.32 - Served ex2200_secure.template to client +2015-04-01T08:32:28+02:00 - 151.216.254.32 - Served ex2200.template to client +2015-04-01T08:34:46+02:00 - 151.216.254.23 - Served ex2200_secure.template to client +2015-04-01T08:37:39+02:00 - 151.216.213.24 - Served ex2200_secure.template to client +2015-04-01T08:50:37+02:00 - 151.216.254.241 - Served ex2200_secure.template to client +2015-04-01T08:51:46+02:00 - 151.216.254.241 - Served ex2200_secure.template to client +2015-04-01T08:51:53+02:00 - 151.216.254.241 - Served ex2200_secure.template to client +2015-04-01T09:10:35+02:00 - 151.216.254.241 - Served ex2200_secure.template to client +2015-04-01T09:11:30+02:00 - 151.216.254.23 - Served ex2200_secure.template to client +2015-04-01T09:11:55+02:00 - 151.216.254.23 - Served ex2200_secure.template to client +2015-04-01T09:12:59+02:00 - 151.216.213.24 - Served ex2200_secure.template to client +2015-04-01T09:13:10+02:00 - 151.216.213.24 - Served ex2200_secure.template to client +2015-04-01T09:19:46+02:00 - 151.216.213.24 - Served ex2200_secure.template to client +2015-04-01T10:03:23+02:00 - 151.216.183.68 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 158.86sec (5.33Mbit/s) +2015-04-01T10:59:24+02:00 - 151.216.254.248 - Served ex2200_secure.template to client +2015-04-01T13:31:06+02:00 - 151.216.254.200 - Served ex2200.template to client +2015-04-01T13:31:13+02:00 - 151.216.254.200 - Hostname not found in DB +2015-04-01T13:31:27+02:00 - 151.216.254.200 - Served ex2200.template to client +2015-04-01T13:32:02+02:00 - 151.216.254.200 - Served ex2200.template to client +2015-04-01T13:32:14+02:00 - 150.70.97.97 - Served ex2200.template to client +2015-04-01T13:32:24+02:00 - 150.70.173.55 - Hostname not found in DB +2015-04-01T13:32:35+02:00 - 150.70.173.57 - Served ex2200.template to client +2015-04-01T13:33:17+02:00 - 150.70.97.96 - Served ex2200.template to client +2015-04-02T01:46:16+02:00 - 151.216.224.60 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 144.58sec (5.85Mbit/s) +2015-04-02T01:58:22+02:00 - 151.216.224.61 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 144.82sec (5.84Mbit/s) +2015-04-02T02:34:33+02:00 - 151.216.224.61 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 144.21sec (5.87Mbit/s) +2015-04-02T03:13:49+02:00 - 151.216.224.67 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 143.22sec (5.91Mbit/s) +2015-04-03T06:46:01+02:00 - 151.216.183.7 - Transferred "jinstall-ex-2200-14.1X53-D15.2-domestic-signed.tgz" in 206.37sec (4.1Mbit/s) diff --git a/fap/proof_of_concepts/distro_during_testing.config b/fap/proof_of_concepts/distro_during_testing.config new file mode 100755 index 0000000..1b92507 --- /dev/null +++ b/fap/proof_of_concepts/distro_during_testing.config @@ -0,0 +1,355 @@ +root@distro0gw> show configuration                   +## Last commit: 2013-05-03 23:06:23 UTC by root +version 12.1R6.6; +system { +    host-name distro0gw; +    root-authentication { +        encrypted-password "$1$SPgmZ0Nq$u2R7lVJJAv1I3paV1Go0z0"; ## SECRET-DATA +    } +    login { +        user tg15 { +            uid 2003; +            class super-user; +            authentication { +                encrypted-password "$1$Mhjp603p$t6F4RTyx8igBGDZ6zj7A3/"; ## SECRET-DATA +            } +        } +    } +    syslog { +        user * { +            any emergency; +        } +        file messages { +            any notice; +            authorization info;          +        } +        file interactive-commands { +            interactive-commands any; +        } +    } +} +chassis { +    aggregated-devices { +        ethernet { +            device-count 10; +        } +    } +} +interfaces { +    ge-0/0/0 { +        description "ae0/access mgmt"; +        inactive: ether-options { +            802.3ad ae0; +        } +        unit 0 { +            family ethernet-switching { +                port-mode access; +                vlan {                   +                    members mgmt; +                } +            } +        } +    } +    ge-0/0/1 { +        description ae0; +        ether-options { +            802.3ad ae0; +        } +    } +    ge-0/0/2 { +        description ae0; +        ether-options { +            802.3ad ae0; +        } +    } +    ge-0/0/3 { +        unit 0 { +            family ethernet-switching; +        } +    } +    ge-0/0/4 {                           +        unit 0 { +            family ethernet-switching; +        } +    } +    ge-0/0/5 { +        unit 0 { +            family ethernet-switching; +        } +    } +    ge-0/0/6 { +        unit 0 { +            family ethernet-switching; +        } +    } +    ge-0/0/7 { +        unit 0 { +            family ethernet-switching; +        } +    } +    ge-0/0/8 { +        unit 0 { +            family ethernet-switching; +        }                                +    } +    ge-0/0/9 { +        unit 0 { +            family ethernet-switching; +        } +    } +    ge-0/0/10 { +        unit 0 { +            family ethernet-switching; +        } +    } +    ge-0/0/11 { +        unit 0 { +            family ethernet-switching; +        } +    } +    ge-0/0/12 { +        description "RPI dhcp-client test"; +        unit 0 { +            family ethernet-switching { +                port-mode access; +                vlan { +                    members mgmt;        +                } +            } +        } +    } +    ge-0/0/13 { +        unit 0 { +            family ethernet-switching; +        } +    } +    ge-0/0/14 { +        unit 0 { +            family ethernet-switching; +        } +    } +    ge-0/0/15 { +        unit 0 { +            family ethernet-switching; +        } +    } +    ge-0/0/16 { +        unit 0 { +            family ethernet-switching; +        }                                +    } +    ge-0/0/17 { +        unit 0 { +            family ethernet-switching; +        } +    } +    ge-0/0/18 { +        unit 0 { +            family ethernet-switching; +        } +    } +    ge-0/0/19 { +        unit 0 { +            family ethernet-switching; +        } +    } +    ge-0/0/20 { +        unit 0 { +            family ethernet-switching; +        } +    } +    ge-0/0/21 { +        unit 0 {                         +            family ethernet-switching; +        } +    } +    ge-0/0/22 { +        unit 0 { +            family ethernet-switching; +        } +    } +    ge-0/0/23 { +        unit 0 { +            description "Til laptopen"; +            family inet { +                address 10.0.100.1/24; +            } +        } +    } +    ge-0/1/0 { +        unit 0 { +            family ethernet-switching; +        } +    } +    xe-0/1/0 { +        unit 0 {                         +            family ethernet-switching; +        } +    } +    ge-0/1/1 { +        unit 0 { +            family ethernet-switching; +        } +    } +    xe-0/1/1 { +        unit 0 { +            family ethernet-switching; +        } +    } +    ge-0/1/2 { +        unit 0 { +            family ethernet-switching; +        } +    } +    xe-0/1/2 { +        unit 0 { +            family ethernet-switching; +        } +    }                                    +    ge-0/1/3 { +        unit 0 { +            family ethernet-switching; +        } +    } +    ae0 { +        description "Aggregation til EX2200"; +        aggregated-ether-options { +            minimum-links 2; +            lacp { +                active; +            } +        } +        unit 0 { +            family ethernet-switching { +                port-mode trunk; +                vlan { +                    members [ deltagere mgmt ]; +                } +            } +        } +    } +    me0 {                                +        unit 0 { +            family inet; +        } +    } +    vlan { +        unit 200 { +            description "Deltagere L3 interface"; +        } +        unit 300 { +            description "Management L3 interface"; +            family inet { +                address 10.0.200.1/24; +            } +        } +    } +} +forwarding-options { +    helpers { +        bootp { +            interface { +                vlan.200 { +                    description "Deltagere DHCP-server"; +                    server 1.2.3.4;      +                } +                vlan.300 { +                    description "MGMT + bootstrap"; +                    server 10.0.100.2; +                    dhcp-option82 { +                        circuit-id { +                            prefix hostname; +                            use-interface-description; +                        } +                    } +                } +            } +        } +    } +} +event-options { +    policy ae0down { +        events snmp_trap_link_down; +        attributes-match { +            snmp_trap_link_down.interface-name matches ae0; +        } +        then { +            change-configuration {       +                retry count 5 interval 10; +                commands { +                    "deactivate interface ge-0/0/0 ether-options"; +                    "activate interface ge-0/0/0 unit 0"; +                } +                user-name tg15; +                commit-options { +                    log "deactivating 802.3 from ge-0/0/0 (ae0). Activating access port"; +                } +            } +        } +    } +    policy ae0up { +        events snmp_trap_link_up; +        attributes-match { +            snmp_trap_link_up.interface-name matches ae0; +        } +        then { +            change-configuration { +                retry count 5 interval 10; +                commands { +                    "deactivate interface ge-0/0/0 unit 0"; +                    "activate interface ge-0/0/0 ether-options"; +                } +                user-name tg15; +                commit-options { +                    log "activating 802.3 at ge-0/0/0 (ae0). Deactivating access port"; +                } +            } +        } +    } +} +protocols { +    igmp-snooping { +        vlan all; +    } +    rstp; +    lldp { +        interface all; +    } +    lldp-med { +        interface all; +    } +}                                        +ethernet-switching-options { +    analyzer dump { +        input { +            ingress { +                interface ge-0/0/23.0; +            } +            egress { +                interface ge-0/0/23.0; +            } +        } +        output { +            interface { +                ge-0/0/22.0; +            } +        } +    } +    storm-control { +        interface all; +    } +} +vlans { +    deltagere { +        vlan-id 200;                     +        l3-interface vlan.200; +    } +    mgmt { +        vlan-id 300; +        l3-interface vlan.300; +    } +} +poe { +    interface all; +} + diff --git a/fap/proof_of_concepts/tg15-tech82-poc1.tar.gz b/fap/proof_of_concepts/tg15-tech82-poc1.tar.gz Binary files differnew file mode 100755 index 0000000..2844b59 --- /dev/null +++ b/fap/proof_of_concepts/tg15-tech82-poc1.tar.gz diff --git a/fap/tools_temp/get_info.php b/fap/tools_temp/get_info.php new file mode 100644 index 0000000..84da5cf --- /dev/null +++ b/fap/tools_temp/get_info.php @@ -0,0 +1,48 @@ +<?php +    $community = '<sensored>'; +     +    /* +        Loopbacks: 151.216.255.0/24 +    */ +    $ips = array(); +    foreach(range(1, 254) as $n){ +        $ips[] = '151.216.255.' . $n; +    } +     +    /* +        mgmt nets +    */ +    foreach(range(180, 184) as $range){ +        foreach(range(2, 254) as $n){ # skips .1, which is the distro +            $ips[] = '151.216.' . $range . '.' . $n; +        } +    } + +    $n = 1; +    foreach($ips as $ip){ +        $hostname = @snmpget($ip, $community, '.1.3.6.1.2.1.1.5.0', 50000); +        if($hostname) { +            $sysdescr = snmpget($ip, $community, '.1.3.6.1.2.1.1.1.0', 50000); +            if(substr($sysdescr, 0, 30) === 'STRING: Juniper Networks, Inc.'){ +                $model = explode(' ', substr($sysdescr, 30))[1]; +            }else{ +                $model = 'unknown_model'; +            } +             +            # Sample string: STRING: Juniper Networks, Inc. ex3300-48p Ethernet Switch, kernel JUNOS 14.1X53-D15.2, Build date: 2014-12-21 02:50:15 UTC Copyright (c) 1996-2014 Juniper Networks, Inc. +            preg_match('/[0-9]{2}\.[0-9]{1}X[0-9]{2}-[A-Z]{1}[0-9]{2}\.[0-9]{1}/', $sysdescr, $regex_matches); +             +            if(isset($regex_matches[0])){ +                $version = $regex_matches[0]; +            }else{ +                $version = 'unknown_firmware'; +            } + + +            # 14.1X53-D15.2 + +            echo substr($hostname, 8) . ' ' . $ip . ' ' . $model . ' ' . $version; +            echo "\n"; +        } +    } +?>  | 
