Changes between Version 20 and Version 21 of Workshops/Sig Comm2022/Mininet Optical
- Timestamp:
- Aug 19, 2022, 7:44:05 PM (2 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Workshops/Sig Comm2022/Mininet Optical
v20 v21 30 30 * Each compute node has 1 Ethernet interface: 31 31 {{{ 32 srv1 -co1-eth033 srv1 -lg1-eth034 srv2 -lg1-eth032 srv1_co1-eth0 33 srv1_lg1-eth0 34 srv2_lg1-eth0 35 35 }}} 36 36 … … 62 62 Fig.1 Logical Topology of the hardware used 63 63 64 This experiment demonstrates optical switching between the short (1-hop) path, between {{{srv1 -co1}}} and {{{srv1-lg1}}}, and the long (2-hop) path, between {{{srv1-co1}}} and {{{srv2-lg1}}}. It represents changing of the light path in C-RAN when a "Client" wants to dynamically change its base-band processing location between a nearby "Edge Cloud" and a further away "Central Cloud".64 This experiment demonstrates optical switching between the short (1-hop) path, between {{{srv1_co1}}} and {{{srv1_lg1}}}, and the long (2-hop) path, between {{{srv1_co1}}} and {{{srv2_lg1}}}. It represents changing of the light path in C-RAN when a "Client" wants to dynamically change its base-band processing location between a nearby "Edge Cloud" and a further away "Central Cloud". 65 65 66 66 To simulate the topology in hardware, the network component names are kept the same. … … 68 68 Experiment includes 3 servers: 69 69 {{{ 70 srv1 -co1 (192.168.1.1/24)71 srv1 -lg1 (192.168.1.2/24)72 srv2 -lg1 (192.168.1.3/24)]70 srv1_co1 (192.168.1.1/24) 71 srv1_lg1 (192.168.1.2/24) 72 srv2_lg1 (192.168.1.3/24)] 73 73 }}} 74 74 … … 85 85 86 86 {{{ 87 sw-da-co1-eth1 <--> srv1 -co1-eth088 sw-da-lg1-eth2 <--> srv1 -lg1-eth089 sw-da-lg1-eth3 <--> srv2 -lg1-eth087 sw-da-co1-eth1 <--> srv1_co1-eth0 88 sw-da-lg1-eth2 <--> srv1_lg1-eth0 89 sw-da-lg1-eth3 <--> srv2_lg1-eth0 90 90 }}} 91 91 … … 185 185 = Setting Up the Optical Topology = 186 186 187 == = Starting the Mininet-Optical Network ===187 == Starting the Mininet-Optical Network == 188 188 189 189 All of these commands should be run in a terminal window for the VM or server where Mininet-Optical is installed. … … 205 205 swda_co1 swda_lg1--------------------------| 206 206 | | | 207 srv1 -co1 srv1-lg1 srv2-lg1207 srv1_co1 srv1_lg1 srv2_lg1 208 208 209 209 This is for the SIGCOMM22 mini-tutorial at: … … 218 218 ---- 219 219 220 == = Mininet-Optical API ===220 == Mininet-Optical API == 221 221 222 222 In the COSMOS optical testbed, all devices are connected to a Calient S320 space switch. This switch serves as a programmable patch panel that allows any port to be connected to any other port, enabling realization of arbitrary topologies with fast re-connection between experiments. … … 255 255 {{{#!python 256 256 # Servers 257 srv1_co1 = self.addHost('srv1 -co1')257 srv1_co1 = self.addHost('srv1_co1') 258 258 ... 259 259 }}} … … 431 431 m=~/mininet/util/m 432 432 ... 433 $m srv1 -co1 ifconfig srv1-co1-eth0 192.168.1.1/24434 $m srv1 -lg1 ifconfig srv1-lg1-eth0 192.168.1.2/24435 $m srv2 -lg1 ifconfig srv2-lg1-eth0 192.168.1.3/24433 $m srv1_co1 ifconfig srv1_co1-eth0 192.168.1.1/24 434 $m srv1_lg1 ifconfig srv1_lg1-eth0 192.168.1.2/24 435 $m srv2_lg1 ifconfig srv2_lg1-eth0 192.168.1.3/24 436 436 }}} 437 437 … … 442 442 === Performing base test configuration 443 443 444 Once you execute the script, the script will ask for a prompt to perform a base test. This test pings 'srv-co1' to 'srv-lg1'; and pings 'srv-co1' to 'srv2 -lg1' without establishing any lightpath connections between ROADMS. Press `Return` key to perform the base test.444 Once you execute the script, the script will ask for a prompt to perform a base test. This test pings 'srv-co1' to 'srv-lg1'; and pings 'srv-co1' to 'srv2_lg1' without establishing any lightpath connections between ROADMS. Press `Return` key to perform the base test. 445 445 446 446 {{{#!shell-session … … 448 448 press return to test base configuration> 449 449 ... 450 *** srv1 -co1 pinging srv1-lg1450 *** srv1_co1 pinging srv1_lg1 451 451 PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. 452 452 From 192.168.1.1 icmp_seq=1 Destination Host Unreachable … … 457 457 3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2168ms 458 458 ... 459 *** srv1 -co1 pinging srv2-lg1459 *** srv1_co1 pinging srv2_lg1 460 460 PING 192.168.1.3 (192.168.1.3) 56(84) bytes of data. 461 461 From 192.168.1.1 icmp_seq=1 Destination Host Unreachable … … 469 469 As expected, none of the servers are able to ping each other because lightpath connections have not been established as of yet. 470 470 471 === Ping Servers Manually (''For extra credits'') === #point2471 === Ping Servers Manually === 472 472 473 473 You can also ping all the servers manually in the mininet-optical CLI to check the connections with below steps: 474 474 475 1. Open another terminal window and login to the node; using the same steps you used to open a new terminal window previously. Jump to the section on opening another terminal window [#point1 here] 476 2. Now, `~/mininet/util/m` can be used to 'log in' to any one of the servers much as you would with `ssh`. So you can ping any two servers. [[BR]] 477 Let's try to ping srv1-lg1 from srv1-co1 like below. Note that we previously assigned the address 192.168.1.2 to srv1-lg1 in the `config-sigcommtutorial.sh` file [#point3 here] 478 {{{#!shell-session 479 root@<node>:~/mininet-optical# ~/mininet/util/m srv1-co1 ping 192.168.1.2 480 PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. 481 From 192.168.1.1 icmp_seq=1 Destination Host Unreachable 482 From 192.168.1.1 icmp_seq=2 Destination Host Unreachable 483 From 192.168.1.1 icmp_seq=3 Destination Host Unreachable 484 ^C 485 --- 192.168.1.2 ping statistics --- 486 5 packets transmitted, 0 received, +3 errors, 100% packet loss, time 4146ms 487 }}} 488 3. Press CTRL+C to stop the ping. Similarly you can ping srv2-lg1 from srv1-co1 as below: 489 {{{#!shell-session 490 root@<node>:~/mininet-optical# ~/mininet/util/m srv1-co1 ping 192.168.1.3 491 PING 192.168.1.3 (192.168.1.3) 56(84) bytes of data. 492 From 192.168.1.1 icmp_seq=1 Destination Host Unreachable 493 From 192.168.1.1 icmp_seq=2 Destination Host Unreachable 494 From 192.168.1.1 icmp_seq=3 Destination Host Unreachable 495 ^C 496 --- 192.168.1.3 ping statistics --- 497 4 packets transmitted, 0 received, +3 errors, 100% packet loss, time 3156ms 498 }}} 499 Here, 192.168.1.3 is the address assigned to srv2-lg1. Press CTRL+C to exit the ping. 500 501 As expected, you cannot ping srv1-lg1 and srv2-lg1 from srv1-co1 right now, because no connections have been established. 475 1. Go back to terminal-1 to the mininet-optical CLI. Here you can ping one server from another to check the connection between them. Let's try to ping srv1_lg1 from srv1_co1 using the command `srv1_co1 ping -c3 srv1_lg1` as shown below: 476 {{{#!shell-session 477 mininet-optical> srv1_co1 ping -c3 srv1_lg1 478 PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data. 479 From 10.0.0.1 icmp_seq=1 Destination Host Unreachable 480 From 10.0.0.1 icmp_seq=2 Destination Host Unreachable 481 From 10.0.0.1 icmp_seq=3 Destination Host Unreachable 482 483 --- 10.0.0.2 ping statistics --- 484 3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2081ms 485 }}} 486 2. You should also try to ping srv2_lg1 from srv1_co1 using the below command: 487 {{{#!shell-session 488 mininet-optical> srv1_co1 ping -c3 srv2_lg1 489 PING 10.0.0.3 (10.0.0.3) 56(84) bytes of data. 490 From 10.0.0.1 icmp_seq=1 Destination Host Unreachable 491 From 10.0.0.1 icmp_seq=2 Destination Host Unreachable 492 From 10.0.0.1 icmp_seq=3 Destination Host Unreachable 493 494 --- 10.0.0.3 ping statistics --- 495 3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2142ms 496 }}} 497 498 As expected, you cannot ping srv1_lg1 and srv2_lg1 from srv1_co1 right now, because no connections have been established. 502 499 503 500 == Configuring ROADMs … … 535 532 Once you perform the base test as described above, the script will prompt you to press `Return` key to perform the test for configuration 1. Before trying the configuration, let's dive into what connections this script will install: 536 533 537 === Configuring srv1 -co1<==>srv1-lg1 Connection 1 on Mininet-Optical using NETCONF ===534 === Configuring srv1_co1<==>srv1_lg1 Connection 1 on Mininet-Optical using NETCONF === 538 535 539 536 … … 576 573 === Performing Experiment 1 and results 577 574 578 Now you can try installing the above lightpaths by yourself. As prompted by the terminal, press `Return` to install the configuration and perform the test. This will establish the connections between ROADMs as described above, which you can also view with the lines printed.575 Now you can try installing the above lightpaths by yourself. Go to terminal-2, and as prompted by the terminal, press `Return` to install the configuration and perform the test. This will establish the connections between ROADMs as described above, which you can also view with the lines printed. 579 576 580 577 … … 584 581 press return to configure and test configuration 1> 585 582 ... 586 *** Installing ROADM configuration 1 for srv1 -co1<-->srv1-lg1 (NETCONF)587 ... 588 *** srv1 -co1 pinging srv1-lg1583 *** Installing ROADM configuration 1 for srv1_co1<-->srv1_lg1 (NETCONF) 584 ... 585 *** srv1_co1 pinging srv1_lg1 589 586 PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. 590 587 64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.724 ms … … 598 595 ... 599 596 600 *** srv1 -co1 pinging srv2-lg1597 *** srv1_co1 pinging srv2_lg1 601 598 PING 192.168.1.3 (192.168.1.3) 56(84) bytes of data. 602 599 From 192.168.1.1 icmp_seq=1 Destination Host Unreachable … … 608 605 }}} 609 606 610 As expected, srv1 -co1 and srv1-lg1 are able to ping each other because we established the ROADM rules for short-hop configuration. Consequently, srv1-co1 and srv2-lg1 are not able to ping each other because no such connection is established yet.611 612 Note that the average ping time for srv1 -co1 to srv1-lg1 is 0.339 ms.607 As expected, srv1_co1 and srv1_lg1 are able to ping each other because we established the ROADM rules for short-hop configuration. Consequently, srv1_co1 and srv2_lg1 are not able to ping each other because no such connection is established yet. 608 609 Note that the average ping time for srv1_co1 to srv1_lg1 is 0.339 ms. 613 610 614 611 ''Note that the Mininet-Optical ROADM dataplane is currently modeled using OvS switching in the Linux kernel, so each hop will add some delay that would not be seen on hardware. Process scheduling, OS and VM overhead, etc. can create additional delays in a software emulator.'' 615 612 616 As before, you can ping the servers manually to verify the connections. You can jump back to that section [#point2 here]. 613 614 === Ping Servers Manually === 615 616 Like before, you can also ping all the servers manually in the mininet-optical CLI to check the connections with below steps: 617 618 1. Go back to terminal-1 to the mininet-optical CLI. Here you can ping one server from another to check the connection between them. Let's try to ping srv1_lg1 from srv1_co1 using the command `srv1_co1 ping -c3 srv1_lg1` as shown below: 619 {{{#!shell-session 620 mininet-optical> srv1_co1 ping -c3 srv1_lg1 621 PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. 622 64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.377 ms 623 64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.166 ms 624 64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.170 ms 625 626 --- 192.168.1.2 ping statistics --- 627 3 packets transmitted, 3 received, 0% packet loss, time 2114ms 628 rtt min/avg/max/mdev = 0.166/0.237/0.377/0.098 ms 629 }}} 630 2. You should also try to ping srv2_lg1 from srv1_co1 using the below command: 631 {{{#!shell-session 632 mininet-optical> srv1_co1 ping -c3 srv2_lg1 633 PING 10.0.0.3 (10.0.0.3) 56(84) bytes of data. 634 From 10.0.0.1 icmp_seq=1 Destination Host Unreachable 635 From 10.0.0.1 icmp_seq=2 Destination Host Unreachable 636 From 10.0.0.1 icmp_seq=3 Destination Host Unreachable 637 638 --- 10.0.0.3 ping statistics --- 639 3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2142ms 640 }}} 641 642 As expected, after installing configuration of Experiment 1, you should only be able to ping srv1_lg1 from srv1_co1. 617 643 618 644 619 645 == Network Interfaces Configuration for Experiment-2 (long-hop) 620 646 621 In Experiment 2, we are choosing to pass the optical signal through 2 hops (via a pair of 10km fiber spools with the 32km Manhattan dark fiber). This requires us to establish a connection between srv1 -co1 and srv2-lg1. Once you perform the experiment 1 as described above, the script will prompt you to press Return key to perform the test for configuration 2. Before trying the configuration, let's dive into what connections this script will install:622 623 === Configuring srv1 -co1<==>srv2-lg1 connection on Mininet-Optical using NETCONF ===647 In Experiment 2, we are choosing to pass the optical signal through 2 hops (via a pair of 10km fiber spools with the 32km Manhattan dark fiber). This requires us to establish a connection between srv1_co1 and srv2_lg1. Once you perform the experiment 1 as described above, the script will prompt you to press Return key to perform the test for configuration 2. Before trying the configuration, let's dive into what connections this script will install: 648 649 === Configuring srv1_co1<==>srv2_lg1 connection on Mininet-Optical using NETCONF === 624 650 625 651 The NETCONF servers for `rdm1-co1` and `rdm1-lg1` are listening on `localhost` at ports 1834 and 1831 as Experiment 1. We are configuring `rdm2-lg1' and 'rdm2-co1` to listen at ports 1832 and 1833 respectively. … … 687 713 === Performing Experiment 2 and Results 688 714 689 Now you can try installing the above lightpaths for Experiment 2 by yourself. As prompted by the terminal, press `Return` to install the configuration and perform the test. This will establish the connections between ROADMs as described above, which you can also view with the lines printed.715 Now you can try installing the above lightpaths for Experiment 2 by yourself. Go to terminal-2, and as prompted by the terminal, press `Return` to install the configuration and perform the test. This will establish the connections between ROADMs as described above, which you can also view with the lines printed. 690 716 691 717 {{{#!shell-session … … 694 720 press return to configure and perform Experiment 2> 695 721 ... 696 *** Installing ROADM configuration for srv1 -co1<-->srv2-lg1 (NETCONF)697 ... 698 *** srv1 -co1 pinging srv1-lg1722 *** Installing ROADM configuration for srv1_co1<-->srv2_lg1 (NETCONF) 723 ... 724 *** srv1_co1 pinging srv1_lg1 699 725 PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. 700 726 From 192.168.1.1 icmp_seq=1 Destination Host Unreachable … … 707 733 ... 708 734 709 *** srv1 -co1 pinging srv2-lg1735 *** srv1_co1 pinging srv2_lg1 710 736 PING 192.168.1.3 (192.168.1.3) 56(84) bytes of data. 711 737 64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=1.21 ms … … 718 744 }}} 719 745 720 As before, you can ping the servers manually to verify the connections. You can jump back to that section [#point2 here]. 721 722 As expected, srv1-co1 and srv2-lg1 are able to ping each other because we established the ROADM rules for long-hop configuration. Consequently, as opposed to Experiment 1, srv1-co1 and srv1-lg1 are not able to ping each other because no such connection is established yet. 723 724 Note that the average ping time for srv1-co1 to srv2-lg1 is 0.675 ms, and the average ping time for srv1-co1 to srv1-lg1 in Experiment 1 is 0.339 ms. Observe the slightly longer RTT to `srv2-lg1`, reflecting the increased propagation time across two 32km fibers to reach the "Central Cloud" data center. 746 747 As expected, srv1_co1 and srv2_lg1 are able to ping each other because we established the ROADM rules for long-hop configuration. Consequently, as opposed to Experiment 1, srv1_co1 and srv1_lg1 are not able to ping each other because no such connection is established yet. 748 749 Note that the average ping time for srv1_co1 to srv2_lg1 is 0.675 ms, and the average ping time for srv1_co1 to srv1_lg1 in Experiment 1 is 0.339 ms. Observe the slightly longer RTT to `srv2_lg1`, reflecting the increased propagation time across two 32km fibers to reach the "Central Cloud" data center. 750 751 === Ping Servers Manually === 752 753 Like before, you can also ping all the servers manually in the mininet-optical CLI to check the connections with below steps: 754 755 1. Go back to terminal-1 to the mininet-optical CLI. Here you can ping one server from another to check the connection between them. Let's try to ping srv1_lg1 from srv1_co1 using the command `srv1_co1 ping -c3 srv1_lg1` as shown below: 756 {{{#!shell-session 757 mininet-optical> srv1_co1 ping -c3 srv1_lg1 758 PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. 759 From 192.168.1.1 icmp_seq=1 Destination Host Unreachable 760 From 192.168.1.1 icmp_seq=2 Destination Host Unreachable 761 From 192.168.1.1 icmp_seq=3 Destination Host Unreachable 762 763 --- 192.168.1.2 ping statistics --- 764 3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2134ms 765 }}} 766 2. You should also try to ping srv2_lg1 from srv1_co1 using the below command: 767 {{{#!shell-session 768 mininet-optical> srv1_co1 ping -c3 srv2_lg1 769 PING 192.168.1.3 (192.168.1.3) 56(84) bytes of data. 770 64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.685 ms 771 64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.424 ms 772 64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.416 ms 773 774 --- 192.168.1.3 ping statistics --- 775 3 packets transmitted, 3 received, 0% packet loss, time 2192ms 776 rtt min/avg/max/mdev = 0.416/0.508/0.685/0.124 ms 777 }}} 778 779 As expected, after installing configuration of Experiment 2, you should not be able to ping srv1_lg1 from srv1_co1. But because the ROADMs are configured for the long-hop connection, you can successfully ping srv2_lg1 from srv1_co1. 725 780 726 781 = Shutting down Mininet-Optical =