Upgrade OPNsense 22.7 to 23.1
환경: OPNsense 23.1
얼마 전부터 OPNsense 23.1 RC가 나오더니 릴리즈 일정에 맞춰 버전 23.1이 릴리즈되었다. 홈 라우터로 OPNsense를 사용하면서 처음으로 맞이한 메이저 업그레이드였다. 이건 조금 조심스러운 것이 혹시 업그레이드 후 인터넷이 안 되는 상황이 발생하면 매우 복잡해진다. 이전에 사용하던 라우터를 꺼내 임시로 인터넷 연결을 하고 최악의 상황에서는 OPNsense를 다시 설치하고 세팅해야 할 상황이 발생할 수 있기 때문이다.
보통 이런 일을 대비하기 위해 첫 번째 마이너 버전이 나온 후 업그레이드를 하는 것이 맞으나, 업그레이드 버튼에 불이 들어오면 눌러야 하는 성격이기에 금요일 저녁에 고장 나면 고치지... 하는 마인드로 업그레이드 진행했다. 물론 포럼을 살펴보니 큰 문제 없이 잘 동작하는 것 같았다. WireGuard와 관련된 문제가 있었으나, 이건 전에 겪어봤던 별일 아닌지라 걱정은 없었다.
업그레이드는 GUI에서 마우스 클릭 몇 번으로 문제없이 되었다. 하지만 약간의 마이너한 에러가 있었기에 기록해 놓는다. (어? 생각해보니 다시 업그레이드할 일이 없잖아...)
WireGuard
Update: 해당 버그는 글 작성 후 얼마 뒤 릴리즈 된 23.1.1버전에서 수정되었다.
WireGuard가 BSD 커널에 들어가기까지 힘든 스토리가 있었다. 23.1에서 크게 변경된 것이 커널의 WireGuard 모듈을 디폴트로 사용한다는 것이다. 하지만 나는 이미 22.7에서 커널 모듈을 따로 설치해서 사용하고 있었기에 혹시나 업그레이드 시 문제가 생길까 봐 WireGuard 커널 패키지를 삭제하고 디폴트 세팅인 wireguard-go로 복구시켰다.
업그레이드 후에는 커널 패키지가 디폴트로 설치되어 있었고, wireguard-go는 더 이상 설치되지 않았다.
시스템 모니터에 wireguard-go는 정지된 상태로 나온다. 이 부분은 시스템 모니터에 wireguard-go가 하드 코딩되어 있는 것으로 이미 버그 리포팅이 되어 있는 부분이다. 이건 시스템 모니터에서 안 보이게 설정하거나, 그냥 기다리면 된다.
Unable to load dynamic library 'mongodb.so'
부팅 후 펌웨어 리포터에서 다음 에러가 리포팅 되었다.
/local/lib/php/20210902/mongodb.so.so (Cannot open "/usr/local/lib/php/20210902/mongodb.so.so")) in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'mongodb.so' (tried: /usr/local/lib/php/20210902/mongodb.so (Cannot open "/usr/local/lib/php/20200930/mongodb.so"), /usr/local/lib/php/20210902/mongodb.so.so (Cannot open "/usr/local/lib/php/20210902/mongodb.so.so")) in Unknown on line 0
위 디렉토리에 가보니 mongodb.so는 /usr/local/lib/php/20200930/에 있었다. 잠시 찾아보니 mongodb.so는 이전에 설치했다 지웠던 Zenarmor (aka Sensei)에서 설치했던 패키지이고 삭제될 때 mongodb를 안 지워서 발생한 문제였다. 설치된 패키지를 보니 php80-pecl-mongodb가 있었다.
해결 방법은 간단했다. mongodb를 지우면 된다.
리부팅 후 mongodb 관련 에러는 해결되었다.
신규 기능: Unbound DNS Reports
사실 가장 궁금했던 부분이었다. Unbound DNS의 GUI가 너무 안 좋아 AdGuard를 따로 쓰고 있는데, 릴리즈 노트에는 Reporting 부분이 새로 추가되었다고 했다.
뭔가 있어 보이게 추가되었다. 리포팅 되는 정보는 AdGuard랑 비슷해 보인다. 천천히 살펴봐야겠다. 참고로 현재 집에서 가장 많이 query 하는 도메인 top 10은 SmartThings, Google, Netflix 관련이다. 전부 집 IoT 기기에서 발생시키는 트래픽인데, 너무 과하다. 그리고 blocked domains가 비어있는 것은 Unbound DNS에 오기 전 AdGuard에서 벌써 차단했기 때문이다.