| 402 | |
| 403 | == Step 3. Start an OpenFlow experiment and leave it running == |
| 404 | |
| 405 | As experimenter create a 2 VMs !OpenFlow experiment in the GPO InstaGENI rack. RSpec used: |
| 406 | {{{ |
| 407 | <?xml version="1.0" encoding="UTF-8"?> |
| 408 | <rspec xmlns="http://www.geni.net/resources/rspec/3" |
| 409 | xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" |
| 410 | xmlns:sharedvlan="http://www.protogeni.net/resources/rspec/ext/shared-vlan/1" |
| 411 | xs:schemaLocation="http://www.geni.net/resources/rspec/3 |
| 412 | http://www.geni.net/resources/rspec/3/request.xsd |
| 413 | http://www.protogeni.net/resources/rspec/ext/shared-vlan/1 |
| 414 | http://www.protogeni.net/resources/rspec/ext/shared-vlan/1/request.xsd" |
| 415 | type="request"> |
| 416 | |
| 417 | <node client_id="gpo-ig" exclusive="false"> |
| 418 | <sliver_type name="emulab-openvz" /> |
| 419 | <interface client_id="gpo-ig:if0"> |
| 420 | <ip address="10.42.18.43" netmask="255.255.255.0" type="ipv4" /> |
| 421 | </interface> |
| 422 | </node> |
| 423 | |
| 424 | <node client_id="gpo-ig2" exclusive="false"> |
| 425 | <sliver_type name="emulab-openvz" /> |
| 426 | <interface client_id="gpo-ig2:if0"> |
| 427 | <ip address="10.42.18.42" netmask="255.255.255.0" type="ipv4" /> |
| 428 | </interface> |
| 429 | </node> |
| 430 | |
| 431 | <link client_id="openflow-mesoscale-0"> |
| 432 | <interface_ref client_id="gpo-ig:if0" /> |
| 433 | <sharedvlan:link_shared_vlan name="mesoscale-openflow" /> |
| 434 | </link> |
| 435 | |
| 436 | <link client_id="openflow-mesoscale-1"> |
| 437 | <interface_ref client_id="gpo-ig2:if0" /> |
| 438 | <sharedvlan:link_shared_vlan name="mesoscale-openflow" /> |
| 439 | </link> |
| 440 | </rspec> |
| 441 | }}} |
| 442 | |
| 443 | Create a sliver and sliver for the 2 VMs on shared !OpenFlow VLAN 1750 in the GPO InstaGENI rack: |
| 444 | {{{ |
| 445 | $ omni.py createslice IG-MON-3-OF |
| 446 | INFO:omni:Loading config file /home/lnevers/.gcf/omni_config |
| 447 | INFO:omni:Using control framework pg |
| 448 | INFO:omni:Created slice with Name IG-MON-3-OF, URN urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-MON-3-OF, Expiration 2013-03-07 16:26:04+00:00 |
| 449 | INFO:omni: ------------------------------------------------------------ |
| 450 | INFO:omni: Completed createslice: |
| 451 | Options as run: |
| 452 | framework: pg |
| 453 | |
| 454 | Args: createslice IG-MON-3-OF |
| 455 | Result Summary: Created slice with Name IG-MON-3-OF, URN urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-MON-3-OF, Expiration 2013-03-07 16:26:04+00:00 |
| 456 | INFO:omni: ============================================================ |
| 457 | |
| 458 | |
| 459 | $ omni.py createsliver -a ig-gpo IG-MON-3-OF ./instageni-2vm-vlan1750-at-gpo.rspec |
| 460 | INFO:omni:Loading config file /home/lnevers/.gcf/omni_config |
| 461 | INFO:omni:Using control framework pg |
| 462 | INFO:omni:Substituting AM nickname ig-gpo with URL https://instageni.gpolab.bbn.com:12369/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN |
| 463 | INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-MON-3-OF expires on 2013-03-07 16:26:04 UTC |
| 464 | INFO:omni:Substituting AM nickname ig-gpo with URL https://instageni.gpolab.bbn.com:12369/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN |
| 465 | INFO:omni:Substituting AM nickname ig-gpo with URL https://instageni.gpolab.bbn.com:12369/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN |
| 466 | INFO:omni:Creating sliver(s) from rspec file ./instageni-2vm-vlan1750-at-gpo.rspec for slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-MON-3-OF |
| 467 | INFO:omni: (PG log url - look here for details on any failures: https://boss.instageni.gpolab.bbn.com/spewlogfile.php3?logfile=8af1230117ca9b383b6510da21d7abc7) |
| 468 | INFO:omni:Got return from CreateSliver for slice IG-MON-3-OF at https://instageni.gpolab.bbn.com:12369/protogeni/xmlrpc/am/2.0: |
| 469 | INFO:omni:<!-- Reserved resources for: |
| 470 | Slice: IG-MON-3-OF |
| 471 | at AM: |
| 472 | URN: unspecified_AM_URN |
| 473 | URL: https://instageni.gpolab.bbn.com:12369/protogeni/xmlrpc/am/2.0 |
| 474 | --> |
| 475 | INFO:omni:<rspec xmlns="http://www.geni.net/resources/rspec/3" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xmlns:sharedvlan="http://www.protogeni.net/resources/rspec/ext/shared-vlan/1" xs:schemaLocation="http://www.geni.net/resources/rspec/3 http://www.geni.net/resources/rspec/3/manifest.xsd http://www.protogeni.net/resources/rspec/ext/shared-vlan/1 http://www.protogeni.net/resources/rspec/ext/shared-vlan/1/request.xsd" type="manifest"> |
| 476 | |
| 477 | <node client_id="gpo-ig" exclusive="false" component_id="urn:publicid:IDN+instageni.gpolab.bbn.com+node+pc2" component_manager_id="urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm" sliver_id="urn:publicid:IDN+instageni.gpolab.bbn.com+sliver+2065"> |
| 478 | <sliver_type name="emulab-openvz"/> |
| 479 | <interface client_id="gpo-ig:if0" component_id="urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc2:eth1" sliver_id="urn:publicid:IDN+instageni.gpolab.bbn.com+sliver+2069" mac_address="02e922fceb01"> |
| 480 | <ip address="10.42.18.43" netmask="255.255.255.0" type="ipv4"/> |
| 481 | </interface> |
| 482 | <rs:vnode xmlns:rs="http://www.protogeni.net/resources/rspec/ext/emulab/1" name="pcvm2-9"/><host name="gpo-ig.IG-MON-3-OF.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com"/><services><login authentication="ssh-keys" hostname="pc2.instageni.gpolab.bbn.com" port="32058" username="lnevers"/></services></node> |
| 483 | |
| 484 | <node client_id="gpo-ig2" exclusive="false" component_id="urn:publicid:IDN+instageni.gpolab.bbn.com+node+pc2" component_manager_id="urn:publicid:IDN+instageni.gpolab.bbn.com+authority+cm" sliver_id="urn:publicid:IDN+instageni.gpolab.bbn.com+sliver+2066"> |
| 485 | <sliver_type name="emulab-openvz"/> |
| 486 | <interface client_id="gpo-ig2:if0" component_id="urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc2:eth2" sliver_id="urn:publicid:IDN+instageni.gpolab.bbn.com+sliver+2071" mac_address="0240e5291a6f"> |
| 487 | <ip address="10.42.18.42" netmask="255.255.255.0" type="ipv4"/> |
| 488 | </interface> |
| 489 | <rs:vnode xmlns:rs="http://www.protogeni.net/resources/rspec/ext/emulab/1" name="pcvm2-10"/><host name="gpo-ig2.IG-MON-3-OF.pgeni-gpolab-bbn-com.instageni.gpolab.bbn.com"/><services><login authentication="ssh-keys" hostname="pc2.instageni.gpolab.bbn.com" port="32059" username="lnevers"/></services></node> |
| 490 | |
| 491 | <link xmlns:sharedvlan="http://www.protogeni.net/resources/rspec/ext/shared-vlan/1" client_id="openflow-mesoscale-0" sliver_id="urn:publicid:IDN+instageni.gpolab.bbn.com+sliver+2068"> |
| 492 | <interface_ref client_id="gpo-ig:if0" component_id="urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc2:eth1" sliver_id="urn:publicid:IDN+instageni.gpolab.bbn.com+sliver+2069"/> |
| 493 | <sharedvlan:link_shared_vlan name="mesoscale-openflow"/> |
| 494 | </link> |
| 495 | |
| 496 | <link xmlns:sharedvlan="http://www.protogeni.net/resources/rspec/ext/shared-vlan/1" client_id="openflow-mesoscale-1" sliver_id="urn:publicid:IDN+instageni.gpolab.bbn.com+sliver+2070"> |
| 497 | <interface_ref client_id="gpo-ig2:if0" component_id="urn:publicid:IDN+instageni.gpolab.bbn.com+interface+pc2:eth2" sliver_id="urn:publicid:IDN+instageni.gpolab.bbn.com+sliver+2071"/> |
| 498 | <sharedvlan:link_shared_vlan name="mesoscale-openflow"/> |
| 499 | </link> |
| 500 | </rspec> |
| 501 | INFO:omni: ------------------------------------------------------------ |
| 502 | INFO:omni: Completed createsliver: |
| 503 | Options as run: |
| 504 | aggregate: ['ig-gpo'] |
| 505 | framework: pg |
| 506 | Args: createsliver IG-MON-3-OF ./instageni-2vm-vlan1750-at-gpo.rspec |
| 507 | Result Summary: Got Reserved resources RSpec from instageni-gpolab-bbn-com-protogeniv2 |
| 508 | INFO:omni: ============================================================ |
| 509 | }}} |
| 510 | |
| 511 | A FOAM sliver is needed to allow the traffic exchange. Using this FOAM RSpec: |
| 512 | {{{ |
| 513 | <?xml version="1.0" encoding="UTF-8"?> |
| 514 | <rspec xmlns="http://www.geni.net/resources/rspec/3" |
| 515 | xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" |
| 516 | xmlns:openflow="http://www.geni.net/resources/rspec/ext/openflow/3" |
| 517 | xs:schemaLocation="http://www.geni.net/resources/rspec/3 |
| 518 | http://www.geni.net/resources/rspec/3/request.xsd |
| 519 | http://www.geni.net/resources/rspec/ext/openflow/3 |
| 520 | http://www.geni.net/resources/rspec/ext/openflow/3/of-resv.xsd" |
| 521 | type="request"> |
| 522 | |
| 523 | <openflow:sliver description=" InstaGENI OpenFlow" email="lnevers@bbn.com"> |
| 524 | <openflow:controller url="tcp:mallorea.gpolab.bbn.com:33018" type="primary" /> |
| 525 | |
| 526 | <openflow:group name="bbn-instageni-1750"> |
| 527 | <openflow:datapath component_id="urn:publicid:IDN+openflow:foam:foam.instageni.gpolab.bbn.com+datapath+06:d6:84:34:97:c6:c9:00" |
| 528 | component_manager_id="urn:publicid:IDN+openflow:foam:foam.instageni.gpolab.bbn.com+authority+am" /> |
| 529 | </openflow:group> |
| 530 | |
| 531 | <openflow:match> |
| 532 | |
| 533 | <openflow:use-group name="bbn-instageni-1750" /> |
| 534 | |
| 535 | <openflow:packet> |
| 536 | <openflow:dl_type value="0x800,0x806"/> |
| 537 | <openflow:nw_dst value="10.42.18.0/24"/> |
| 538 | <openflow:nw_src value="10.42.18.0/24"/> |
| 539 | </openflow:packet> |
| 540 | </openflow:match> |
| 541 | |
| 542 | </openflow:sliver> |
| 543 | </rspec> |
| 544 | }}} |
| 545 | |
| 546 | Create a sliver at the GPO InstaGENI rack FOAM to allow the traffic exchange: |
| 547 | {{{ |
| 548 | $ omni.py createsliver -a ig-of-gpo IG-MON-3-OF ./instageni-openflow-at-gpo.rspec |
| 549 | INFO:omni:Loading config file /home/lnevers/.gcf/omni_config |
| 550 | INFO:omni:Using control framework pg |
| 551 | INFO:omni:Substituting AM nickname ig-of-gpo with URL https://foam.instageni.gpolab.bbn.com:3626/foam/gapi/1, URN unspecified_AM_URN |
| 552 | WARNING:omni:You asked to use AM API 2, but the AM(s) you are contacting do not all speak that version. |
| 553 | WARNING:omni:At the URLs you are contacting, all your AMs speak AM API v1. |
| 554 | WARNING:omni:Switching to AM API v1. Next time call Omni with '-V1'. |
| 555 | INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-MON-3-OF expires on 2013-03-07 16:26:04 UTC |
| 556 | INFO:omni:Substituting AM nickname ig-of-gpo with URL https://foam.instageni.gpolab.bbn.com:3626/foam/gapi/1, URN unspecified_AM_URN |
| 557 | INFO:omni:Substituting AM nickname ig-of-gpo with URL https://foam.instageni.gpolab.bbn.com:3626/foam/gapi/1, URN unspecified_AM_URN |
| 558 | INFO:omni:Creating sliver(s) from rspec file ./instageni-openflow-at-gpo.rspec for slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-MON-3-OF |
| 559 | INFO:omni:Got return from CreateSliver for slice IG-MON-3-OF at https://foam.instageni.gpolab.bbn.com:3626/foam/gapi/1: |
| 560 | INFO:omni:<?xml version="1.0" encoding="UTF-8"?> |
| 561 | INFO:omni: <!-- Reserved resources for: |
| 562 | Slice: IG-MON-3-OF |
| 563 | at AM: |
| 564 | URN: unspecified_AM_URN |
| 565 | URL: https://foam.instageni.gpolab.bbn.com:3626/foam/gapi/1 |
| 566 | --> |
| 567 | INFO:omni: |
| 568 | <rspec xmlns="http://www.geni.net/resources/rspec/3" |
| 569 | xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" |
| 570 | xmlns:openflow="http://www.geni.net/resources/rspec/ext/openflow/3" |
| 571 | xs:schemaLocation="http://www.geni.net/resources/rspec/3 |
| 572 | http://www.geni.net/resources/rspec/3/manifest.xsd |
| 573 | http://www.geni.net/resources/rspec/ext/openflow/3 |
| 574 | http://www.geni.net/resources/rspec/ext/openflow/3/of-resv.xsd" |
| 575 | type="manifest"> |
| 576 | |
| 577 | <openflow:sliver description=" InstaGENI OpenFlow" email="lnevers@bbn.com"> |
| 578 | <openflow:controller url="tcp:mallorea.gpolab.bbn.com:33018" type="primary" /> |
| 579 | |
| 580 | <openflow:group name="bbn-instageni-1750"> |
| 581 | <openflow:datapath component_id="urn:publicid:IDN+openflow:foam:foam.instageni.gpolab.bbn.com+datapath+06:d6:84:34:97:c6:c9:00" |
| 582 | component_manager_id="urn:publicid:IDN+openflow:foam:foam.instageni.gpolab.bbn.com+authority+am" /> |
| 583 | </openflow:group> |
| 584 | |
| 585 | <openflow:match> |
| 586 | |
| 587 | <openflow:use-group name="bbn-instageni-1750" /> |
| 588 | |
| 589 | <openflow:packet> |
| 590 | <openflow:dl_type value="0x800,0x806"/> |
| 591 | <openflow:nw_dst value="10.42.18.0/24"/> |
| 592 | <openflow:nw_src value="10.42.18.0/24"/> |
| 593 | </openflow:packet> |
| 594 | |
| 595 | </openflow:match> |
| 596 | |
| 597 | </openflow:sliver> |
| 598 | |
| 599 | </rspec> |
| 600 | |
| 601 | |
| 602 | INFO:omni: ------------------------------------------------------------ |
| 603 | INFO:omni: Completed createsliver: |
| 604 | |
| 605 | Options as run: |
| 606 | aggregate: ['ig-of-gpo'] |
| 607 | api_version: 1 |
| 608 | framework: pg |
| 609 | |
| 610 | Args: createsliver IG-MON-3-OF ./instageni-openflow-at-gpo.rspec |
| 611 | |
| 612 | Result Summary: Your AMs do not all speak requested API v2. At the URLs you are contacting, all your AMs speak AM API v1. Switching to AM API v1. Next time call Omni with '-V1'. |
| 613 | Got Reserved resources RSpec from foam-instageni-gpolab-bbn-com |
| 614 | INFO:omni: ============================================================ |
| 615 | }}} |
| 616 | This sliver is auto approved. State can be confirmed with omni command: |
| 617 | {{{ |
| 618 | $ omni.py sliverstatus -a ig-of-gpo IG-MON-3-OF -V1 |
| 619 | INFO:omni:Loading config file /home/lnevers/.gcf/omni_config |
| 620 | INFO:omni:Using control framework pg |
| 621 | INFO:omni:Substituting AM nickname ig-of-gpo with URL https://foam.instageni.gpolab.bbn.com:3626/foam/gapi/1, URN unspecified_AM_URN |
| 622 | INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-MON-3-OF expires on 2013-03-07 16:26:04 UTC |
| 623 | INFO:omni:Substituting AM nickname ig-of-gpo with URL https://foam.instageni.gpolab.bbn.com:3626/foam/gapi/1, URN unspecified_AM_URN |
| 624 | INFO:omni:Status of Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-MON-3-OF: |
| 625 | INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-MON-3-OF at AM https://foam.instageni.gpolab.bbn.com:3626/foam/gapi/1 has overall SliverStatus: ready |
| 626 | INFO:omni:Sliver status for Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-MON-3-OF at AM URL https://foam.instageni.gpolab.bbn.com:3626/foam/gapi/1 |
| 627 | INFO:omni:{ |
| 628 | "geni_status": "ready", |
| 629 | "geni_urn": "urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-MON-3-OF:8070b745-84c7-47eb-8e04-63a764997f3a", |
| 630 | "foam_pend_reason": null, |
| 631 | "foam_expires": "2013-03-07 16:26:04+00:00", |
| 632 | "geni_resources": [ |
| 633 | { |
| 634 | "geni_urn": "urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-MON-3-OF:8070b745-84c7-47eb-8e04-63a764997f3a", |
| 635 | "geni_error": "", |
| 636 | "geni_status": "ready" |
| 637 | } |
| 638 | ], |
| 639 | "foam_status": "Approved" |
| 640 | } |
| 641 | INFO:omni: ------------------------------------------------------------ |
| 642 | INFO:omni: Completed sliverstatus: |
| 643 | Options as run: |
| 644 | aggregate: ['ig-of-gpo'] |
| 645 | api_version: 1 |
| 646 | framework: pg |
| 647 | Args: sliverstatus IG-MON-3-OF |
| 648 | Result Summary: Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-MON-3-OF expires on 2013-03-07 16:26:04 UTC |
| 649 | Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+IG-MON-3-OF at AM https://foam.instageni.gpolab.bbn.com:3626/foam/gapi/1 has overall SliverStatus: ready. |
| 650 | Returned status of slivers on 1 of 1 possible aggregates. |
| 651 | INFO:omni: ============================================================ |
| 652 | }}} |
| 653 | |
| 654 | Determine login for assigned nodes: |
| 655 | {{{ |
| 656 | $ readyToLogin.py -a ig-gpo IG-MON-3-OF |
| 657 | <...> |
| 658 | gpo-ig's geni_status is: ready (am_status:ready) |
| 659 | User lnevers logins to gpo-ig using: |
| 660 | xterm -e ssh -p 32058 -i /home/lnevers/.ssh/id_rsa lnevers@pc2.instageni.gpolab.bbn.com & |
| 661 | |
| 662 | gpo-ig2's geni_status is: ready (am_status:ready) |
| 663 | User lnevers logins to gpo-ig2 using: |
| 664 | xterm -e ssh -p 32059 -i /home/lnevers/.ssh/id_rsa lnevers@pc2.instageni.gpolab.bbn.com & |
| 665 | }}} |
| 666 | |
| 667 | |
| 668 | Login to VM named 'gpo-ig' and send traffic to remote: |
| 669 | {{{ |
| 670 | $ ssh -p 32058 -i /home/lnevers/.ssh/id_rsa lnevers@pc2.instageni.gpolab.bbn.com |
| 671 | |
| 672 | [lnevers@ig-gpo ~]$ ping 10.42.18.42 -c 5 |
| 673 | PING 10.42.18.42 (10.42.18.42) 56(84) bytes of data. |
| 674 | 64 bytes from 10.42.18.42: icmp_req=1 ttl=64 time=6.73 ms |
| 675 | 64 bytes from 10.42.18.42: icmp_req=2 ttl=64 time=0.077 ms |
| 676 | 64 bytes from 10.42.18.42: icmp_req=3 ttl=64 time=0.075 ms |
| 677 | 64 bytes from 10.42.18.42: icmp_req=4 ttl=64 time=0.075 ms |
| 678 | 64 bytes from 10.42.18.42: icmp_req=5 ttl=64 time=0.075 ms |
| 679 | |
| 680 | --- 10.42.18.42 ping statistics --- |
| 681 | 5 packets transmitted, 5 received, 0% packet loss, time 4001ms |
| 682 | rtt min/avg/max/mdev = 0.075/1.407/6.735/2.664 ms |
| 683 | }}} |
| 684 | |
| 685 | Login to VM named 'gpo-ig2' and send traffic to remote: |
| 686 | {{{ |
| 687 | $ ssh -p 32059 -i /home/lnevers/.ssh/id_rsa lnevers@pc2.instageni.gpolab.bbn.com |
| 688 | |
| 689 | [lnevers@ig-gpo2 ~]$ ping 10.42.18.43 -c 5 |
| 690 | PING 10.42.18.43 (10.42.18.43) 56(84) bytes of data. |
| 691 | 64 bytes from 10.42.18.43: icmp_req=1 ttl=64 time=6.33 ms |
| 692 | 64 bytes from 10.42.18.43: icmp_req=2 ttl=64 time=0.075 ms |
| 693 | 64 bytes from 10.42.18.43: icmp_req=3 ttl=64 time=0.074 ms |
| 694 | 64 bytes from 10.42.18.43: icmp_req=4 ttl=64 time=0.076 ms |
| 695 | 64 bytes from 10.42.18.43: icmp_req=5 ttl=64 time=0.074 ms |
| 696 | |
| 697 | --- 10.42.18.43 ping statistics --- |
| 698 | 5 packets transmitted, 5 received, 0% packet loss, time 4000ms |
| 699 | rtt min/avg/max/mdev = 0.074/1.327/6.337/2.505 ms |
| 700 | [lnevers@ig-gpo2 ~]$ |
| 701 | }}} |
| 702 | |
| 703 | Leave experiment running |
| 704 | |