Notice
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
01-09 18:44
Today
Total
관리 메뉴

그날그날 공부기록

라즈베리파이4 DHCP 요청실패로 인한 삽질 본문

개인 서버 만들기/라즈베리파이 세팅

라즈베리파이4 DHCP 요청실패로 인한 삽질

given_dragon 2024. 1. 8. 23:19

라즈베리파이 4 8GB 모델이 2대가 놀고 있어 평소에 만들어보고 싶었던 개인 서버를 구축해 볼까 했다.

앞으로 여러 프로젝트나 개인 사이트를 제작해 배포기도 좋고, 재밌을 것 같았다.

 

내 방 인터넷 환경은 다음과 같다.

이지메시를 사용하기 때문에 방에있는 공유기 대신, 거실 공유기가 DHCP 서버 역할을 한다.

또, 이지메시 컨트롤러인 거실 공유기의 성능이 더 좋기 때문에 컨트롤러 바로 아래에 스위치를 연결하고, 기기들을 연결했다.

 


 

 라즈베리파이 무선 속도 문제 발생

라즈베리 파이에는 Ubuntu Server 22.04.3 LTS 64bit 버전을 설치했고, Raspberry Pi Imager로 SSD를 구웠다.

공유기는 유선 메시로 구성되어 있어 다른 기기에서 wifi 속도가 무선이나 유선이나 속도 차이가 크게 나지 않았다.

 

라즈베리파이 4는 802.11ac를 지원해 무선으로 사용할 생각이었으나, speedtest로 속도 측정을 해보니 이야기가 달랐다.

서버를 바꿔가며 여러 번 측정을 해봤지만 속도가 업/다운로드 모두 약 90 Mbit/s 밖에 나오지 않았다.

조금 서칭을 해보니 벤치마크, 포럼등을 볼 수 있었고 그게 정상이더라....ㅋㅋ (포럼)

 

KT 기사님과 함께 힘겹게 구축한 기가인터넷 이지메시의 600~800 Mbit/s를 써오던 나에겐 90 Mbit/s는 만족스럽지 못했다.

그래서 라즈베리파이 역시 유선을 사용하기로 한다.


 

라즈베리파이의 DHCP 요청 실패

열심히 선 정리를 하고 메인 라즈베리파이를 스위치에 연결했다.

랜포트에 불은 잘 들어오고, 유선 랜카드 인터페이스가 인식이 되는 것을 확인했지만 IP를 할당받지 못했다.

스위치에 데스크탑이나, 노트북을 유선으로 연결하며 IP할당에 문제가 있던 적이 없었기 때문에 DHCP 서버의 문제라고는 생각하지 않았다.

 

처음에는 /etc/netplan에 있는 설정파일이 문제인가? 해서 몇 번이고 수정을 했지만 모두 실패했다.

간단히 검색해서 나오는 조치방법들도 해봤지만 실패했다.

OS가 설치되며 문제가 생겼나 싶어 재설치도 반복해봤고, 해당 버전의 버그인가 싶어 버전도 여러 번 바꿔봤다.

dhclient를 사용해 수동으로 DHCP 요청을 날려봤다.

분명 요청은 날린다고 콘솔에 출력이 되지만, 여전히 IP를 할당받지 못했다.

따로 설정한것은 없지만 인터페이스 카드의 MAC주소를 DHCP 서버에서 차단하나.. 싶은 생각까지 들었다.

 

이렇게 주말 하루를 날렸지만 소득이 없어 지친 마음으로 서브 라즈베리파이에는 다른 OS인 라즈비안을 설치해 봤다.

그런데 서브 라즈파이는 IP를 바로 할당받아졌다...!

하루 만에 보는 IPv4 주소가 너무 반가웠고 Ubuntu Server로 OS를 교체해도 너무 잘 잡히더라 ㅋㅋㅋㅋ

문제가 됐던 메인 라즈베리파이에도 라즈비안 외 다른 OS를 깔아봤지만 모두 IP를 할당받지 못했다.

이렇게 2일간의 억까를 당하고 아무리 해도 문제를 파악할 수 없어 HW고장으로 판단 & USB 랜카드를 사기로 마음먹었다.


랜카드의 RTL8153칩으로 인한, 재부팅시 인터페이스 인식 이슈 발생

