【2012-02-01】Linuxゲートウェイモードで有線LANと無線LANの共有セグメントをLAN内で接続する


同社のインターネット行動管理製品は、シリアルゲートウェイモードで有線イーサLANおよび無線イーサLANをサポートしているが、現在の実装では有線LANと無線LANのサブネットアドレスが重ならず、有線LANと無線LANの間で同じセグメントの通信が実現できない.その後、システムカーネルの同僚の助けを得て、有線LANと無線LANを同じセグメントに分割して相互通信を実現する方法を見つけた.
 
考え方は簡単です.bridgeポートを仮想化し、対応する有線LANと無線LANをこの仮想bridgeポートにバインドし、このbridgeポートにアドレスを割り当て、他のサブネットマイクロマシンはゲートウェイをbridgeポートのアドレスに配置すればいいのです.もちろん、デバイスがゲートウェイモードなので、ルーティングやnatも必要です.デバイス自体がブリッジモードであれば、ルーティングとnatは節約できます.
 
    brctl addbr bridge
    brctl addif bridge eth0
    brctl addif bridge ath0
    ifconfig eth0  0.0.0.0
    ifconfig bridge 10.0.0.1 netmask 255.255.255.0 up
iptables-t nat-A POSTRIOUTING-o eth 1-j SNAT--to 192.168.2.173を追加
有線とワイヤレスの両方を10.0.0に設定します.*ネットセグメントは、ネット上の隣人を通じてアクセスできます.
 
 
もちろん、Linuxがブリッジモードで動作する場合は、ブリッジツールbridge-utilsをインストールし、コマンドを実行する必要があります.
yum install bridge-utils
 
またはbridge-utils-1.4をダウンロードする.tar.gzはインストールを行い、手順は以下の通りです.
 
コンパイルインストールbridge-utils
(1)/usr/srcディレクトリの下に入り、bridge-utils-1.4をダウンロードする.tar.gz :

   
   
   
   
  1. #cd /usr/src  
  2. #wget http://launchpad.net/bridgeutils/  
  3. main/1.4/+download/bridge-utils-  
  4. 1.4.tar.gz 

(2)解凍:

   
   
   
   
  1. #tar zxvf bridge-utils-1.4.tar.gz 

bridge-utils-1.4ディレクトリに入ります.

   
   
   
   
  1. #cd bridge-utils-1.4 

(3)コンパイルインストール:

   
   
   
   
  1. #autoconf 

configureファイルを生成するには、次の手順に従います.

   
   
   
   
  1. #./configure  
  2. #make  
  3. #make install 

コンパイルインストールが完了しました.最後にコマンドbrctlを/sbinにコピーします.

   
   
   
   
  1. #cp/usr/local/sbin/brctl/sbin 

 
 
===================================================================================================================================
 
以下は参考になる記事です.
 
 
ホストが5台あります.1台のホストにはlinuxが装着され、ブリッジモジュールがインストールされ、4つの物理ネットワークカードがあり、同じセグメントの他のホストに接続されています.他の4台のホスト(IPはそれぞれ192.168.1.2192.168.1.3192.168.1.3192.168.1.4192.168.168.1.4192.168.1.5)間でパケットを転送するブリッジになることを望んでいます.また、管理を容易にするために、ブリッジにIP(192.168.1.1)があることを望んでいます.そうすれば、管理者は192.168.1.0/24セグメント内のホスト上でtelnetをブリッジに配置し、遠隔管理を実現することができます.
前節では,ブリッジは同じ論理セグメントでパケットを転送する.上記のトポロジに対して、この論理セグメントは192.168.1.0/24セグメントである.私たちはこの論理ネットワークセグメントの名前、br 0です.まず、このような論理セグメントを構成する必要があります.
#brctl addbr br 0(br 0という論理セグメントを作成)
実際には、論理セグメント192.168.1.0/24をVLANと見なすことができ、br 0はこのVLANの名前である.
論理セグメントを確立した後、このセグメントに特定のポートを割り当てる必要があります.Linuxでは、1つのポートが実際には物理ネットワークカードです.各物理NICの名前はeth 0,eth 1,eth 2,eth 3です.各NICをbr 0というセグメントに接続し、br 0のポートとして使用する必要があります.
#brctl addif br 0 eth 0(eth 0をbr 0のポートにする)#brctl addif br 0 eth 1(eth 1をbr 0のポートにする)#brctl addif br 0 eth 0(eth 2をbr 0のポートにする)#brctl addif br 0 eth 3(eth 3をbr 0のポートにする)    
ブリッジの各物理ネットワークカードはポートとして混在モードで動作し、リンク層で動作するため、IPは必要ありません.
  # ifconfig eth0 0.0.0.0 # ifconfig eth1 0.0.0.0 # ifconfig eth2 0.0.0.0 # ifconfig eth3 0.0.0.0    
次にbr 0の仮想NICにIP:192.168.1.1を構成します.そうすれば、ブリッジをリモートで管理できます.
  # ifconfig br0 192.168.1.1    
br 0にIPを配置すると,ブリッジが動作する.192.168.1.0/24セグメント内のホストはtelnetからブリッジ上で構成できます.
以上の構成は1つの論理セグメントであり,実際にはLinuxブリッジも複数の論理セグメント(スイッチで複数のVLANを分割することに相当)に構成できる. 
 
もう一つの理解に役立つ文章http://blog.sina.com.cn/s/blog_53689eaf0100wbwd.html
===========================================================================================================
 
[root@xenserver ~]# brctl --help Usage: brctl [commands] commands:         addbr                           add bridge         delbr                           delete bridge         addif                  add interface to bridge         delif                  delete interface from bridge         setageing