usb0 및 usb1 인터페이스를 하나의 네트워크로 병합하는 방법은 무엇입니까?

usb0 및 usb1 인터페이스를 하나의 네트워크로 병합하는 방법은 무엇입니까?

저는 모두 Ubuntu 14.04를 실행하는 세 개의 장치로 설정했습니다. 설정은 다음과 같습니다.

하나의 호스트와 두 개의 장치로 네트워크 설정.

제가 갖고 싶은 것은 두 장치가 모두 인터넷에 연결될 수 있을 뿐만 아니라 서로 연결될 수도 있는 구성입니다. 그리고 이상적으로는 호스트 PC가 어느 장치에서나 연결될 때 동일한 IP를 가져야 합니다. 두 가지 가능한 구성을 시도했지만 둘 다 실패했습니다.

1: usb0과 usb1은 동일한 IP와 서브넷을 사용합니다.

주인

iface usb0 inet static
    address 10.0.1.1
    netmask 255.255.255.0
    up route add 10.0.1.1 netmask 255.255.255.0

iface usb1 inet static
    address 10.0.1.1
    netmask 255.255.255.0
    up route add 10.0.1.1 netmask 255.255.255.0

장치 0

iface usb0 inet static
    address 10.0.1.2
    netmask 255.255.255.0
    route add default gw 10.0.1.1

장치 1

auto usb0
iface usb0 inet static
    address 10.0.1.3
    netmask 255.255.255.0
    route add default gw 10.0.1.1

! 문제 !

장치 0만 연결됩니다. 이것은 ping이 가능하고 인터넷에 연결할 수 있지만 장치 1은 게임에서 완전히 벗어났습니다. 따라서 인터넷에 연결되어 있지 않습니다.

2: usb0과 usb1의 IP 주소가 다릅니다.

주인

iface usb0 inet static
    address 10.0.1.1
    netmask 255.255.255.0
    up route add 10.0.1.1 netmask 255.255.255.0

iface usb1 inet static
    address 10.0.2.1
    netmask 255.255.255.0
    up route add 10.0.2.1 netmask 255.255.255.0

장치 0

iface usb0 inet static
    address 10.0.1.2
    netmask 255.255.255.0
    route add default gw 10.0.1.1

장치 1

auto usb0
iface usb0 inet static
    address 10.0.2.2
    netmask 255.255.255.0
    route add default gw 10.0.2.1

! 문제 !

장치 번호 1에서 10.0.1.1을 ping할 수 없습니다.

질문

이상적으로 모든 시스템이 하나의 IP 주소를 갖고 인터넷에 연결되며 SSH를 통해 다른 모든 시스템에 액세스할 수 있는 더 큰 로컬 네트워크를 형성하도록 두 개의 USB 인터페이스를 연결하려면 어떻게 해야 합니까?

답변1

필요한 것은 브리징을 구성하는 것입니다. 브리징이 수행하는 작업은 기본적으로 여러 인터페이스를 함께 묶은 다음 브리지를 실행하는 컴퓨터가 스위치 역할을 하도록 하는 것입니다. IP 주소는 구성 인터페이스가 아닌 브리지 인터페이스 자체에 구성됩니다.

이를 수행할 수 있는 방법에는 기본적으로 두 가지가 있습니다. 두 개의 USB 인터페이스로 브리지를 설정한 다음 iptables와 일종의 NAT를 사용하여 컴퓨터를 인터넷으로 라우팅하거나 두 USB 인터페이스를 모두 고정할 수도 있습니다. 단일 브리지의 물리적 인터페이스로 사용됩니다. 그렇게 하면 USB 인터페이스를 LAN에 직접 연결하여 인터넷에 액세스할 수 있습니다.

귀하의 애플리케이션에 어느 것이 더 적합한지 선택하는 것은 귀하에게 달려 있습니다.

USB 네트워크 인터페이스가 기본 네트워크에 브리지되는 설정에 대한 구성( /etc/network/interfaces)은 기본 네트워크 인터페이스가 eth0이라고 가정할 때 다음과 유사할 수 있습니다.

iface eth0 inet manual
iface usb0 inet manual
iface usb1 inet manual

auto br0
iface br0 inet dhcp
  bridge_ports eth0 usb0 usb1

자세한 내용은 다음에서 확인할 수 있습니다.우분투 커뮤니티 도움말 위키.

이 설정에서 USB 네트워크 장치는 네트워크의 기존 DHCP 서버에서 IP 주소를 가져오거나 로컬 LAN의 고정 IP 주소로 구성됩니다. 또한 PC는 DHCP를 사용하여 IP를 얻습니다. 이렇게 하면 USB 연결 장치가 DHCP 서버를 실행하지 않는지 확인하세요. 그렇지 않으면 네트워크의 다른 사용자가 교차하게 될 수 있습니다. :-)

답변2

결국 다음과 같이 구성되었습니다.

주인

/etc/네트워크/인터페이스

auto br0
iface br0 inet static 
    address 10.0.1.1
    netmask 255.255.255.0
    bridge_ports usb0 usb1
    pre-up ip addr flush dev usb1
    pre-up ip addr flush dev usb0

/etc/rc.local

sleep(15)
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward > /dev/null
iptables -P FORWARD ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE -s 10.0.1.0/24

장치 0

/etc/네트워크/인터페이스

auto usb0
iface usb0 inet static
    address 10.0.1.2
    netmask 255.255.255.0
    dns-nameserver 8.8.8.8
    up route add default gw 10.0.1.1

장치 1

/etc/네트워크/인터페이스

auto usb0
iface usb0 inet static
    address 10.0.1.3
    netmask 255.255.255.0
    dns-nameserver 8.8.8.8
    up route add default gw 10.0.1.1

관련 정보