イーサネットインターフェイス接続

イーサネットインターフェイス接続

私はLinuxネットワーキングに初めて触れました。

私は2つのイーサネットインターフェースを持つDebian PCを持っています。 1つはマザーボードに埋め込まれ、もう1つはPCIカードに組み込まれています。最初はeth0私のルーター(Inetに接続されています)に接続されます。ケーブルが接続されているときにルーター(およびInet)にアクセスできるようeth1に「リンク」したいと思います。ケーブルをルーターのイーサネットポートの1つに同じ方法で接続しました。eth0eth1eth0

Debian PC も Inet と LAN にアクセスできる必要があります。だから(私のルーターで)接続されたケーブルeth0と(別のPCに)接続されたケーブルの間のeth1「仮想リンク」の役割だけをしてはいけません。

これは可能ですか?どのように?

答え1

あなたはそれを使用することができますブリッジインターフェイス。使用brctlできるブリッジングツールブリッジインターフェイスを作成します。例えば、

$ brctl addbr br0
$ brctl addif br0 eth0 eth1
$ brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.00004c9f0bd2       no              eth0
                                                        eth1

したがって、ブリッジデバイスにインターフェイスを追加した後、次の設定を行う必要がeth0ありますeth1。これをbr0使用して、次を表示できますifconfig

$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr BC:AE:AA:34:22:11  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
...

$ ifconfig eth1
eth1      Link encap:Ethernet  HWaddr BC:AE:AA:34:11:22  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
...

IPアドレスを持つブリッジデバイス:

$ ifconfig br0
br0       Link encap:Ethernet  HWaddr BC:AE:C5:11:22:33  
          inet addr:192.168.1.20  Bcast:192.168.1.255  Mask:255.255.255.0
...

答え2

数年後..別の答えを追加します。

まず、ifconfigこのパッケージが最近でもメンテナンス中かどうかわかりません。ip次のコマンドを使用することをお勧めします。IP ルート 2パック。

いくつかのガイドラインiproute2:

http://andys.org.uk/bits/2010/02/24/iproute2-life-after-ifconfig/

https://www.tecmint.com/ifconfig-vs-ip-command-comparing-network-configuration/

https://lartc.org/howto/lartc.iproute2.html#LARTC.IPROUTE2.WHY

第二に、あなたのケースでは、おそらく簡単ですLinux ブリッジただし、さらに2014年から言及する価値があります。オープンvSwitch(OVS)Linux Bridgeの強力なライバルです。

いくつかの参考資料:

http://www.fibre-optic-transceiver-module.com/ovs-vs-linux-bridge-who-is-the-winner.html

https://devinpractice.com/2016/10/18/open-vswitch-introduction-part-1/

https://kumul.us/switches-ovs-vs-linux-bridge-simplicity-rules/

https://networkengineering.stackexchange.com/questions/28408/difference-Between-linux-bridge-and-open-vswitch


編集:ブリッジを使用して2つのLinux名前空間を接続する方法を紹介します。

ソリューション#1- 使用Linux ブリッジ(注 - すべてのipコマンドには上部に3#のコメントがあります):

# Variables
BRIDGE=my-bridge

TAP1=Tap1
TAP1-BR=TAP1-bridge-side

TAP2=Tap2
TAP2-BR=TAP2-bridge-side

NAMESPACE1=Namespace1
NAMESPACE2=Namespace2

## Create bridge
brctl addbr $BRIDGE

### Bring it up
ip link set dev $BRIDGE up

### Create a Veth pair named Tap1 <--> TAP1-bridge-side
ip link add $TAP1 type veth peer name $TAP1-BR

## Attach one side of Tap1 to bridge
brctl addif $BRIDGE $TAP1-BR

### And the other side to namespace1
ip link set $TAP1 netns $NAMESPACE1

###  Set the interface on the bridge side up
ip link set dev $TAP1-BR up

### Set the interface inside the namespace up - notice that we execute  'ip netns exec' in order to run the inside the namespace scope
ip netns exec $NAMESPACE1 ip link set dev $TAP1 up

####
# Now create another Veth and connect it to the bridge - just change $TAP1 ->$TAP2, $TAP1-BR -> $TAP2-BR and repeat the same steps.. 

## Now you can reach namespace1 from namespace2 and vice versa.

ソリューション #2.A- 構成ブリッジの使用スイッチを入れる:

# Install the package
sudo apt-get install openvswitch-switch

# Now run the exact same commands like before just replace the CLI tool:
## brctl -> ovs-vsctl

# And replace commands:
## addbr -> add-br
## addif -> add-port

ソリューション #2.B- 構成ブリッジの使用スイッチを入れる- Vethペアを内部ポートに交換する:

# Similar to # 2.A
ovs-vsctl add-br $BRIDGE

# Similar to 2.A - Just with the addition of -- set Interface...
ovs-vsctl add-port $BRIDGE $TAP1 -- set Interface $TAP1 type=internal

### Similar #2.A (and #1)
ip link set $TAP1 netns $NAMESPACE1

### Similar #2.A (and #1)
ip netns exec $NAMESPACE1 ip link set dev $TAP1 up

# Now repeat for $TAP2...

関連情報