2016-08-23 17 views
0

の機能をOpenVSwitchと使いたいです。これは私が今まで行ってきたことです。`OpenVSwitch`の` LXD/LXC`との `Vlan`機能を利用したい

[email protected]:~$ lxc list 
+----------+---------+------+------+------------+-----------+ 
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | 
+----------+---------+------+------+------------+-----------+ 
| trusty-1 | STOPPED |  |  | PERSISTENT | 0   | 
+----------+---------+------+------+------------+-----------+ 
| trusty-2 | STOPPED |  |  | PERSISTENT | 0   | 
+----------+---------+------+------+------------+-----------+ 
| trusty-3 | STOPPED |  |  | PERSISTENT | 0   | 
+----------+---------+------+------+------------+-----------+ 

とこれです。 信頼できる-1容器において

[email protected]:~$ sudo ovs-vsctl show 
a8498c25-8432-4174-9869-6eae38044cfe 
    Bridge "br0" 
     Controller ptcp 
     Port "vport1" 
      Interface "vport1" 
     Port "enp1s0" 
      Interface "enp1s0" 
     Port "br0" 
      Interface "br0" 
       type: internal 
    ovs_version: "2.5.0" 

私はこれを持っています。

[email protected]:~# cat /etc/network/interfaces.d/eth0.cfg 
#auto eth0 
#iface eth0 inet static 
#  address 172.16.3.250 
#  netmask 255.255.254.0 
#  gateway 172.16.2.1 


auto eth0 
iface eth0 inet static 
     address 172.16.3.250 
     network 172.16.0.0 
     netmask 255.255.254.0 
     gateway 172.16.2.1 
     dns-nameservers 172.16.3.199 8.8.8.8 
     dns-search google.com 
     bridge_ports vport1 
     bridge_stp off 
     bridge_fd 0 
     bridge_maxwait 0 

私は何をしたい、私はそれをタグ付けし、その後、将来のケースのためにそれを操作するが、何の代わりに起こることはこれであることができるように信頼できる-1はコンテナvport1ブリッジポートを使用することです。

[email protected]:~$ sudo ovs-vsctl show 
a8498c25-8432-4174-9869-6eae38044cfe 
    Bridge "br0" 
     Controller ptcp 
     Port "vport1" 
      Interface "vport1" 
     Port vethHBNLTA 
      Interface vethHBNLTA 
     Port "enp1s0" 
      Interface "enp1s0" 
     Port "br0" 
      Interface "br0" 
       type: internal 
    ovs_version: "2.5.0" 

Iアップ信頼できる-1の一時的なポート(この場合はvethHBNLTA)が作成されるたびに。

trusty-1は常にvport1を使用していますか?

ありがとうございます。

P.S .: LXCのIRCに神が天使を送りました。

$ lxc config edit trusty-1 

デバイスの下

eth0: 
    name: eth0 
    nictype: physical 
    parent: vport1 
    type: nic 

を追加:

だから私はしました。 しかし、ネットワークの接続が切れました。コンテナからホストまたはGoogleにもうpingできませんでした。

だから、私はコンテナの設定をこれに変更しました。

devices: 
    eth0: 
    name: eth0 
    nictype: bridged 
    parent: vport1 
    type: nic 

今ではコンテナを起動することもできません。エラーログにはこれが表示されます。

[email protected]:~$ lxc info --show-log trusty-1 
Name: trusty-1 
Architecture: x86_64 
Created: 2016/08/10 06:48 UTC 
Status: Stopped 
Type: persistent 
Profiles: default 

