今回は仮想ホストのmacアドレスを任意のmacアドレスにしてみたいと思います。
Mininetのトポロジーで仮想ホストのIPアドレスを指定する場合、ホストの追加を以下のように書きました。
h1 = net.addHost('h1', ip='192.168.2.10/24')
任意のmacアドレスを設定する場合は、この部分の記述を少し変えてあげます。
h1 = net.addHost('h1', mac='aa:aa:aa:aa:aa:01', ip='192.168.2.10/24')
この例は仮想ホスト「h1」は、macアドレスが「aa:aa:aa:aa:aa:01」でIPアドレスが「192.168.2.10」のインターフェイスが設定されることになります。
以前作ったトポロジーにmacアドレスの設定を追加してみます。
ホスト1のmacアドレスは「aa:aa:aa:aa:aa:01」を設定します。
ホスト2のmacアドレスは「aa:aa:aa:aa:aa:02」を設定します。
(topo_test.py)
#!/usr/bin/env python
from mininet.net import Mininet
from mininet.cli import CLI
from mininet.link import Link
if '__main__' == __name__:
net = Mininet()
c1 = net.addController('c1')
s1 = net.addSwitch('s1')
h1 = net.addHost('h1', mac='aa:aa:aa:aa:aa:01',ip='192.168.100.1/24')
h2 = net.addHost('h2', mac='aa:aa:aa:aa:aa:02',ip='192.168.100.2/24')
#Link( h1, s1)
#Link( h2, s1)
h1.linkTo(s1)
h2.linkTo(s1)
net.start()
CLI(net)
net.stop()
このようになります。
気を付けるのは、macアドレスの先頭から8bit目は0にする事です。
I/Gビットにあたる部分のようです。
参考:http://itpro.nikkeibp.co.jp/article/COLUMN/20070829/280708/
あと、ネットワーク接続の記述の部分で、別の記述方法があるみたいなのでを少し変えてみました。
こういう書き方もできるみたいです。
#Link( h1, s1)
#Link( h2, s1)
h1.linkTo(s1)
h2.linkTo(s1)
実行して確認してみます。
$ sudo python topo_test.py
mininet> net
h1 h1-eth0:s1-eth1
h2 h2-eth0:s1-eth2
s1 lo: s1-eth1:h1-eth0 s1-eth2:h2-eth0
c1
mininet> dump
<Host h1: h1-eth0:192.168.100.1 pid=20973>
<Host h2: h2-eth0:192.168.100.2 pid=20974>
<OVSSwitch s1: lo:127.0.0.1,s1-eth1:None,s1-eth2:None pid=20966>
<Controller c1: 127.0.0.1:6633 pid=20958>
mininet> pingall
*** Ping: testing ping reachability
h1 -> h2
h2 -> h1
*** Results: 0% dropped (2/2 received)
mininet> h1 ifconfig
h1-eth0 Link encap:Ethernet HWaddr aa:aa:aa:aa:aa:01
inet addr:192.168.100.1 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::a8aa:aaff:feaa:aa01/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9 errors:0 dropped:0 overruns:0 frame:0
TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:658 (658.0 B) TX bytes:838 (838.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
mininet> h2 ifconfig
h2-eth0 Link encap:Ethernet HWaddr aa:aa:aa:aa:aa:02
inet addr:192.168.100.2 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::a8aa:aaff:feaa:aa02/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9 errors:0 dropped:0 overruns:0 frame:0
TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:658 (658.0 B) TX bytes:838 (838.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
mininet> exit
ホスト1のmacアドレスが「aa:aa:aa:aa:aa:01」、ホスト2は「aa:aa:aa:aa:aa:02」になりました。
以上です。
0 件のコメント:
コメントを投稿