Skip to content

aslevel_configuration

Thomas Holterbach edited this page Apr 11, 2022 · 18 revisions

AS-level configuration

The last configuration files describe the AS-level topology and give additional parameters such as which IP prefix to use for a given inter-AS link.

The file aslevel_links.txt is used to build the mini-Internet whereas the file aslevel_links_students.txt is a file that must be shared with the students and that contains useful information for them, such as with which ASes their AS is directly connected to and which IP prefix to use for an inter-AS link.

Automatic generation of the configuration files

These configuration files can be quite long (one line for every inter-AS link) and thus hard to write manually. We thus provide a script called generate_configurations.py that automatically generates these two configuration files. Once generated by our script, just copy the resulting config files in the config directory.

ℹ️ This script also generates the AS_config.txt file.

The pattern of the AS-level topology is however hard coded in this script (different regions interconnected with IXPs, etc). We provide different sizes of the topology, thus you can easily generate a 12-ASes topology or 70-ASes topology (use the NB_ASES variable in the source code to change the size).

⚠️ The names of the routers are also hard coded in the script. Thus if you use another layer-3 topology, you will need to update this script.

If you want to use your own AS-level topology that exhibits a different pattern than the one we use, you will have to build those configuration files, either manually or using a script that you must write.

We now show and explain the content of this configuration file for a 12-ASes topology and when generated using our generate_configuration.py script. Each line corresponds to an inter-AS link.

C1   C2       C3      C4     C5       C6          C7     C8         C9
---------------------------------------------------------------------------------
1   ZURI	Peer	  12    ZURI	Peer        100000	1000	179.0.1.0/24
1   ZURI	Customer  3     BASE	Provider    100000	1000	179.0.2.0/24
1   ZURI	Customer  4     MUNI	Provider    100000	1000	179.0.3.0/24
1   ZURI	Peer	  80    None	Peer        100000	1000	1,2,11,12
1   BASE	Peer	  81    None	Peer        100000	1000	11,12,13,14,15,16
1   ZURI	Peer	  2     ZURI	Peer        100000	1000	179.0.4.0/24
2   ZURI	Customer  4     BASE	Provider    100000	1000	179.0.5.0/24
2   ZURI	Customer  3     MUNI	Provider    100000	1000	179.0.6.0/24
2   ZURI	Peer	  80    None	Peer        100000	1000	1,2,11,12
2   BASE	Peer	  82    None	Peer        100000	1000	11,12,13,14,15,16
11  ZURI	Peer 	  2     ZURI	Peer        100000	1000	179.0.7.0/24
11  ZURI	Customer  13    BASE	Provider    100000	1000	179.0.8.0/24
11  ZURI	Customer  14    MUNI	Provider    100000	1000	179.0.9.0/24
11  ZURI	Peer	  80    None	Peer        100000	1000	1,2,11,12
11  BASE	Peer	  82    None	Peer        100000	1000	1,2,3,4,5,6
11  ZURI	Peer	  12    ZURI	Peer        100000	1000	179.0.10.0/24
12  ZURI	Customer  14    BASE	Provider    100000	1000	179.0.11.0/24
12  ZURI	Customer  13    MUNI	Provider    100000	1000	179.0.12.0/24
12  ZURI	Peer	  80    None	Peer        100000	1000	1,2,11,12
12  BASE	Peer	  81    None	Peer        100000	1000	1,2,3,4,5,6
3   LYON	Customer  5     ZURI	Provider    100000	1000	179.0.13.0/24
3   MILA	Customer  6     ZURI	Provider    100000	1000	179.0.14.0/24
3   LUGA	Peer	  4     LUGA	Peer        100000	1000	179.0.15.0/24
3   VIEN	Peer	  81    None	Peer        100000	1000	11,12,13,14,15,16
4   LYON	Customer  6     ZURI	Provider    100000	1000	179.0.16.0/24
4   MILA	Customer  5     ZURI	Provider    100000	1000	179.0.17.0/24
4   VIEN	Peer	  82    None	Peer        100000	1000	11,12,13,14,15,16
13  LYON	Customer  15    ZURI	Provider    100000	1000	179.0.18.0/24
13  MILA	Customer  16    ZURI	Provider    100000	1000	179.0.19.0/24
13  LUGA	Peer	  14    LUGA	Peer        100000	1000	179.0.20.0/24
13  VIEN	Peer	  82    None	Peer        100000	1000	1,2,3,4,5,6
14  LYON	Customer  16    ZURI	Provider    100000	1000	179.0.21.0/24
14  MILA	Customer  15    ZURI	Provider    100000	1000	179.0.22.0/24
14  VIEN	Peer	  81    None	Peer	    100000	1000	1,2,3,4,5,6
5   ZURI	Peer 	  6     ZURI	Peer	    100000	1000	179.0.23.0/24
5   BASE	Peer	  81    None	Peer	    100000	1000	11,12,13,14,15,16
6   BASE	Peer	  82    None	Peer	    100000	1000	11,12,13,14,15,16
15  ZURI	Peer	  16    ZURI	Peer	    100000	1000	179.0.24.0/24
15  BASE	Peer	  82    None	Peer	    100000	1000	1,2,3,4,5,6
16  BASE	Peer	  81    None	Peer	    100000	1000	1,2,3,4,5,6