Log: 

      lxc 20160823145623.424 INFO  lxc_start - start.c:lxc_check_inherited:251 - closed inherited fd 3 
      lxc 20160823145623.424 INFO  lxc_start - start.c:lxc_check_inherited:251 - closed inherited fd 8 
      lxc 20160823145623.426 INFO  lxc_container - lxccontainer.c:do_lxcapi_start:797 - Attempting to set proc title to [lxc monitor] /var/lib/lxd/containers trusty-1 
      lxc 20160823145623.427 INFO  lxc_start - start.c:lxc_check_inherited:251 - closed inherited fd 8 
      lxc 20160823145623.428 INFO  lxc_lsm - lsm/lsm.c:lsm_init:48 - LSM security driver AppArmor 
      lxc 20160823145623.428 INFO  lxc_seccomp - seccomp.c:parse_config_v2:342 - processing: .reject_force_umount # comment this to allow umount -f; not recommended. 
      lxc 20160823145623.428 INFO  lxc_seccomp - seccomp.c:parse_config_v2:446 - Adding native rule for reject_force_umount action 0 
      lxc 20160823145623.428 INFO  lxc_seccomp - seccomp.c:do_resolve_add_rule:216 - Setting seccomp rule to reject force umounts 

      lxc 20160823145623.428 INFO  lxc_seccomp - seccomp.c:parse_config_v2:449 - Adding compat rule for reject_force_umount action 0 
      lxc 20160823145623.428 INFO  lxc_seccomp - seccomp.c:do_resolve_add_rule:216 - Setting seccomp rule to reject force umounts 

      lxc 20160823145623.428 INFO  lxc_seccomp - seccomp.c:parse_config_v2:342 - processing: .[all]. 
      lxc 20160823145623.428 INFO  lxc_seccomp - seccomp.c:parse_config_v2:342 - processing: .kexec_load errno 1. 
      lxc 20160823145623.428 INFO  lxc_seccomp - seccomp.c:parse_config_v2:446 - Adding native rule for kexec_load action 327681 
      lxc 20160823145623.428 INFO  lxc_seccomp - seccomp.c:parse_config_v2:449 - Adding compat rule for kexec_load action 327681 
      lxc 20160823145623.428 INFO  lxc_seccomp - seccomp.c:parse_config_v2:342 - processing: .open_by_handle_at errno 1. 
      lxc 20160823145623.428 INFO  lxc_seccomp - seccomp.c:parse_config_v2:446 - Adding native rule for open_by_handle_at action 327681 
      lxc 20160823145623.428 INFO  lxc_seccomp - seccomp.c:parse_config_v2:449 - Adding compat rule for open_by_handle_at action 327681 
      lxc 20160823145623.428 INFO  lxc_seccomp - seccomp.c:parse_config_v2:342 - processing: .init_module errno 1. 
      lxc 20160823145623.428 INFO  lxc_seccomp - seccomp.c:parse_config_v2:446 - Adding native rule for init_module action 327681 
      lxc 20160823145623.428 INFO  lxc_seccomp - seccomp.c:parse_config_v2:449 - Adding compat rule for init_module action 327681 
      lxc 20160823145623.428 INFO  lxc_seccomp - seccomp.c:parse_config_v2:342 - processing: .finit_module errno 1. 
      lxc 20160823145623.428 INFO  lxc_seccomp - seccomp.c:parse_config_v2:446 - Adding native rule for finit_module action 327681 
      lxc 20160823145623.428 INFO  lxc_seccomp - seccomp.c:parse_config_v2:449 - Adding compat rule for finit_module action 327681 
      lxc 20160823145623.428 INFO  lxc_seccomp - seccomp.c:parse_config_v2:342 - processing: .delete_module errno 1. 
      lxc 20160823145623.428 INFO  lxc_seccomp - seccomp.c:parse_config_v2:446 - Adding native rule for delete_module action 327681 
      lxc 20160823145623.428 INFO  lxc_seccomp - seccomp.c:parse_config_v2:449 - Adding compat rule for delete_module action 327681 
      lxc 20160823145623.428 INFO  lxc_seccomp - seccomp.c:parse_config_v2:456 - Merging in the compat seccomp ctx into the main one 
      lxc 20160823145623.428 INFO  lxc_conf - conf.c:run_script_argv:367 - Executing script '/usr/bin/lxd callhook /var/lib/lxd 1 start' for container 'trusty-1', config section 'lxc' 
      lxc 20160823145623.429 INFO  lxc_start - start.c:lxc_check_inherited:251 - closed inherited fd 3 
      lxc 20160823145623.429 INFO  lxc_start - start.c:lxc_check_inherited:251 - closed inherited fd 8 
      lxc 20160823145623.431 INFO  lxc_monitor - monitor.c:lxc_monitor_sock_name:178 - using monitor sock name lxc/d78a9d7e97b4b375//var/lib/lxd/containers 
      lxc 20160823145623.451 DEBUG lxc_start - start.c:setup_signal_fd:289 - sigchild handler set 
      lxc 20160823145623.451 DEBUG lxc_console - console.c:lxc_console_peer_default:469 - no console peer 
      lxc 20160823145623.451 INFO  lxc_start - start.c:lxc_init:488 - 'trusty-1' is initialized 
      lxc 20160823145623.451 INFO  lxc_confile - confile.c:config_idmap:1500 - read uid map: type u nsid 0 hostid 165536 range 65536 
      lxc 20160823145623.451 INFO  lxc_confile - confile.c:config_idmap:1500 - read uid map: type g nsid 0 hostid 165536 range 65536 
      lxc 20160823145623.452 DEBUG lxc_start - start.c:__lxc_start:1326 - Not dropping cap_sys_boot or watching utmp 
      lxc 20160823145623.452 INFO  lxc_start - start.c:resolve_clone_flags:1013 - Cloning a new user namespace 
      lxc 20160823145623.487 ERROR lxc_conf - conf.c:instantiate_veth:2595 - failed to attach 'veth1SE4RV' to the bridge 'vport1': Operation not permitted 
      lxc 20160823145623.512 ERROR lxc_conf - conf.c:lxc_create_network:2872 - failed to create netdev 
      lxc 20160823145623.512 ERROR lxc_start - start.c:lxc_spawn:1080 - failed to create the network 
      lxc 20160823145623.512 ERROR lxc_start - start.c:__lxc_start:1353 - failed to spawn 'trusty-1' 
      lxc 20160823145623.512 INFO  lxc_conf - conf.c:run_script_argv:367 - Executing script '/usr/share/lxcfs/lxc.reboot.hook' for container 'trusty-1', config section 'lxc' 
      lxc 20160823145624.015 INFO  lxc_conf - conf.c:run_script_argv:367 - Executing script '/usr/bin/lxd callhook /var/lib/lxd 1 stop' for container 'trusty-1', config section 'lxc' 
      lxc 20160823145624.087 WARN  lxc_commands - commands.c:lxc_cmd_rsp_recv:172 - command get_cgroup failed to receive response 
      lxc 20160823145624.087 WARN  lxc_commands - commands.c:lxc_cmd_rsp_recv:172 - command get_cgroup failed to receive response 
      lxc 20160823145624.093 INFO  lxc_confile - confile.c:config_idmap:1500 - read uid map: type u nsid 0 hostid 165536 range 65536 
      lxc 20160823145624.093 INFO  lxc_confile - confile.c:config_idmap:1500 - read uid map: type g nsid 0 hostid 165536 range 65536 
      lxc 20160823145635.567 INFO  lxc_confile - confile.c:config_idmap:1500 - read uid map: type u nsid 0 hostid 165536 range 65536 
      lxc 20160823145635.567 INFO  lxc_confile - confile.c:config_idmap:1500 - read uid map: type g nsid 0 hostid 165536 range 65536 
      lxc 20160823145635.575 INFO  lxc_confile - confile.c:config_idmap:1500 - read uid map: type u nsid 0 hostid 165536 range 65536 
      lxc 20160823145635.575 INFO  lxc_confile - confile.c:config_idmap:1500 - read uid map: type g nsid 0 hostid 165536 range 65536 

