임베디드 시스템용 Ubuntu를 통한 DHCP

임베디드 시스템용 Ubuntu를 통한 DHCP

Ubuntu를 실행하는 임베디드 Linux 시스템이 이더넷을 통해 Ubuntu를 실행하는 랩톱에 연결되어 있습니다. 내 노트북은 Wi-Fi를 통해 홈 네트워크에 연결되어 있습니다. 내 노트북의 Wi-Fi NIC를 통해 내 홈 네트워크에 연결된 이 네트워크를 사용하여 이더넷을 통해 내 노트북과 보드(Altera DE1-SoC) 사이에 로컬 네트워크를 만들고 싶습니다. 이상적으로는 임베디드 시스템이 홈 네트워크에서 DCHP 검색을 수행하여 자체 IP 주소를 얻을 수 있도록 하고 싶습니다. 이를 수행하기 위해 수행해야 하는 주요 구성/단계는 무엇입니까? 내 노트북의 인터페이스는 다음과 같습니다.

enp1s0    Link encap:Ethernet  HWaddr ec:f4:bb:9c:2f:35  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:736 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5148 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:251712 (251.7 KB)  TX bytes:943851 (943.8 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:1303331 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1303331 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:504332328 (504.3 MB)  TX bytes:504332328 (504.3 MB)

wlp2s0    Link encap:Ethernet  HWaddr a0:88:69:70:16:d8  
          inet addr:192.168.1.148  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: 2601:4b:500:1d01:c03a:e05e:9c30:b44e/64 Scope:Global
          inet6 addr: fe80::1095:5763:9405:b652/64 Scope:Link
          inet6 addr: 2601:4b:500:1d01:774f:fccd:5479:e9bc/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6588443 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2426855 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:6843503929 (6.8 GB)  TX bytes:502932524 (502.9 MB)

나는 enp1s0이 이더넷 NIC에 해당하고 wlp2s0이 무선 NIC에 해당한다고 생각합니다.

제가 가지고 있는 보드에는

jfrye@DE1-SoC:~$ ifconfig
eth0      Link encap:Ethernet  HWaddr da:e9:a5:9c:c8:58
          inet6 addr: fe80::d8e9:a5ff:fe9c:c858/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:577 errors:0 dropped:0 overruns:0 frame:0
          TX packets:546 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:197334 (197.3 KB)  TX bytes:175844 (175.8 KB)
          Interrupt:31 Base address:0x4000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:72 errors:0 dropped:0 overruns:0 frame:0
          TX packets:72 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:6016 (6.0 KB)  TX bytes:6016 (6.0 KB)

노트북의 /etc/network/인터페이스

# interfaces(5) file used by ifup(8) and ifdown(8)

auto lo wlp2s0
iface lo inet loopback

auto lo enp1s0
iface enps1s0 inet dhcp 

/etc/network/인터페이스 온보드

#interfaces (5) file used by ifup(8) and ifdown(8)

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

보드에서 ifdown 및 ifup eth0을 실행하면 다음과 같은 결과가 나타납니다.

Listening on LPF/eth0/da:e9:a5:9c:c8:58
Sending on   LPF/eth0/da:e9:a5:9c:c8:58
Sending on   Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 15 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 17 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 13 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 11 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 21 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 19 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 12 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 8 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 10 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 14 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 15 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 9 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 16 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 13 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 16 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 20 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 10 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 7 (xid=0xb785c867)
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5 (xid=0xb785c867)
No DHCPOFFERS received.

답변1

요청하신 기능은 4주소 Wi-Fi 헤더가 필요하기 때문에 구현하기가 매우 어렵습니다. 각 Wi-Fi 패킷에는 4개의 MAC 주소(시작 및 끝 이더넷 주소, 시작 및 끝 Wi-Fi 주소)가 포함될 수 있습니다. 그러나 대부분의 가정용 애플리케이션에서는 끝 Wi-Fi 주소가 일반적으로 동일한 장치(예: 휴대폰 또는 노트북)를 참조하므로 끝 이더넷 주소가 필요하지 않습니다. 따라서 많은 가정용 Wi-Fi 라우터는 아마도 보안상의 이유로 4주소 헤더를 사용하는 모든 트래픽을 차단합니다.

비슷한 작업을 시도했습니다. Wi-Fi 네트워크에 연결하려는 이더넷 전용 서버가 있었습니다. 우리는 Wi-Fi 동글이나 카드를 가지고 있지 않았지만 Raspberry Pi가 많았기 때문에 Pi를 어댑터로 사용하기로 결정했습니다. 그러나 우리는 바로 이 문제에 직면했습니다.

앞으로는 (내가 알고 있는) 몇 가지 옵션이 있습니다.

  • 라우터가 4주소 패킷을 지원하는지 확인하세요. 이 경우 노트북의 네트워크만 브리지하면 됩니다. 모든 라우터는 다르며 귀하의 라우터는 4주소 라우팅을 지원할 수도 있습니다.

  • Wi-Fi에 연결되어 있는 동안 내장 장치와 통신할 수 있도록 컴퓨터에 서브넷을 만듭니다. 이는 이더넷 인터페이스에서 실행되는 DHCP 서버를 사용하여 수행할 수 있습니다. 내장된 장치가 Wi-Fi 네트워크 및 인터넷에 액세스할 수 있도록 NAT를 구현할 수도 있습니다. 그러나 Wi-Fi 네트워크에서 내장 장치에 액세스할 수 있도록 하려면 포트 전달을 수행해야 합니다.

  • 랩톱의 인터페이스 간에 패킷을 직접 전달하여 네트워크에서 효과적으로 제거합니다. 이것이 우리가 Pis와 함께 택한 경로입니다. 우리는 사용했었다wlan_kabel. 심지어 빨리 썼다설정 스크립트Ubuntu에서 실행될 Pi의 경우(netplan을 비활성화한 경우) 이 체계에서 네트워크는 내장된 장치가 노트북의 Wi-Fi MAC 주소를 가지고 있는 것으로 간주합니다. DHCP를 사용하는 데 문제가 있었기 때문에(유선 컴퓨터가 잘못된 주소로 DHCPOFFERS를 무시했기 때문일 수 있음) 이 경로에는 고정 IP를 사용하는 것이 좋습니다.

죄송합니다. 최적의 솔루션을 제공하지 못했습니다. AFAIK, 하드웨어가 지원하지 않습니다. 더 좋은 것이 있으면 알려주세요. 그러면 Pis에서도 구현할 수 있습니다.

관련 정보