Ubuntuネットワークカードブリッジおよびブリッジ後のネットワーク不通の解決方法


最近はDockerの勉強をしていて、ローカルエリアネットワークで異なるマシンで動作するDockerネットワークをオンにしてブリッジ方式を使おうとしています.以下に、関連するいくつかの操作と発生した問題と解決方法を記録します.
    1.bridge-utilsのインストール(システムはUbuntu 15.04)
        apt-get install -y bridge-utils
     2.Dockerサービスを停止
         systemctl stop docker.service
     3.Dockerが作成したデフォルトの仮想NICを削除
        ip link set dev docker0 down
        brctl delbr docker0
     4.NICのプロファイルの変更
        vi/etc/network/interfaces       
        auto p1p1
        iface p1p1 inet static
           address 10.0.40.11
           netmask 255.255.255.0
           network 10.0.40.0
           broadcast 10.0.40.255
           gateway 10.0.40.1
           dns-nameservers 114.114.114.114
           
上記の内容を(完全な構成)に変更します.
        source /etc/network/interfaces.d/*

	auto lo
	iface lo inet loopback

	auto p1p1
	iface p1p1 inet manual

	auto br0
	iface br0 inet static
        address 10.0.40.11
        network 10.0.40.0
        netmask 255.255.255.0
        broadcast 10.0.40.255
        gateway 10.0.40.1
        bridge_ports p1p1
        dns-nameservers 114.114.114.114
            # bridge_stp off
        bridge_fd 0
        bridge_maxwait 0

     5.NICの再起動
         /etc/network/networking restart
       再起動後ifconfigを実行すると、br 0の仮想ネットワークカードが1つ存在することがわかります.
    6.dockerのブリッジ構成の変更
       echo 'DOCKER_OPTS="-b=br0"' >>/etc/default/docker        systemctl start docker.service
     OK、ブリッジはすでに構成されており、Dockerのブリッジはbr 0にバインドされています.
    遭遇した問題:ネット上のNICブリッジの構成を参照するため、ほとんどの資料は /etc/network/interfacesのbr 0の構成には、次の行があります. bridge_stp off ,しかし、プロファイルを変更するたびに、NICを再起動すると、ネットワークが通じなくなり、数秒も通じ、いくつかのコマンドを実行することができますが、その後、ネットワークが切断されます(MD、冗談を言っています!).そして、ルーティングのチェック、IPとゲートウェイの設定、Macアドレスのバインドなど、一日中問題点を探していましたが、ネットワークが切断されます.
    最後に、どれだけの資料を調べたら、偶然http://blog.csdn.net/cybertan/article/details/8160102で説明している手順を実行してください.
  bridge          eth0      (promiscuous mode,          ),  br0      (forwarding state),  br0 eth0    MAC  ,       eth0   IP。“brctl stp br0 on”   br0 STP  ,STP      (Spanning Tree Protocol),           bridge    LAN      (bridge loop)。     STP,             bridge        。

    だから、なぜネットが通じないのか、一瞬にして分かった:サーバー内部でループになった!そこで思い切って:bridge_stp off  一行の注釈を落として(後で発見して:bridge_stp noに変えるべきです)、更にネットカードを再起動して、瞬間的にネットは通じて、しかし私の後ろでまた何台かの機械の上でテストして、やはりだめなようで、システムを再起動した後で、ブリッジは大丈夫です.でも、後で気づいた:bridge_stp on/noは、ブリッジにはあまり影響しません.どうせシステムを再起動する必要があります.この問題に2、3日振り回されたので、ここで忘れて、同じ問題に直面した同級生を助けたいと思っています.