Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

余ったPCをルータに変える、ソフトウェアルータ「SEIL/x86」

5,720 views

Published on

[2018/03/14に開催した「IIJ Technical NIGHT Vol.4」の講演資料です]
仮想環境で動くSEILがあることをご存知でしょうか。
今回はgithubで公開しているvagrantのプラグインvagrant-seilとソフトウェアルータ「SEIL/x86」を使ってネットワークを構築する方法について解説します。その場でvagrant-seilを使った簡単なデモなども行う予定です。
講演者:大石 恭弘(ネットワーク本部 IoT基盤開発部 デバイス技術課)

Published in: Internet
  • Be the first to comment

  • Be the first to like this

余ったPCをルータに変える、ソフトウェアルータ「SEIL/x86」

  1. 1. IoT基盤開発部デバイス技術課 ⼤⽯ 恭弘
  2. 2. 名前 ⼤⽯ 恭弘(おおいし やすひろ) 所属 IoT基盤開発部デバイス技術課 2013年度 IIJ⼊社 SEILシリーズの開発に従事
  3. 3. 仮想環境向けのソフトウェアルータ 2011/04 1st リリース SEIL/Xシリーズとほぼ同等の機能を保持 IPsec, L2TPv3, L2TP/IPsec, Firewall, MACフィルタ…
  4. 4. 提供形式 サポート状況 VMware形式 (OVF版を同梱) VMware ESXi 5.0 VMware ESXi 5.5 VMware ESXi 6.0 Hyper-V形式 Windows Server 2012 R2 Hyper-V Windows Server 2008 R2 Hyper-V Microsoft Hyper-V Server 2008 R2 KVM形式 CentOS 6.3などのOSで確認 ディスクイメージ形式 【実験的提供】 Vagrant box形式 【実験的提供】 Virtualbox⽤のみ
  5. 5. 提供形式 サポート状況 VMware形式 (OVF版を同梱) VMware ESXi 5.0 VMware ESXi 5.5 VMware ESXi 6.0 Hyper-V形式 Windows Server 2012 R2 Hyper-V Windows Server 2008 R2 Hyper-V Microsoft Hyper-V Server 2008 R2 KVM形式 CentOS 6.3などのOSで確認 ディスクイメージ形式 【実験的提供】 Vagrant box形式 【実験的提供】 Virtualbox⽤のみ
  6. 6. SEIL/x86⽤ vagrant プラグイン ライセンスキーの⾃動⼊⼒ 専⽤プロバイダによるコンフィグ反映 導⼊ https://github.com/iij/vagrant-seil $ vagrant plugin install vagrant-seil
  7. 7. ⾃宅の余ったPCをルータにする
  8. 8. ちょっとまってね
  9. 9. Cient (CentOS7) ⾃宅やクラウド環境へ接続する 環境 OS : OSX El Captian 10.11.6 virtual-box : 5.2.8 r121009 (Qt5.6.3) vagrant : 2.0.2 vagrant-seil : 1.0.0 seilx86-box : 5.92
  10. 10. Vagrant.configure("2") do |config| config.vm.box = "seilx86-592" config.vm.network "private_network",:auto_config => false, virtualbox__intnet: "technightnw" # config parameter server_address = <SERVER IPaddress> presharedkey = "SecretKey" userid = "technight" password = "PASSWORD" config.vm.provision :seil do |seil| seil.starter_key = File.read("starterkey.txt") seil.function_key = File.read("functionkey.txt") seil.config = <<-EOM hostname technight01 ~ snip ~ interface lan1 add 192.168.0.1/24 EOM end end
  11. 11. Vagrant.configure("2") do |config| config.vm.box = "seilx86-592" config.vm.network "private_network",:auto_config => false, virtualbox__intnet: "technightnw" # config parameter server_address = <SERVER IPaddress> presharedkey = "SecretKey" userid = "technight" password = "PASSWORD" config.vm.provision :seil do |seil| seil.starter_key = File.read("starterkey.txt") seil.function_key = File.read("functionkey.txt") seil.config = <<-EOM hostname technight01 ~ snip ~ interface lan1 add 192.168.0.1/24 EOM end end ネットワークの追加 • LAN0はSSH⽤に作成されるため、LAN1以降のネットワークを定義
  12. 12. Vagrant.configure("2") do |config| config.vm.box = "seilx86-592" config.vm.network "private_network",:auto_config => false, virtualbox__intnet: "technightnw" # config parameter server_address = <SERVER IPaddress> presharedkey = "SecretKey" userid = "technight" password = "PASSWORD" config.vm.provision :seil do |seil| seil.starter_key = File.read("starterkey.txt") seil.function_key = File.read("functionkey.txt") seil.config = <<-EOM hostname technight01 ~ snip ~ interface lan1 add 192.168.0.1/24 EOM end end ライセンスキー設定
  13. 13. Vagrant.configure("2") do |config| config.vm.box = "seilx86-592" config.vm.network "private_network",:auto_config => false, virtualbox__intnet: "technightnw" # config parameter server_address = <SERVER IPaddress> presharedkey = "SecretKey" userid = "technight" password = "PASSWORD" config.vm.provision :seil do |seil| seil.starter_key = File.read("starterkey.txt") seil.function_key = File.read("functionkey.txt") seil.config = <<-EOM hostname technight01 ~ snip ~ interface lan1 add 192.168.0.1/24 EOM end end コンフィグ設定 • lan0のdhcpとsshdを除いた設定 • Rubyの⽂法で変数定義
  14. 14. SEIL/x86のサポート状況 ESXi 6.0 でも動くよ vagrant-seilの紹介 帰ったら “vagrant plugin install vagrant-seil” みなさまが快適なSEILライフを過ごされるこ と願っております
  15. 15. ご清聴ありがとうございます
  16. 16. Vagrant.configure("2") do |config| config.vm.box = "seilx86-592" config.vm.network "private_network",:auto_config => false, virtualbox__intnet: "technightnw" # config parameter server_address = <SERVER IPaddress> presharedkey = "SecretKey" userid = "technight" password = "PASSWORD" config.vm.provision :seil do |seil| seil.starter_key = File.read("starterkey.txt") seil.function_key = File.read("functionkey.txt") seil.config = <<-EOM hostname technight01 dialup-network l2tp-dn0 connect-to #{server_address} ipsec-preshared-key #{presharedkey} ppp add DUN ipcp enable keepalive 30 ipcp-address on authentication-method mschapv2 identifier #{userid} passphrase #{password} interface ppp0 over l2tp-dn0 interface ppp0 ppp-configuration DUN route add #{server_address}/32 dhcp route add 192.168.100.0/24 ppp0 nat napt add private 192.168.0.0-192.168.0.255 interface ppp0 interface lan1 add 192.168.0.1/24 EOM end end 必要最低限の設定です DHCPのアドレス配布やパケットフィルタの設定を適宜追加してください
  17. 17. Vagrant.configure("2") do |config| config.vm.box = "seilx86-592" config.vm.network :public_network, :auto_config => false, bridge: “<WAN側 interface名>” config.vm.network :public_network, :auto_config => false, bridge: ”<LAN側 interface名>” # config parameter userid = “<PPPoE Account>” password = ”<PPPoE Password>” config.vm.provision :seil do |seil| seil.starter_key = File.read("starterkey.txt") seil.function_key = File.read("functionkey.txt") seil.config = <<-EOM hostname technight01 ppp add PPP1 keepalive 30 ipcp enable ipv6cp disable ipcp-address on ipcp-dns on authentication-method auto identifier #{userid} passphrase #{password} tcp-mss auto interface lan2 add 192.168.0.1/24 interface pppoe0 over lan1 interface pppoe0 ppp-configuration PPP1 interface pppoe0 unnumbered on lan2 route add default pppoe0 nat napt add private 192.168.0.0-192.168.0.255 interface pppoe0 EOM end end こちらも必要最低限の設定です DHCPのアドレス配布やパケットフィルタの設定を適宜追加してください

×