ログには次のような行があります。

Failed to attach 'veth1SE4RV' to the bridge 'vport1': Operation not permitted 

これはなんらかの許可と関係がありますか?

答えて

1
  1. vport1を内部に設定すると、dointによってovsが仮想インターフェイスvport1を作成します。
  2. セットlxc.network.type physにLXCコンテナを作成する前に、あなたがip link showを使用して、インターフェイスを見ることができる確実なので、LXCは、代わりに新しいインターフェース
+0

'/ etc/lxc/default.conf'の' lxc.network.type'ですか? – Nagri

+0

いいえ、NICのタイプ設定を変更します –

0

を作成するOVSによって作成された既存のインタフェースvport1を使用しますしてくださいだから私は何度もヒットして試してみた。私はあなたにこれを残しています。

たが、これに既存のインターフェースを使ってコンテナを接続するには:

  1. は、ホスト上のブリッジを作成し、それBR0を呼び出すことができます。
  2. タイプがinternalのホスト上に仮想インターフェイスを作成するには、vportと呼ぶことができます。 はこのovs-vsctl add-port br0 vport -- set interface vport type=internal
  3. これは、そのインターフェースとしてVPORTを使用するLXCを伝える部分であり、この

    eth0: name: eth0 nictype: physical parent: vport type: nic

を入れ$ lxc config edit <containername>し、デバイスの下に行うことを行います。

これを行うにはすべてが必要です。

この構成では、コンテナ内のパケットのドロップが巨大であったにもかかわらず、次のような2番目の選択肢がありました。ホスト上のブリッジを作成します

  1. あなたのコンテナが独自の仮想インターフェイスを作成できるように

    は、BR0それを呼び出すことができます。

  2. これは何この

    eth0: host_name: vport name: eth0 nictype: bridged parent: br0 type: nic

$ lxc config edit <containername>し、デバイスの下に置けばいいのではLXCは、それが独自のインターフェイスを作成しますが、すべての時間は、インターフェイスの名前はvportで再起動するたびにあります。

この設定でのパケットドロップはありませんでした。

0

はるかに簡単解決策が見つかりました:

ovs-vsctl add-br vlan418 vm-bridge 418 

vlan418が偽物作成するブリッジとvm-bridge VMホストの物理NICにバインドされている主要な橋の名前です。 418はVLAN IDです。 LXDコンテナ設定で次に

devices: 
    eth0: 
    name: eth0 
    nictype: bridged 
    parent: vlan418 
    type: nic 

それです。それは完璧に動作します。 add-brは偽ブリッジを作成し、lxdがポートを偽ブリッジvlan418に接続しようとすると、OpenVSwitchは必要なポートを自動的に作成します。

関連する問題