Raspberry PIでJail+vnet
やること
Raspberry Piで、Jailとnet(VIMAGE)を使ってみる。 カーネルのカーネルのビルドはこちら。
epairの作成
LANケーブル的な役割をするインターフェースを作成する。
ifconfig epair0 create ifconfig epair1 create
ルーターとホスト用のJailの作成
実験用の環境として、ルーターとホストを作成する。
jail -c name=router1 host.hostname=router1 vnet persist jail -c name=host1 host.hostname=host1 vnet persist
epair0はRaspberry Piとルーターの接続用。 epair1はルーターとホストの接続用。
ifconfig epair0b vnet router1 ifconfig epair1a vnet router1 ifconfig epair1b vnet host1 ifconfig epair0a inet 10.0.0.1 netmask 255.255.255.0 jexec router1 ifconfig epair0b inet 10.0.0.2 netmask 255.255.255.0 jexec router1 ifconfig epair1a inet 10.0.1.1 netmask 255.255.255.0 jexec host1 ifconfig epair1b inet 10.0.1.2 netmask 255.255.255.0
ルーターの構築
パケットを転送するようにするだけ。
jexec router1 sysctl net.inet.ip.forwarding=1
ルーティングテーブル修正
Raspberry Piからルーターを経由してホストへ接続できるよう、ルーティングテーブルの設定をする、
route add -net 10.0.1.0/24 10.0.0.2 jexec host1 route add default 10.0.1.1
pingで接続できていることを確認する。
jexec host1 ping 10.0.0.1 ping 10.0.1.2
後始末
使い終わったら削除する。
jail -r host1 jail -r router1 ifconfig epair0a destroy ifconfig epair1a destroy