ps做电商网站流程,wordpress点击图片不显示,东莞网站建设网站制作公司,服务器怎么发布网站实验参考#xff1a; Mininet脚本实现控制交换机行为 实验步骤#xff1a; 1. 一台交换机两台主机#xff0c;实现从1端口进入的数据流转发到2端口#xff0c;从2端口进入的数据流转发到1端口。 1. 创建新文件mymininet1.py并编辑以下内容#xff08;注意要将控制器设置为… 实验参考 Mininet脚本实现控制交换机行为 实验步骤 1. 一台交换机两台主机实现从1端口进入的数据流转发到2端口从2端口进入的数据流转发到1端口。 1. 创建新文件mymininet1.py并编辑以下内容注意要将控制器设置为Opendaylight安装的虚拟机即修改第37行代码之后同理 1 #!/usr/bin/python 2 from mininet.net import Mininet3 from mininet.node import Node4 from mininet.link import Link5 from mininet.log import setLogLevel, info6 from mininet.util import quietRun7 8 from time import sleep9
10 def scratchNet( cnamecontroller, cargs-v ptcp: ):
11 Create network from scratch using Open vSwitch.
12
13 info( *** Creating nodes\n )
14 controller Node( c0, inNamespaceFalse )
15 switch0 Node( s0, inNamespaceFalse )
16 h0 Node( h0 )
17 h1 Node( h1 )
18
19 info( *** Creating links\n )
20 Link( h0, switch0 )
21 Link( h1, switch0 )
22
23 info( *** Configuring hosts\n )
24 h0.setIP( 192.168.123.1/24 )
25 h1.setIP( 192.168.123.2/24 )
26 info( str( h0 ) \n )
27 info( str( h1 ) \n )
28
29 info( *** Starting network using Open vSwitch\n )
30 controller.cmd( cname cargs )
31 switch0.cmd( ovs-vsctl del-br dp0 )
32 switch0.cmd( ovs-vsctl add-br dp0 )
33
34 for intf in switch0.intfs.values():
35 print intf
36 print switch0.cmd( ovs-vsctl add-port dp0 %s % intf )
37 switch0.cmd( ovs-vsctl set-controller dp0 tcp:10.0.0.8:6633 )
38 switch0.cmd( ovs-ofctl add-flow dp0 \in_port1 actionsoutput:2\ )
39 switch0.cmd( ovs-ofctl add-flow dp0 \in_port2 actionsoutput:1\ )
40
41 info( *** Waiting for switch to connect to controller )
42 while is_connected not in quietRun( ovs-vsctl show ):
43 sleep( 1 )
44 info( . )
45 info( \n )
46
47 info( *** Running test\n )
48 h0.cmdPrint( ping -c6 h1.IP() )
49 h1.cmdPrint( ping -c6 h0.IP() )
50
51 info( *** Stopping network\n )
52 controller.cmd( kill % cname )
53 switch0.cmd( ovs-vsctl del-br dp0 )
54 switch0.deleteIntfs()
55 info( \n )
56
57 if __name__ __main__:
58 setLogLevel( info )
59 info( *** Scratch network demo (kernel datapath)\n )
60 Mininet.init()
61 scratchNet() 2. 改为可执行文件并将其执行 2. 两台交换机两台主机主机0连接交换机0主机1连接交换机1交换机0连接交换机1数据转发端口要求同1。 1. 创建新文件mymininet2.py并编辑以下内容 1 #!/usr/bin/python 2 from mininet.net import Mininet3 from mininet.node import Node4 from mininet.link import Link5 from mininet.log import setLogLevel, info6 from mininet.util import quietRun7 8 from time import sleep9
10 def scratchNet( cnamecontroller, cargs-v ptcp: ):
11 Create network from scratch using Open vSwitch.
12
13 info( *** Creating nodes\n )
14 controller Node( c0, inNamespaceFalse )
15 switch0 Node( s0, inNamespaceFalse )
16 switch1 Node( s1, inNamespaceFalse )
17 h0 Node( h0 )
18 h1 Node( h1 )
19
20 info( *** Creating links\n )
21 Link( h0, switch0 )
22 Link( h1, switch1 )
23 Link( switch0, switch1 )
24
25 info( *** Configuring hosts\n )
26 h0.setIP( 192.168.123.1/24 )
27 h1.setIP( 192.168.123.2/24 )
28 info( str( h0 ) \n )
29 info( str( h1 ) \n )
30
31 info( *** Starting network using Open vSwitch\n )
32 controller.cmd( cname cargs )
33 switch0.cmd( ovs-vsctl del-br dp0 )
34 switch0.cmd( ovs-vsctl add-br dp0 )
35 switch1.cmd( ovs-vsctl del-br dp1 )
36 switch1.cmd( ovs-vsctl add-br dp1 )
37
38
39 for intf in switch0.intfs.values():
40 print intf
41 print switch0.cmd( ovs-vsctl add-port dp0 %s % intf )
42
43 for intf in switch1.intfs.values():
44 print intf
45 print switch1.cmd( ovs-vsctl add-port dp1 %s % intf )
46
47 switch0.cmd( ovs-vsctl set-controller dp0 tcp:10.0.0.8:6633 )
48 switch1.cmd( ovs-vsctl set-controller dp1 tcp: 10.0.0.8:6633 )
49 switch0.cmd( ovs-ofctl add-flow dp0 \in_port1 actionsoutput:2\ )
50 switch0.cmd( ovs-ofctl add-flow dp0 \in_port2 actionsoutput:1\ )
51 switch1.cmd( ovs-ofctl add-flow dp1 \in_port1 actionsoutput:2\ )
52 switch1.cmd( ovs-ofctl add-flow dp1 \in_port2 actionsoutput:1\ )
53
54
55 info( *** Waiting for switch to connect to controller )
56 while is_connected not in quietRun( ovs-vsctl show ):
57 sleep( 1 )
58 info( . )
59 info( \n )
60 print switch0.cmd( ovs-ofctl show dp0 )
61 print switch1.cmd( ovs-ofctl show dp1 )
62
63
64 info( *** Running test\n )
65 h0.cmdPrint( ping -c3 h1.IP() )
66 h1.cmdPrint( ping -c3 h0.IP() )
67
68 info( *** Stopping network\n )
69 controller.cmd( kill % cname )
70 switch0.cmd( ovs-vsctl del-br dp0 )
71 switch0.deleteIntfs()
72 switch1.cmd( ovs-vsctl del-br dp1 )
73 switch1.deleteIntfs()
74 info( \n )
75
76 if __name__ __main__:
77 setLogLevel( info )
78 info( *** Scratch network demo (kernel datapath)\n )
79 Mininet.init()
80 scratchNet() 2. 改为可执行文件并将其执行 3. 与2类似但是在创建link的时候设置带宽、延迟以及丢包率。 1. 创建新文件mymininet3.py并编辑以下内容 1 #!/usr/bin/python 2 from mininet.net import Mininet3 from mininet.node import Node4 from mininet.link import TCLink5 from mininet.log import setLogLevel, info6 from mininet.util import quietRun7 8 from time import sleep9
10 def scratchNet( cnamecontroller, cargs-v ptcp: ):
11 Create network from scratch using Open vSwitch.
12
13 info( *** Creating nodes\n )
14 controller Node( c0, inNamespaceFalse )
15 switch0 Node( s0, inNamespaceFalse )
16 switch1 Node( s1, inNamespaceFalse )
17 h0 Node( h0 )
18 h1 Node( h1 )
19
20 info( *** Creating links\n )
21
22 linkopts0dict(bw10)
23 linkopts1dict(bw10, delay5ms, loss10)
24 TCLink( h0, switch0,**linkopts0)
25 TCLink( h1, switch1,**linkopts0)
26 TCLink( switch0, switch1,**linkopts1)
27
28
29 info( *** Configuring hosts\n )
30 h0.setIP( 192.168.123.1/24 )
31 h1.setIP( 192.168.123.2/24 )
32 info( str( h0 ) \n )
33 info( str( h1 ) \n )
34
35 info( *** Starting network using Open vSwitch\n )
36 controller.cmd( cname cargs )
37 switch0.cmd( ovs-vsctl del-br dp0 )
38 switch0.cmd( ovs-vsctl add-br dp0 )
39 switch1.cmd( ovs-vsctl del-br dp1 )
40 switch1.cmd( ovs-vsctl add-br dp1 )
41
42
43 for intf in switch0.intfs.values():
44 print intf
45 print switch0.cmd( ovs-vsctl add-port dp0 %s % intf )
46
47 for intf in switch1.intfs.values():
48 print intf
49 print switch1.cmd( ovs-vsctl add-port dp1 %s % intf )
50
51 switch0.cmd( ovs-vsctl set-controller dp0 tcp:10.0.0.8:6633 )
52 switch1.cmd( ovs-vsctl set-controller dp1 tcp: 10.0.0.8:6633 )
53 switch0.cmd( ovs-ofctl add-flow dp0 \in_port1 actionsoutput:2\ )
54 switch0.cmd( ovs-ofctl add-flow dp0 \in_port2 actionsoutput:1\ )
55 switch1.cmd( ovs-ofctl add-flow dp1 \in_port1 actionsoutput:2\ )
56 switch1.cmd( ovs-ofctl add-flow dp1 \in_port2 actionsoutput:1\ )
57
58
59 info( *** Waiting for switch to connect to controller )
60 while is_connected not in quietRun( ovs-vsctl show ):
61 sleep( 1 )
62 info( . )
63 info( \n )
64 print switch0.cmd( ovs-ofctl show dp0 )
65 print switch1.cmd( ovs-ofctl show dp1 )
66
67
68 info( *** Running test\n )
69 h0.cmdPrint( ping -c3 h1.IP() )
70 h1.cmdPrint( ping -c3 h0.IP() )
71
72 info( *** Stopping network\n )
73 controller.cmd( kill % cname )
74 switch0.cmd( ovs-vsctl del-br dp0 )
75 switch0.deleteIntfs()
76 switch1.cmd( ovs-vsctl del-br dp1 )
77 switch1.deleteIntfs()
78 info( \n )
79
80 if __name__ __main__:
81 setLogLevel( info )
82 info( *** Scratch network demo (kernel datapath)\n )
83 Mininet.init()
84 scratchNet() 2. 改为可执行文件并将其执行 实验结论 在Mininet脚本中可以通过使用“ovs-vsctl”命令直接控制Open vSwitch实现通信。 转载于:https://www.cnblogs.com/ptolemy/p/11255985.html