VLAN configuration in mininet
[Topology]
h6
|
h5
|
h1,h2,h3,h4
h1, h2,h3,h4 are hosts, h5 is a switch, and h6 is a router.
h1 and h2 are in the same VLAN while h3 and h4 are in the same vlan.
[Need to do first]
1. sudo apt-get install bridge-utils
2. sudo apt-get install vlan
3.sudo modprobe 8021q
[mininet script]
#!/usr/bin/env python from mininet.cli import CLI from mininet.link import Link,TCLink,Intf from mininet.net import Mininet from mininet.node import RemoteController
if '__main__' == __name__: net = Mininet(link=TCLink) h1 = net.addHost('h1') h2 = net.addHost('h2') h3 = net.addHost('h3') h4 = net.addHost('h4') #h5 is a switch h5 = net.addHost('h5') #h6 is a router h6 = net.addHost('h6') Link(h1, h5) Link(h2, h5) Link(h3, h5) Link(h4, h5) Link(h5, h6) net.build()
h1.cmd("ifconfig h1-eth0 0")
h2.cmd("ifconfig h2-eth0 0")
h3.cmd("ifconfig h3-eth0 0")
h4.cmd("ifconfig h4-eth0 0")
h5.cmd("ifconfig h5-eth0 0")
h5.cmd("ifconfig h5-eth1 0")
h5.cmd("ifconfig h5-eth2 0")
h5.cmd("ifconfig h5-eth3 0")
h5.cmd("ifconfig h5-eth4 0")
h6.cmd("ifconfig h6-eth0 0") h5.cmd("vconfig add h5-eth4 10") h5.cmd("vconfig add h5-eth4 20") h6.cmd("vconfig add h6-eth0 10") h6.cmd("vconfig add h6-eth0 20") h5.cmd("ifconfig h5-eth4.10 up") h5.cmd("ifconfig
h5-eth4.20 up")
h5.cmd("brctl addbr brvlan10")
h5.cmd("brctl addbr
brvlan20")
h5.cmd("brctl addif
brvlan10 h5-eth0")
h5.cmd("brctl addif
brvlan10 h5-eth1")
h5.cmd("brctl addif
brvlan10 h5-eth4.10")
h5.cmd("brctl addif
brvlan20 h5-eth2")
h5.cmd("brctl addif
brvlan20 h5-eth3")
h5.cmd("brctl addif
brvlan20 h5-eth4.20")
h5.cmd("ifconfig brvlan10 up")
h5.cmd("ifconfig brvlan20 up")
h6.cmd("echo
1 > /proc/sys/net/ipv4/ip_forward")
h6.cmd("ifconfig h6-eth0.10 10.0.10.254
netmask 255.255.255.0")
h6.cmd("ifconfig h6-eth0.20 10.0.20.254
netmask 255.255.255.0")
h1.cmd("ifconfig h1-eth0 10.0.10.1 netmask 255.255.255.0")
h2.cmd("ifconfig h2-eth0 10.0.10.2 netmask 255.255.255.0")
h3.cmd("ifconfig h3-eth0 10.0.20.1 netmask 255.255.255.0")
h4.cmd("ifconfig h4-eth0 10.0.20.2 netmask 255.255.255.0")
h1.cmd("ip route add default via
10.0.10.254 dev h1-eth0")
h2.cmd("ip route add default via
10.0.10.254 dev h2-eth0")
h3.cmd("ip route add default via
10.0.20.254 dev h3-eth0")
h4.cmd("ip route add default via
10.0.20.254 dev h4-eth0") CLI(net) net.stop() |
[Execution]
h1 ping h2
h1 ping h4
h2 ping h3
[Case 2]
h1,h2----h3----h4---h5,h6
h1,h2,h5,h6 are hosts. h1 and h5 are in the same VLAN while h2 and h6 are in the same VLAN.
h3, h4 are configured as switches.
[mininet script]
#!/usr/bin/env python from mininet.cli import CLI from mininet.link import Link,TCLink,Intf from mininet.net import Mininet from mininet.node import RemoteController
if '__main__' == __name__: net = Mininet(link=TCLink) #h1 is under vlan10 h1 = net.addHost('h1') #h2 is under vlan20 h2 = net.addHost('h2') #h3 is a switch h3 = net.addHost('h3') #h4 is a switch h4 = net.addHost('h4') #h5 is under vlan10 h5 = net.addHost('h5') #h6 is under vlan20 h6 = net.addHost('h6') Link(h1, h3) Link(h2, h3) Link(h3, h4) Link(h5, h4) Link(h6, h4) net.build() h3.cmd("ifconfig h3-eth2 0") h4.cmd("ifconfig h4-eth0 0") h3.cmd("vconfig add h3-eth2 10") h3.cmd("vconfig add h3-eth2 20") h4.cmd("vconfig add h4-eth0 10") h4.cmd("vconfig add h4-eth0 20") h3.cmd("ifconfig h3-eth2.10 up") h3.cmd("ifconfig h3-eth2.20 up") h4.cmd("ifconfig h4-eth0.10 up") h4.cmd("ifconfig h4-eth0.20 up") h3.cmd("brctl addbr brvlan10") h3.cmd("brctl addbr brvlan20") h3.cmd("brctl addif brvlan10 h3-eth0") h3.cmd("brctl addif brvlan20 h3-eth1") h3.cmd("brctl addif brvlan10 h3-eth2.10") h3.cmd("brctl addif brvlan20 h3-eth2.20") h4.cmd("brctl addbr brvlan10") h4.cmd("brctl addbr brvlan20") h4.cmd("brctl addif brvlan10 h4-eth1") h4.cmd("brctl addif brvlan20 h4-eth2") h4.cmd("brctl addif brvlan10 h4-eth0.10") h4.cmd("brctl addif brvlan20 h4-eth0.20") h3.cmd("ifconfig brvlan10 up") h3.cmd("ifconfig brvlan20 up") h4.cmd("ifconfig brvlan10 up") h4.cmd("ifconfig brvlan20 up") CLI(net) net.stop() |
[Execution]
[case 3]
[mininet script:vlan3.py]
#!/usr/bin/env python from mininet.net import Mininet from mininet.cli import CLI from mininet.link
import Link,TCLink,Intf if '__main__' == __name__: net
= Mininet(link=TCLink) h1 =
net.addHost('h1') h2 =
net.addHost('h2') h3 =
net.addHost('h3') h4 =
net.addHost('h4') #h5
is a switch h5 =
net.addHost('h5') h6 =
net.addHost('h6')
Link(h1, h5)
Link(h2, h5)
Link(h3, h6)
Link(h4, h6)
Link(h5, h6) net.build()
h1.cmd("ifconfig h1-eth0 0")
h2.cmd("ifconfig h2-eth0 0")
h3.cmd("ifconfig h3-eth0 0")
h4.cmd("ifconfig h4-eth0 0")
h5.cmd("ifconfig h5-eth0 0")
h5.cmd("ifconfig h5-eth1 0")
h5.cmd("ifconfig h5-eth2 0")
h6.cmd("ifconfig h6-eth0 0")
h6.cmd("ifconfig h6-eth0 0")
h6.cmd("ifconfig h6-eth0 0")
h5.cmd("vconfig add h5-eth2 10")
h5.cmd("vconfig add h5-eth2 20")
h6.cmd("vconfig add h6-eth2 10")
h6.cmd("vconfig add h6-eth2 20")
h5.cmd("ifconfig h5-eth2.10 up")
h5.cmd("ifconfig h5-eth2.20 up")
h6.cmd("ifconfig h6-eth2.10 up")
h6.cmd("ifconfig h6-eth2.20 up")
h5.cmd("brctl addbr
brvlan10")
h5.cmd("brctl addbr
brvlan20")
h5.cmd("brctl addif
brvlan10 h5-eth0")
h5.cmd("brctl addif
brvlan10 h5-eth2.10")
h5.cmd("brctl addif
brvlan20 h5-eth1")
h5.cmd("brctl addif
brvlan20 h5-eth2.20")
h5.cmd("ifconfig brvlan10 up")
h5.cmd("ifconfig brvlan20 up")
h6.cmd("brctl addbr
brvlan10")
h6.cmd("brctl addbr
brvlan20")
h6.cmd("brctl addif
brvlan10 h6-eth0")
h6.cmd("brctl addif
brvlan10 h6-eth2.10")
h6.cmd("brctl addif
brvlan20 h6-eth1")
h6.cmd("brctl addif
brvlan20 h6-eth2.20")
h6.cmd("ifconfig brvlan10 up")
h6.cmd("ifconfig brvlan20 up")
h1.cmd("ifconfig h1-eth0 10.0.10.1 netmask 255.255.255.0")
h2.cmd("ifconfig h2-eth0 10.0.10.2 netmask 255.255.255.0")
h3.cmd("ifconfig h3-eth0 10.0.10.3 netmask 255.255.255.0")
h4.cmd("ifconfig h4-eth0 10.0.10.4 netmask 255.255.255.0")
CLI(net) net.stop() |
[Execution]
h1 can ping h3, but not h2 and h4. Because h2 and
h4 are in a different vlan.
[case 4]
[mininet script:vlan2.py]
#!/usr/bin/env python from mininet.net import Mininet from mininet.cli import CLI from mininet.link
import Link,TCLink,Intf if '__main__' == __name__: net
= Mininet(link=TCLink) h1 =
net.addHost('h1') h2 =
net.addHost('h2') h3 =
net.addHost('h3') h4 =
net.addHost('h4')
#h5,h6,h7 is a switch h5 =
net.addHost('h5') h6 =
net.addHost('h6') h7 =
net.addHost('h7') #h8
is a router h8 =
net.addHost('h8')
Link(h1, h5)
Link(h2, h5)
Link(h3, h6)
Link(h4, h6)
Link(h5, h7)
Link(h6, h7)
Link(h7, h8) net.build()
h1.cmd("ifconfig h1-eth0 0")
h2.cmd("ifconfig h2-eth0 0")
h3.cmd("ifconfig h3-eth0 0")
h4.cmd("ifconfig h4-eth0 0")
h5.cmd("ifconfig h5-eth0 0")
h5.cmd("ifconfig h5-eth1 0")
h5.cmd("ifconfig h5-eth2 0")
h6.cmd("ifconfig h6-eth0 0")
h6.cmd("ifconfig h6-eth1 0")
h6.cmd("ifconfig h6-eth2 0")
h7.cmd("ifconfig h7-eth0 0")
h7.cmd("ifconfig h7-eth1 0")
h8.cmd("ifconfig h8-eth0 0") h5.cmd("vconfig add h5-eth2 10")
h5.cmd("vconfig add h5-eth2 20")
h6.cmd("vconfig add h6-eth2 10")
h6.cmd("vconfig add h6-eth2 20")
h7.cmd("vconfig add h7-eth0 10")
h7.cmd("vconfig add h7-eth0 20")
h7.cmd("vconfig add h7-eth1 10")
h7.cmd("vconfig add h7-eth1 20")
h7.cmd("vconfig add h7-eth2 10")
h7.cmd("vconfig add h7-eth2 20")
h8.cmd("vconfig add h8-eth0 10")
h8.cmd("vconfig add h8-eth0 20")
h5.cmd("ifconfig h5-eth2.10 up")
h5.cmd("ifconfig h5-eth2.20 up")
h6.cmd("ifconfig h6-eth2.10 up")
h6.cmd("ifconfig h6-eth2.20 up")
h7.cmd("ifconfig h7-eth0.10 up")
h7.cmd("ifconfig h7-eth0.20 up")
h7.cmd("ifconfig h7-eth1.10 up")
h7.cmd("ifconfig h7-eth1.20 up")
h7.cmd("ifconfig h7-eth2.10 up")
h7.cmd("ifconfig h7-eth2.20 up")
h5.cmd("brctl addbr
brvlan10")
h5.cmd("brctl addbr
brvlan20")
h5.cmd("brctl addif
brvlan10 h5-eth0")
h5.cmd("brctl addif
brvlan10 h5-eth2.10")
h5.cmd("brctl addif
brvlan20 h5-eth1")
h5.cmd("brctl addif
brvlan20 h5-eth2.20")
h5.cmd("ifconfig brvlan10 up")
h5.cmd("ifconfig brvlan20 up")
h6.cmd("brctl addbr
brvlan10")
h6.cmd("brctl addbr
brvlan20")
h6.cmd("brctl addif
brvlan10 h6-eth0")
h6.cmd("brctl addif
brvlan10 h6-eth2.10")
h6.cmd("brctl addif
brvlan20 h6-eth1")
h6.cmd("brctl addif
brvlan20 h6-eth2.20")
h6.cmd("ifconfig brvlan10 up")
h6.cmd("ifconfig brvlan20 up")
h7.cmd("brctl addbr
brvlan10")
h7.cmd("brctl addbr
brvlan20")
h7.cmd("brctl addif
brvlan10 h7-eth0.10")
h7.cmd("brctl addif
brvlan10 h7-eth1.10")
h7.cmd("brctl addif
brvlan10 h7-eth2.10")
h7.cmd("brctl addif
brvlan20 h7-eth0.20")
h7.cmd("brctl addif
brvlan20 h7-eth1.20")
h7.cmd("brctl addif
brvlan20 h7-eth2.20")
h7.cmd("ifconfig brvlan10 up") h7.cmd("ifconfig brvlan20 up")
h8.cmd("echo 1 > /proc/sys/net/ipv4/ip_forward")
h8.cmd("ifconfig h8-eth0.10 10.0.10.1 netmask 255.255.255.0")
h8.cmd("ifconfig h8-eth0.20 10.0.20.1 netmask 255.255.255.0")
h1.cmd("ifconfig h1-eth0 10.0.10.2 netmask 255.255.255.0")
h2.cmd("ifconfig h2-eth0 10.0.20.2 netmask 255.255.255.0")
h3.cmd("ifconfig h3-eth0 10.0.10.3 netmask 255.255.255.0")
h4.cmd("ifconfig h4-eth0 10.0.20.3 netmask 255.255.255.0")
h1.cmd("ip route add default via
10.0.10.1 dev h1-eth0")
h2.cmd("ip route add default via
10.0.20.1 dev h2-eth0")
h3.cmd("ip route add default via
10.0.10.1 dev h3-eth0")
h4.cmd("ip route add default via
10.0.20.1 dev h4-eth0")
CLI(net) net.stop() |
[execution]
Now h1 can ping h2, h3, and h4. When h1 ping h2 or
h4, the packets will be sent to the router (h8) for packet forwarding.
[case 5]
[mininet script:vlan5.py]
#!/usr/bin/env python from mininet.net import Mininet from mininet.cli import CLI from mininet.link
import Link,TCLink,Intf if '__main__' == __name__: net
= Mininet(link=TCLink) h1 =
net.addHost('h1') h2 =
net.addHost('h2') h3 =
net.addHost('h3') h4 =
net.addHost('h4')
#h5,h6 is a switch h5 =
net.addHost('h5') h6 =
net.addHost('h6') #h7
is a router h7 =
net.addHost('h7')
Link(h1, h5)
Link(h2, h5)
Link(h3, h6)
Link(h4, h6)
Link(h5, h7)
Link(h6, h7) net.build()
h1.cmd("ifconfig h1-eth0 0")
h2.cmd("ifconfig h2-eth0 0")
h3.cmd("ifconfig h3-eth0 0")
h4.cmd("ifconfig h4-eth0 0")
h5.cmd("ifconfig h5-eth0 0")
h5.cmd("ifconfig h5-eth1 0")
h5.cmd("ifconfig h5-eth2 0")
h6.cmd("ifconfig h6-eth0 0")
h6.cmd("ifconfig h6-eth1 0")
h6.cmd("ifconfig h6-eth2 0")
h7.cmd("ifconfig h7-eth0 0")
h7.cmd("ifconfig h7-eth1 0")
h5.cmd("vconfig add h5-eth2 10")
h5.cmd("vconfig add h5-eth2 20")
h6.cmd("vconfig add h6-eth2 10")
h6.cmd("vconfig add h6-eth2 20")
h7.cmd("vconfig add h7-eth0 10")
h7.cmd("vconfig add h7-eth0 20")
h7.cmd("vconfig add h7-eth1 10")
h7.cmd("vconfig add h7-eth1 20")
h5.cmd("ifconfig h5-eth2.10 up")
h5.cmd("ifconfig h5-eth2.20 up")
h6.cmd("ifconfig h6-eth2.10 up")
h6.cmd("ifconfig h6-eth2.20 up")
h7.cmd("ifconfig h7-eth0.10 up")
h7.cmd("ifconfig h7-eth0.20 up")
h7.cmd("ifconfig h7-eth1.10 up")
h7.cmd("ifconfig h7-eth1.20 up")
h5.cmd("brctl addbr
brvlan10")
h5.cmd("brctl addbr
brvlan20")
h5.cmd("brctl addif
brvlan10 h5-eth0")
h5.cmd("brctl addif
brvlan10 h5-eth2.10")
h5.cmd("brctl addif
brvlan20 h5-eth1")
h5.cmd("brctl addif
brvlan20 h5-eth2.20")
h5.cmd("ifconfig brvlan10 up")
h5.cmd("ifconfig brvlan20 up")
h6.cmd("brctl addbr
brvlan10")
h6.cmd("brctl addbr
brvlan20")
h6.cmd("brctl addif
brvlan10 h6-eth0")
h6.cmd("brctl addif
brvlan10 h6-eth2.10")
h6.cmd("brctl addif
brvlan20 h6-eth1")
h6.cmd("brctl addif
brvlan20 h6-eth2.20")
h6.cmd("ifconfig brvlan10 up")
h6.cmd("ifconfig brvlan20 up")
h7.cmd("brctl addbr
brvlan10")
h7.cmd("brctl addbr
brvlan20")
h7.cmd("brctl addif
brvlan10 h7-eth0.10")
h7.cmd("brctl addif
brvlan10 h7-eth1.10")
h7.cmd("brctl addif
brvlan20 h7-eth0.20")
h7.cmd("brctl addif
brvlan20 h7-eth1.20")
h7.cmd("ifconfig brvlan10 up")
h7.cmd("ifconfig brvlan20 up")
h7.cmd("echo 1 > /proc/sys/net/ipv4/ip_forward")
h7.cmd("ifconfig brvlan10 10.0.10.1 netmask 255.255.255.0")
h7.cmd("ifconfig brvlan20 10.0.20.1 netmask 255.255.255.0")
h1.cmd("ifconfig h1-eth0 10.0.10.2 netmask 255.255.255.0")
h2.cmd("ifconfig h2-eth0 10.0.20.2 netmask 255.255.255.0")
h3.cmd("ifconfig h3-eth0 10.0.10.3 netmask 255.255.255.0")
h4.cmd("ifconfig h4-eth0 10.0.20.3 netmask 255.255.255.0")
h1.cmd("ip route add default via
10.0.10.1 dev h1-eth0")
h2.cmd("ip route add default via
10.0.20.1 dev h2-eth0")
h3.cmd("ip route add default via
10.0.10.1 dev h3-eth0")
h4.cmd("ip route add default via
10.0.20.1 dev h4-eth0")
CLI(net) net.stop() |
[execution]
Now h1 can ping h2, h3, and h4. When h1 ping h2 or
h4, the packets will be sent to the router (h7) for packet forwarding.
[case 6: This is not a vlan
case. Just for future cases]
This case is referring to http://backreference.org/2013/07/23/gre-bridging-ipsec-and-nfqueue/
. You can find more information in this webpage.
[mininet script: vlan4.py]
#!/usr/bin/env python from mininet.net import Mininet from mininet.cli import CLI from mininet.link
import Link,TCLink,Intf if '__main__' == __name__: net
= Mininet(link=TCLink) h1 =
net.addHost('h1') h2 =
net.addHost('h2') h3 =
net.addHost('h3') h4 =
net.addHost('h4') h5 =
net.addHost('h5') h6 =
net.addHost('h6') h7 =
net.addHost('h7')
Link(h1, h5)
Link(h2, h5)
Link(h3, h6)
Link(h4, h6)
Link(h5, h7)
Link(h6, h7) net.build()
h1.cmd("ifconfig h1-eth0 0")
h2.cmd("ifconfig h2-eth0 0")
h3.cmd("ifconfig h3-eth0 0")
h4.cmd("ifconfig h4-eth0 0") h5.cmd("ifconfig h5-eth0 0")
h5.cmd("ifconfig h5-eth1 0")
h5.cmd("ifconfig h5-eth2 0")
h6.cmd("ifconfig h6-eth0 0")
h6.cmd("ifconfig h6-eth1 0")
h6.cmd("ifconfig h6-eth2 0")
h7.cmd("ifconfig h7-eth0 0")
h7.cmd("ifconfig h7-eth1 0")
h5.cmd("echo 1 > /proc/sys/net/ipv4/ip_forward")
h6.cmd("echo 1 > /proc/sys/net/ipv4/ip_forward")
h7.cmd("echo 1 > /proc/sys/net/ipv4/ip_forward")
h5.cmd("ifconfig h5-eth2 192.168.10.1 netmask 255.255.255.0")
h6.cmd("ifconfig h6-eth2 192.168.20.1 netmask 255.255.255.0")
h7.cmd("ifconfig h7-eth0 192.168.10.2 netmask 255.255.255.0")
h7.cmd("ifconfig h7-eth1 192.168.20.2 netmask 255.255.255.0")
h5.cmd("ip route add 192.168.20.0/24
via 192.168.10.2") h6.cmd("ip route add 192.168.10.0/24 via 192.168.20.2")
h5.cmd("ip link add gretap
type gretap local 192.168.10.1 remote 192.168.20.1
dev h5-eth2")
h6.cmd("ip link add gretap
type gretap local 192.168.20.1 remote 192.168.10.1
dev h6-eth2")
h5.cmd("ifconfig gretap
up")
h6.cmd("ifconfig gretap
up")
h5.cmd("ip link add br0 type
bridge")
h5.cmd("ip link set h5-eth0 down")
h5.cmd("ip link set h5-eth1 down")
h5.cmd("ip link set h5-eth0 master
br0")
h5.cmd("ip link set h5-eth1 master
br0")
h5.cmd("ip link set h5-eth0 up")
h5.cmd("ip link set h5-eth1 up")
h5.cmd("ip link set br0 up")
h5.cmd("ip addr
add 10.0.0.254/24 dev br0")
h5.cmd("ip link set gretap
master br0")
h6.cmd("ip link add br0 type
bridge")
h6.cmd("ip link set h6-eth0 down")
h6.cmd("ip link set h6-eth1 down")
h6.cmd("ip link set h6-eth0 master
br0")
h6.cmd("ip link set h6-eth1 master
br0")
h6.cmd("ip link set h6-eth0 up")
h6.cmd("ip link set h6-eth1 up")
h6.cmd("ip link set br0 up")
h6.cmd("ip addr
add 10.0.0.253/24 dev br0")
h6.cmd("ip link set gretap
master br0")
h1.cmd("ip addr
add 10.0.0.11/24 dev h1-eth0")
h2.cmd("ip addr
add 10.0.0.12/24 dev h2-eth0")
h3.cmd("ip addr
add 10.0.0.13/24 dev h3-eth0")
h4.cmd("ip addr
add 10.0.0.14/24 dev h4-eth0")
CLI(net) net.stop() |
[execution]
[case 7]
[mininet
script:vlan4_2.py]
#!/usr/bin/env python from mininet.net import Mininet from mininet.cli import CLI from mininet.link
import Link,TCLink,Intf if '__main__' == __name__: net
= Mininet(link=TCLink) h1 =
net.addHost('h1') h2 =
net.addHost('h2') h3 =
net.addHost('h3') h4 =
net.addHost('h4') h5 =
net.addHost('h5') h6 =
net.addHost('h6') h7 =
net.addHost('h7') h8 =
net.addHost('h8')
Link(h1, h5)
Link(h2, h5)
Link(h3, h6)
Link(h4, h6)
Link(h5, h7)
Link(h6, h8)
Link(h7, h8) net.build()
h1.cmd("ifconfig h1-eth0 0")
h2.cmd("ifconfig h2-eth0 0")
h3.cmd("ifconfig h3-eth0 0")
h4.cmd("ifconfig h4-eth0 0")
h5.cmd("ifconfig h5-eth0 0")
h5.cmd("ifconfig h5-eth1 0")
h5.cmd("ifconfig h5-eth2 0")
h6.cmd("ifconfig h6-eth0 0")
h6.cmd("ifconfig h6-eth1 0")
h6.cmd("ifconfig h6-eth2 0")
h7.cmd("ifconfig h7-eth0 0")
h7.cmd("ifconfig h7-eth1 0")
h8.cmd("ifconfig h8-eth0 0")
h8.cmd("ifconfig h8-eth1 0")
h7.cmd("echo 1 > /proc/sys/net/ipv4/ip_forward")
h8.cmd("echo 1 > /proc/sys/net/ipv4/ip_forward")
h7.cmd("vconfig add h7-eth1 10")
h8.cmd("vconfig add h8-eth1 10")
h7.cmd("ifconfig h7-eth1.10
192.168.10.1 netmask 255.255.255.0")
h8.cmd("ifconfig h8-eth1.10
192.168.10.2 netmask 255.255.255.0")
h7.cmd("ip link add gretap
type gretap local 192.168.10.1 remote 192.168.10.2
dev h7-eth1.10")
h8.cmd("ip link add gretap
type gretap local 192.168.10.2 remote 192.168.10.1
dev h8-eth1.10")
h7.cmd("ifconfig gretap
up")
h8.cmd("ifconfig gretap
up")
h7.cmd("vconfig add h7-eth0 10")
h7.cmd("brctl addbr
mylan10")
h7.cmd("brctl addif
mylan10 h7-eth0.10")
h7.cmd("brctl addif
mylan10 gretap")
h7.cmd("ifconfig h7-eth0.10 up")
h7.cmd("ifconfig mylan10 up")
h7.cmd("ip addr
add 10.0.0.254/24 dev mylan10")
h8.cmd("vconfig add h8-eth0 10")
h8.cmd("brctl addbr
mylan10")
h8.cmd("brctl addif
mylan10 h8-eth0.10")
h8.cmd("brctl addif
mylan10 gretap")
h8.cmd("ifconfig h8-eth0.10 up")
h8.cmd("ifconfig mylan10 up")
h8.cmd("ip addr
add 10.0.0.253/24 dev mylan10")
h5.cmd("vconfig add h5-eth2 10")
h5.cmd("brctl addbr
mylan10")
h5.cmd("brctl addif
mylan10 h5-eth0")
h5.cmd("brctl addif
mylan10 h5-eth1")
h5.cmd("brctl addif
mylan10 h5-eth2.10")
h5.cmd("ifconfig h5-eth2.10 up")
h5.cmd("ifconfig mylan10 up")
h6.cmd("vconfig add h6-eth2 10")
h6.cmd("brctl addbr
mylan10")
h6.cmd("brctl addif
mylan10 h6-eth0")
h6.cmd("brctl addif
mylan10 h6-eth1")
h6.cmd("brctl addif
mylan10 h6-eth2.10")
h6.cmd("ifconfig h6-eth2.10 up")
h6.cmd("ifconfig mylan10 up")
h1.cmd("ip addr
add 10.0.0.11/24 dev h1-eth0")
h2.cmd("ip addr
add 10.0.0.12/24 dev h2-eth0")
h3.cmd("ip addr
add 10.0.0.13/24 dev h3-eth0")
h4.cmd("ip addr
add 10.0.0.14/24 dev h4-eth0")
CLI(net) net.stop() |
[execution]
Dr. Chih-Heng Ke
Department of Computer Science and
Information Engineering, National Quemoy University, Kinmen,
Taiwan
Email: smallko@gmail.com