web-dev-qa-db-ja.com

ブリッジユーティリティを使用してLinux経由で2台のコンピューターを接続する

以前はbridgeutilsを使用して、ネットワークに接続されたコンピューターをLinuxコンピューターの単一のインターフェイスに接続していました。私が抱えている問題は、新しいLinux(Slackwareを使用)をインストールしたときに、接続されている2台のコンピューターが相互にpingを実行できないことです。基本的に、コンピューターは次のように接続されます。

client - server - client
           |
       [Internet]

そのため、2つのクライアントを相互に接続させようとしています。どちらもインターネットにアクセスでき、テスト時には両方のクライアントでファイアウォールが遮断されます。

インターネットはeth0にあり、1つのブリッジを次のように設定しています。

bridge name     interfaces
br0             eth1, eth2

ip addr br0およびip route showそれぞれを示しています

inet 10.0.0.1/24 brd 10.0.0.255
10.0.0.0/24 dev br0  proto kernel  scope link  src 10.0.0.1

したがって、クライアントからの呼び出しは、br0インターフェイスに直接ルーティングする必要があるように思われます。これにより、正しく処理されるはずです。

できればブリッジユーティリティを使用して、2台のネットワークケーブルで接続されたコンピューターを相互に認識できるようにルーティングするようにSlackwareディストリビューションを構成するにはどうすればよいですか?

5
Patrick

サーバーのファイアウォールが無効になっていますか?パケットをブロックしているファイアウォールルールがある可能性があります。 iptablesの出力(rootとして実行する必要があります)を見て、ACCEPTルール/ポリシー以外のものが表示された場合は、それらがブロックしている可能性があります。

iptables -L

そして

iptables -t nat -L
5
Richm

2つのデバイスが相互にpingできない場合は、ブリッジが正しくセットアップされていないように聞こえます。ブリッジに関係するIPプロトコルルーティングはありません。 brctl showの出力は何ですか?それは次のようなものを示すはずです

$ brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.003018a46079       no              eth1
                                                        eth2

両方のインターフェイスがそこにリストされていない場合は、修正する必要があります。

brctl showmacs br0コマンドを試して、brctl showstp br0コマンドの上でSTP(スパニングツリープロトコル)が有効になっている場合)もお勧めします。前者は、 2つのデバイスと後者の場合は、各ポートが状態にあることを確認する必要があります転送

それぞれがインターネットにアクセスできるとあなたが言うことを考えると、私はすべてのインターフェースが立ち上がったと思います。そうでない場合は、次のようにする必要があります。

ip link set br0 up
ip link set eth0 up
ip link set eth1 up
ip link set eth2 up
3
Richm

コマンドを使用して、サーバーでIP転送が有効になっているかどうかを確認します

sysctl net.ipv4.ip_forward

これが0になる場合は、

sysctl -w net.ipv4.ip_forward=1

サーバーのルートとして。これが役立つ場合は、/ etc /sysctl.confを編集して変更を永続的にします

2
fschmitt