2017-02-27 14 views
0

4枚のネットワークカードを搭載したマシンにUbuntu 16.04 Serverをインストールしました。私はインターフェイスeth0eth1を同じスイッチに接続しています。 eth0インターフェイスは、リモートSSH接続がサーバーを管理するためのものです。 br0でブリッジするにはeth1を使用します。 LXCコンテナに使用したいこのブリッジです。 DHCP環境でこの設定をしても問題は発生しませんでした。問題は、このサーバーがインストールされているネットワークが完全に静的であることです。同じサブネットマスクとゲートウェイを持つこのサーバーのIP範囲を受け取りました。 eth0の設定LXCをブリッジするために2番目のNICを設定する必要があります

は全く問題なかった。

auto eth0 
iface eth0 inet static 
    address 195.x.x.2 
    network 195.x.x.0 
    netmask 255.255.255.0 
    gateway 195.x.x.1 
    broadcast 195.x.x.255 
    dns-nameservers 150.x.x.105 150.x.x.106 

eth0 Ubuntuは唯一のデフォルトゲートウェイは(論理的である)を設定することができることを警告していると、それは同じゲートウェイを持っているため、問題は、第2のインタフェースeth1が付属しています。この設定で

auto eth1 
iface eth1 net static 
    address 195.x.x.3 
    network 195.x.x.0 
    netmask 255.255.255.0 
    broadcast 195.x.x.255 

問題は、私は外部からのping eth0のIP 195.x.x.2ではなくeth1 pingを実行またはSSHを介してアクセスすることができないということです。そのため、次のように私はeth1設定していました。私はそれが多くのルーティングトリッキーで動作するように管理しましたが、この方法では静的なブリッジとコンテナがあれば深くなる穴です。

私の質問は:誰もが私の問題のための簡単な方法を持っていますか? eth0eth1は、通常、コンテナを静的IP番号のeth1にブリッジするように設定する必要がありますか?

答えて

0

[OK]を私はまだ問題に記載されているように、ゲートウェイのルーティングソリューションを進めることにより、以下のようにそれを解決しました。たぶん、同じ問題を抱えている人たちも、このアプローチを使うことができます。ホストで

次の行 /etc/iproute2/rt_tables

auto lo 
iface lo net loopback 

# The primary network interface 
auto etc0 
iface eth0 inet static 
    address 195.x.x.2 
    network 195.x.x.0 
    netmask 255.255.255.0 
    gateway 195.x.x.1 
    broadcast 195.x.x.255 
    up ip route add 195.x.x.0/24 dev eth0 src 195.x.x.2 table eth0table 
    up ip route add default via 195.x.x.1 dev eth0 table eth0table 
    up ip rule add from 195.x.x.2 table eth0table 
    up ip route add 195.x.x.0/24 dev eth0 src 195.0.0.2 
    dns-nameservers 150.x.x.105 150.x.x.106 

# The secondary network interface 
auto eth1 
iface eth1 net manual 

# LXC bridge interface 
auto br0 
iface br0 inet static 
    address 195.x.x.3 
    network 195.x.x.0 
    netmask 255.255.255.0 
    bridge_ifaces eth1 
    bridge_ports eth1 
    bridge_stp  off 
    bridge_fd  0 
    bridge_maxwait 0 
    up ip route add 195.x.x.0/24 dev br0 src 195.x.x.3 table br0table 
    up ip route add default via 195.x.x.1 dev br0 table br0table 
    up ip rule add from 195.x.x.3 table br0table 
    up ip route add 195.x.x.0/24 dev br0 src 195.0.0.3 

を追加しました::

sysctl -w net.ip4.conf.all.arp_filter=1 
echo "net.ipv4.conf.all.arp_filter = 1" >> /etc/sysctl.conf 

/etc/network/interfaces設定済み:

私はARPフィルタリングを有効に

... 
10 et0table 
20 br0table 

コンテナ設定ファイル(/var/lib/lxc/[container name]/config)では:

... 
lxc.network.type = vets 
lxc.network.link = br0 
lxc.network.flags = up 
lxc.network.hwadr = [auto create when bringing up container] 
lxc.network.ipv4 = 195.x.x.4/24 
lxc.network.ipv4.gateway = 195.x.x.1 
lxc.network.veth.pair = [readable server name] (when using ifconfig) 
lxc.start.auto = 0 (1 if you want the server to autostart) 
lxc.start.delay = 0 (fill in seconds you want the container to wait before start) 

Iは、容器上にapache2のを可能にすることによってそれをテストし、ネットワークの外部からのウェブページにアクセスしました。私がやったのと同じ挑戦にぶつかる誰も助けてくれることを願っています。

PS:あなたがIPを割り当てるために、コンテナの設定ファイルを持っていることを選択する場合は、コンテナ自体のインタフェースファイルでそれを無効にすることを、忘れないでください。

auto lo 
iface lo inet loopback 

auto eth0 
iface eth0 net manual 
関連する問題