쿠팡에서 구입한 USB랜카드인 iptime U1G이 다음 날에 도착했다.

좀 더 저렴한 모델이 사고 싶었지만, 집의 공유기부터 스위치까지 모두 iptime이기에 혹여나 다른 브랜드의 랜카드를 샀다가 실패하면 상처를 너무 심하게 받을 것 같았다 ㅎㅎ,,

라즈베리 파이를 부팅하고 USB 랜카드를 꽂으니 인터페이스가 인식됐다 :)

(아직 netplan에 해당 인터페이스에 대한 설정을 해주지 않아 자동으로 DHCP 요청을 날리지 않았고, ip 역시 할당받지 않는다)

 

 

dhclient -v #{interface_name}으로 요청을 날리니 드디어 IP를 할당받는 것에 성공했다..!!

 

 

기쁜 마음으로 netplan 설정파일에 해당 인터페이스를 등록해 주고 재부팅을 해보았다.

그런데 인터페이스가 감지되지 않았다…

랜카드의 불빛은 정상적으로 나오고 있었기 때문에 라즈파이에 연결되어 있는 usb를 확인해 봤다.

U1G 랜카드는 RTL8153 칩을 사용한다고 알고 있었는데 8151이 보인다.

구글에서 관련 이슈를 찾아보니 핫플러그 방식으로 USB를 꽂는다면 문제가 없지만, 부팅 전부터 꽂아둔다면 해당 랜카드가 저장장치로 인식된다는 이슈가 있었다.


어댑터 리셋을 통한 인터페이스 재인식

usb_modeswitch로 해당 어댑터를 리셋하면 해결된다는 글을 봤고 진행했다.

  1. 우선 usb modeswitch를 설치한다.
    1. sudo apt install usb-modeswitch
  2. 그리고 원하는 어댑터를 리셋한다.
    1. sudo usb_modeswitch -v 0bda -p 8151 -R → 위의 사진에서 vid와 pid를 확인할 수 있다.

어댑터를 리셋해 주니 드디어 정상적으로 인터페이스가 잡혔다!!

 


어댑터 재인식 스크립트 서비스 등록

하지만 매번 부팅 마다 이 명령어를 치기는 귀찮으니 서비스를 등록했다.

system 디렉터리로 이동한다. cd /etc/systemd/system

해당 디렉터리에 rpi-usbfix.service 파일을 생성하고 권한을 644로 수정한 뒤 다음과 같이 입력해 주었다.

[Unit]
Description=Fixes RTL8153 Ethernet Adapter issues

[Service]
ExecStart=/usr/sbin/usb_modeswitch -v 0bda -p 8151 -R
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
더보기

- Description: 서비스에 대한 설명

- ExecStart: 서비스 구동 시 실행할 구문

- Type: 유닛 타입 지정

  - Type=simple: 유닛이 시작되고 즉시 systemd는 유닛의 시작이 완료되었다고 판단, active로 상태변경. 바로 다음 유닛 실행

  - Type=oneshot: 해당 유닛이 시작되면 activating 상태로 변경하고, 종료 후 다음 systemd 유닛 실행

 

 

이제 등록을 해주고 재부팅을 해보면 끝난다. systemctl enable rpi-usbfix.service

재부팅을 하고 확인해 보니 정상적으로 ip를 받아오는 걸 확인할 수 있다.


인터넷 속도 측정 & 끝

아래의 사진처럼 드디어 기가인터넷다운 속도가 나온다!

 

억까를 너무 많이 당해서 심적으로 힘들었지만 잘 극복하고 해결해 뿌듯하다 :)

 

부팅 시 랜카드 인식문제를 해결하기 위해 랜카드를 탈착 하던 도중 라즈베리파이가 명령어를 인식하지 못하는 상황도 생겼었다.

이 문제는 탈착 하면서 SSD 인식이 불안정 해져 그렇다고 생각한다.

현재 SSD와 랜카드까지 달려있어 USB 전력문제가 생길 수 있다고 생각되어 돌려보면서 지켜봐야겠다.

'개인 서버 만들기 > 라즈베리파이 세팅' 카테고리의 다른 글

iptime DDNS 설정  (0) 2024.01.11
Comments