今回は仮想ホストの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 件のコメント:
コメントを投稿