이더넷 인터페이스 연결

이더넷 인터페이스 연결

저는 Linux 네트워킹을 처음 접했습니다.

나는 두 개의 이더넷 인터페이스가 있는 Debian PC를 가지고 있습니다. 하나는 마더보드에 내장되어 있고 다른 하나는 PCI 카드에 내장되어 있습니다. 첫 번째는 eth0내 라우터(Inet에 연결됨)에 연결됩니다. 케이블이 연결되어 있을 때 라우터(및 Inet)에 액세스할 수 있도록 eth1에 "링크"하고 싶습니다 . 케이블을 라우터의 이더넷 포트 중 하나에 동일한 방식 으로 연결했습니다.eth0eth1eth0

데비안 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

둘째, 귀하의 경우에는 아마도 간단한리눅스 브리지그러나 추가적으로 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


편집: 브리지를 사용하여 두 개의 Linux 네임스페이스를 연결하는 방법을 보여 드리겠습니다.

솔루션 #1- 사용리눅스 브리지(참고 - 모든 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...

관련 정보