새 라우터로 쓰려고 ASUS PN42를 사서 OPNsense를 깔아보려 했는데, 시작부터 막혔어요. 본체에 달린 Realtek RTL8125B 랜 포트가 인터페이스로 전혀 잡히지 않더라고요.
OPNsense가 FreeBSD 기반이다 보니 기본 Realtek 드라이버로는 이 칩을 인식하지 못하는 게 문제였어요. 랜 포트가 안 잡히니 설치를 넘길 수도 없고, 인터넷 연결이 안 되니 드라이버를 내려받을 수도 없는 상황이었죠. 이 문제를 어떻게 넘겼는지 남겨봅니다.
임시 네트워크로 설치하기
내장 랜 포트를 못 쓰는 상태라 일단 FreeBSD가 바로 인식할 수 있는 다른 네트워크 장치가 필요해요.
남는 USB 랜 어댑터가 있다면 그걸 꽂으면 되고, 없다면 스마트폰을 USB 케이블로 연결해서 USB 테더링을 켜도 돼요. 다행히 스마트폰 테더링은 별도 드라이버 없이도 잘 잡힙니다.
이 임시 네트워크를 WAN 인터페이스로 잡아두면 설치를 정상적으로 끝낼 수 있고, 설치 후에도 인터넷 연결이 유지돼요. 어차피 드라이버 패키지만 하나 받으면 되니 속도는 크게 상관없어요.
Realtek 드라이버 설치하기
설치를 마치고 OPNsense 콘솔 메뉴에서 8번 셸(Shell)로 들어갑니다. 그리고 FreeBSD 포트의 realtek-re-kmod 패키지를 설치해 줍니다. Realtek 공식 드라이버를 커널 모듈로 패키징해 둔 것이에요.
pkg install realtek-re-kmod
설치가 끝나면 아래처럼 안내 문구가 나와요.
[1/1] Fetching realtek-re-kmod-1101.00.1403000.pkg: 100% 157 KiB
Checking integrity... (0 conflicting)
[1/1] Installing realtek-re-kmod-1101.00.1403000...
[1/1] Extracting realtek-re-kmod-1101.00.1403000: 100%
=====
Message from realtek-re-kmod-1101.00.1403000:
--
Add the following lines to your /boot/loader.conf
to override the built-in FreeBSD re(4) driver.
if_re_load="YES"
if_re_name="/boot/modules/if_re.ko"
By default, the size of allocated mbufs is enough
to receive the largest Ethernet frame supported
by the card. If your memory is highly fragmented,
trying to allocate contiguous pages (more than
4096 bytes) may result in driver hangs.
For this reason the value is tunable at boot time.
e.g. - if you don't need Jumbo frames you can lower
the memory requirements and avoid this issue with:
hw.re.max_rx_mbuf_sz="2048"
To enable Wake on LAN (WoL) support you might need
to set the following tunables:
hw.re.s5wol="1"
hw.re.s0_magic_packet="1"
If you experience network hangs with IPv6 enabled,
you might need to disable the checksum offloading
by adding the following parameters to the related
ifconfig line in your /etc/rc.conf file:
-rxcsum -txcsum -rxcsum6 -txcsum6
여기서 중요한 건 첫 부분이에요. 패키지만 깐다고 끝이 아니라, 부팅할 때 FreeBSD 내장 re(4) 드라이버 대신 방금 설치한 커널 모듈을 불러오도록 지정해야 해요. 나머지는 필요에 따라 쓰는 튜닝 옵션들입니다.
| 설정 | 용도 |
|---|---|
hw.re.max_rx_mbuf_sz="2048" |
점보 프레임이 필요 없을 때 메모리 점유를 줄여 드라이버 멈춤 방지 |
hw.re.s5wol, hw.re.s0_magic_packet |
Wake on LAN(WoL) 활성화 |
-rxcsum -txcsum -rxcsum6 -txcsum6 |
IPv6 사용 시 네트워크가 멈출 때 체크섬 오프로드 끄기 |
부팅 시 새 드라이버 불러오기
안내문에는 /boot/loader.conf에 넣으라고 나오지만, OPNsense에서는 업데이트 시 덮어써질 수 있어서 /boot/loader.conf.local 파일을 만들어 넣어야 해요. 이 파일을 만들고 아래 내용을 적어줍니다.
if_re_load="YES"
if_re_name="/boot/modules/if_re.ko"
hw.re.s5wol="1"
hw.re.s0_magic_packet="1"
위 두 줄이 새 드라이버를 로드하는 설정이고, 아래 두 줄은 WoL을 쓰려고 추가한 설정이에요. WoL이 필요 없다면 위 두 줄만 넣어도 됩니다.
이렇게 저장하고 재부팅하면 RTL8125B 랜 포트가 정상적으로 인식돼요. 이제 내장 랜 포트를 WAN/LAN에 다시 지정해 주고, 임시로 쓰던 USB 랜이나 스마트폰은 빼면 끝입니다.
마치며
순서를 간단히 요약하면 이렇습니다.
- 스마트폰 USB 테더링(또는 임시 USB 랜)을 WAN으로 잡고 OPNsense 설치
- 콘솔 셸에서
pkg install realtek-re-kmod로 드라이버 설치 /boot/loader.conf.local에 드라이버 로드 설정을 넣고 재부팅
같은 칩셋을 쓰는 미니 PC에 OPNsense를 올리실 생각이라면, 처음부터 테더링할 스마트폰을 옆에 두고 시작하시는 걸 추천해요.