Below is the description of each column.

C1: AS number of the AS on one end of the link.
C2: Router within the AS in C1 that is connected to the other AS.
C3: With which type of business relationship the AS in C1 is connected to the neighboring AS in C4. For instance, the second line indicates that AS1 is a provider of AS4, and AS4 a customer of AS1.
C4: Same as C1 but for the other end of the link.
C5: Same as C2 but for the other end of the link.
C6: Same as C3 but for the other end of the link.
C7: The throughput of the link.
C8: The delay of the link.
C9: Two possible cases:
    - When its an AS-to-AS link: IP prefix to use for the eBGP sessions.
    - When its an AS-to-IXP link: with which participants of the IXP the AS should peer with.

To illustrate, the second line indicates that ZURI in AS1 is connected to BASE in AS3, and AS1 is the provider of AS3.

To reduce the server load, an IXP AS contains only one router. Therefore, C5 is None when there is an IXP. C9 is used to autoconfigure the different networks and have network-wide connectivity when using the Config flag in the AS_config.txt configuration file.

We show and explain the content of the aslevel_links_students.txt configuration file for a 12-ASes topology and when generated using our generate_configuration.py script. Below is a snippet of this configuration file.

C1   C2      C3       C4     C5      C6             C8
1   ZURI    Peer      12    ZURI    Peer        179.0.1.1/24
12  ZURI    Peer      1     ZURI    Peer        179.0.1.2/24
1   ZURI    Customer  3     BASE    Provider    179.0.2.1/24
3   BASE    Provider  1     ZURI    Customer    179.0.2.2/24
1   ZURI    Customer  4     MUNI    Provider    179.0.3.1/24
4   MUNI    Provider  1     ZURI    Customer    179.0.3.2/24
1   ZURI    Peer      80    None    Peer        180.80.0.1/24
80  None    Peer      1     ZURI    Peer        180.80.0.80/24
1   BASE    Peer      81    None    Peer        180.81.0.1/24
81  None    Peer      1     BASE    Peer        180.81.0.81/24
1   ZURI    Peer      2     ZURI    Peer        179.0.4.1/24
2   ZURI    Peer      1     ZURI    Peer        179.0.4.2/24
2   ZURI    Customer  4     BASE    Provider    179.0.5.1/24

Below is the description of each column.

C1: AS number of the AS on one end of the link.
C2: Router within the AS in C1 that is connected to the other AS.
C3: With which type of business relationship the AS in C1 is connected to the neighboring AS in C4. For instance, the second line indicates that AS1 is a provider of AS4, and AS4 a customer of AS1.
C4: Same as C1 but for the other end of the link.
C5: Same as C2 but for the other end of the link.
C6: Same as C3 but for the other end of the link.
C8: IP address that is printed on the mini-Internet website to tell students which IP address they should use.

The content of this file is used to print on the mini-Internet website the AS connections. In case you want to let the students agree on which IP address to use for the eBGP sessions, you can replace in C8 the last byte of the IP address by X, e.g. 179.0.1.X/24.

You can modify the content of this file at runtime: the website will automatically print the new AS connections.