/home/tnishinaga/TechMEMO

日々行ったこと、面白かったことを書き留めます。

VitrualBoxでNAT接続なNICを経路に選択をする方法

問題説明

BareMetal Raspberry Piの開発に使ってる仮想マシン(debian wheezy)には、以下の2つの仮想NICをつなげてある。

片方はインターネットに繋がる無線ネットワーク、片方はRaspberry Piなどに有線で接続するためのネットワークだ。

NIC Attached to IP インターネット接続
NIC1 NAT 10.0.2.15 あり
NIC2 Bridged 192.168.2.104 なし

ifconfigの結果はこんな感じ。

$ LANG=c /sbin/ifconfig 
eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx  
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fef9:9ad3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:86455 errors:0 dropped:0 overruns:0 frame:0
          TX packets:44138 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:67198479 (64.0 MiB)  TX bytes:3015887 (2.8 MiB)

eth1      Link encap:Ethernet  HWaddr --:--:--:--:--:--  
          inet addr:192.168.2.104  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe77:8ed7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3455 errors:0 dropped:1 overruns:0 frame:0
          TX packets:146 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:237339 (231.7 KiB)  TX bytes:16917 (16.5 KiB)

この状態で起動したところ、困ったことになぜかインターネット接続のないeth1が優先経路とされてしまった。 これではインターネットに接続できないので、eth0を有線経路として設定してインターネットに接続できるようにしたいとおもう。

解決方法

ここでやらなければならないのは以下の2つ。

デフォルトゲートウェイの設定

デフォルトの経路がeth1になってしまってるので、routeコマンドで修正する。

この時ゲートウェイIPアドレスが必要なのだけれど、eth0はNAT接続の経路なのでゲートウェイとなるIPアドレスがわからない。

しかしネットで調べてみるとどうやら 10.0.2.2ゲートウェイとなるIPアドレスらしいので、これを設定する。

$ sudo /sbin/route add default gw 10.0.2.2

これで経路の設定は完了。

resolv.confの修正

DNSサーバーのアドレスも新しい経路のものに修正しないと、google.co.jpとかにアクセス出来ない。

私の環境のDNSサーバーは192.168.1.1なので、resolv.confを以下のように修正する。

$ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.1.1

これで修正完了。

接続確認

$ ping google.co.jp
PING google.co.jp (74.125.235.119) 56(84) bytes of data.
64 bytes from nrt19s02-in-f23.1e100.net (74.125.235.119): icmp_req=1 ttl=63 time=22.0 ms

うん、いいかんじ。

まとめ

経路選択はrouteとresolv.confでやる!

TODO

恒久化する方法も試す。

参考文献:http://tanyaolinux.blogspot.jp/2014/02/linux-static-route.html