최근 수정 시각 : 2024-11-03 18:08:36

인터넷 공유기/자작

소프트웨어 라우터에서 넘어옴
파일:상위 문서 아이콘.svg   상위 문서: 인터넷 공유기
1. 개요2. 용도3. 장점4. 단점5. 직접 만들기
5.1. 컴퓨터 준비하기
5.1.1. CPU5.1.2. 그래픽카드5.1.3. RAM5.1.4. 메인보드5.1.5. OS 저장장치5.1.6. 네트워크 카드5.1.7. 전원공급장치5.1.8. 케이스5.1.9. 기타 구성 팁
5.2. 운영체제 준비하기
5.2.1. (1) 라우팅 전용 배포판5.2.2. (2) 리눅스 설치하기
6. 여담7. 관련 문서

1. 개요

Homebuilt Network Router / Homebrew Router / DIY Network Router
[ruby(自作, ruby=じさく)]ルーター

2000년대 초에는 지금과는 달리 인터넷 공유기를 저렴하게 구입할 수 없었다. 그래서 당시 대세이던 ADSL을 공유하기 위해 창고에서 잠자고 있던 구형 x86 PC[1]에 리눅스나 FreeBSD 등을 깔아 CLI로 명령어를 쳐서 설정하는 공유기를 직접 제작 및 운용하기도 했었다. 일명 '소프트웨어 라우터'. 당시 인터넷 환경상 10Mbps정도면 충분했기에 386 CPU에 4MB RAM 정도만 되어도 리눅스 깔아서 그럭저럭 사용할 수 있었던 모양. 이후 가정용 공유기가 시중에 매우 저렴하게 풀리고 아예 통신사들이 끼워주기까지 하는 현재 상황에서, 이것을 조립하는 것은 다소 생소하게 느껴지기도 한다.

그래도 현대 사회에서 매우 보편적으로 사용되는 AMD64 기반 데스크탑 컴퓨터는 이 '소프트웨어 라우터' 역할을 하기에 매우 힘차고 훌륭한 성능을 가지고 있다. 데스크탑의 확장 슬롯에 이더넷 카드(랜카드)를 설치해 이를 공유기로 활용할 수 있는데, 웬만한 고급 공유기 뺨을 후려치고도 남는 성능을 자랑할 것이다.


파일:CC-white.svg 이 문단의 내용 중 전체 또는 일부는 문서의 r732에서 가져왔습니다. 이전 역사 보러 가기
파일:CC-white.svg 이 문단의 내용 중 전체 또는 일부는 다른 문서에서 가져왔습니다.
[ 펼치기 · 접기 ]
문서의 r732 ( 이전 역사)
문서의 r ( 이전 역사)

2. 용도

보통은 이런 공유기가 필요하지 않지만, 일반 가정에서 다음과 같은 사용목적이 있다면 매우 유용하게 쓰인다.
  • 10기가비트 이더넷 환경 구축

    • 통신사에 10기가비트 인터넷을 신청하면 아직은 1대의 컴퓨터만 10기가를 온전히 사용한다는 전제 하에 보급을 하는지, 10기가비트 공유기를 제공하지 않는다. 그래서 그 넓은 대역폭을 여러 네트워크 장치들이 나눠쓰려면 공유기를 별도로 구매해야 하는데[2] 문제는 10기가를 지원하는 가정용 공유기의 종류가 매우 적으며, 가격 또한 굉장히 비싸서 실질적인 구매가 어렵다.[3] 이보다는 저렴한 고성능 공유기를 찾아보면 정작 업링크는 2.5기가가 최대 대역폭인 경우가 많다. 기업용 라우터는 일찍이 10기가 제품이 보편화되었으나 가격이며 전력소모며 가정에서 쓰기는 다소 부적합하다. 이럴때 10기가비트 랜카드 여러개를 PC에 장착해 공유기 대신 사용함으로써 기업용 라우터보다는 저렴하게 문제를 해결할 수 있다.
  • 공유기의 VPN 클라이언트화

    • 공유기를 통째로 VPN 클라이언트로 활용함으로써, 해당 공유기에 연결하는 모든 장치를 별도의 설정 없이 바로 VPN에 연결되는 환경을 구축할 수 있다. 해당 기능 자체는 기성품 공유기도 중급기 이상이면 대개 지원은 한다. 허나 VPN 프로토콜의 특성상 칩셋은 패킷의 암호화를 수행한 후 암호화된 패킷을 VPN 서버로 보내야 하는데, 정작 그 칩셋의 연산속도 자체가 느려서 속도가 느려지거나 지연시간이 높아지는 사태가 왕왕 벌어지게 된다. 반면 PC 기반 소프트웨어 라우터는 컴퓨터용 CPU 특유의 높은 성능을 그대로 활용할 수 있어 웬만해서는 속도가 잘 나온다. 설령 PC가 10년 넘어가는 구형일지라 하더라도 절대 다수는 전성비는 별로일지연정 기성품 공유기의 칩셋보다는 연산성능이 좋은 경우가 많다. 한편, 라우팅용 운영체제 및 설정에 따라서 포트별/기기별로 VPN의 사용 여부를 설정할 수도 있고, 이를 기본 기능으로 제공하는 경우도 있다.[4]
VPN 서버 구축 목적으로도 자작 공유기를 활용할 수 있다.[5] 한국 가정집 대상 ISP의 인터넷 환경에서는 어떤 이유 때문에 VPN 서버 수요가 별로 없어서 큰 의미는 없지만, 인터넷 검열이 거의 없는 국가에서 거주하고 있는데 한국 같은 곳을 자주 방문할때 유료 VPN 서비스 대용으로 사용해 볼 만하다. 다만 이런 용도로 사용할 경우 랜카드가 주렁주렁 달린 공유기보다는 램 빵빵하고 VPN 구축용 OS 또는 소프트웨어가 설치된 서버를 자작하는 게 더 낫다.
  • 방화벽

    • 기성품 공유기에 딸려나오는 방화벽 기능은 제한이 좀 있다. 차단 도메인 갯수에 제한이 있다든지, 좀 철지난 구형 제품이라면 https 도메인이 차단되지 않는다든가 등. 자작 공유기는 OS를 마음대로 바꿀 수 있으므로 방화벽 기능이 우수한 OS를 설치하여 이 문제를 해결할 수 있다. OS에 따라서 방화벽 기능과 사이트 차단 기능을 분리해 놓은 경우도 있다. 단, GoodbyeDPI 같은 차단 우회 툴이 제대로 작동되지 않을 정도로 성능이 정말 강력하기 때문에, 해당 툴을 사용하고 있다면 방화벽 사용은 가능하면 피하는 게 좋으며, 정 써야 한다면 도메인 차단 기능만큼은 사용하지 말아야 한다.[6] 물론 후술할 VPN 클라이언트 기능과 같이 쓰는 경우라면 좀 이야기가 많이 달라진다.
  • VPN 클라이언트+방화벽 조합

    • 방화벽과 VPN 클라이언트 기능을 병행해서 사용하고, 인터넷 검열을 시행하지 않는 ISP에서 서비스하는 VPN에 연결하면 방심위와 ISP가 막아놓은 사이트에 온전히 접속할 수 있음과 동시에, 정작 차단되어야 마땅하지만 방치되고 있는 사이트로의 접속시도를 네트워크 단위에서 손쉽게 저지할 수 있다. 즉, 사용자가 제3자의 간섭 없이 어떤 사이트에 접속을 허용하고 금지할지 직접 설정할 수 있다. 단, 해당 공유기를 통과하는 네트워크에서만 유효하다.
  • 좀 더 쾌적한 다중 기기 연결

    • 역시 연산성능이 좋기 때문에 많은 기기를 동시 사용할때 버벅임이 적은 편이다.

그 외에도 QoS와 같이 가정용 공유기에서는 제대로 지원하지 않거나, 엔터프라이즈 레벨 이상에서야 지원하는 기능을 가정에서 사용하는 등 활용성은 그야말로 무궁무진하다.

3. 장점

  • 훌륭한 가성비

    • 구축에 필요한 절대적인 가격은 높을지언정, 가성비는 훌륭하다. 소프트웨어 라우터를 구축하는데 소모되는 비용을 기성품 공유기를 구입하는데 사용하면, 절대 동 가격의 소프트웨어 라우터의 성능이 나오지 않는다.
  • 무한한 확장성

    • 4포트 랜카드를 여러개 꽂거나 광랜(Fiber to Fiber)카드를 꽂아서 기업용 제품 부럽지 않은 라우터를 구성할 수 있다. OS차원의 확장성도 무시 못한다. 실력이 된다면 랜카드 외의 다른 확장카드를 붙여서 공유기 외의 여러 용도로 사용할수도 있다. 성능 업그레이드도 쉽다. 부품을 좀 더 상위의 것으로 바꾸기만 하면 된다. 운영체제도 공유기로 활용할수 있는 기능이 있다면 실력에 따라, 편의성에 따라 자신에게 필요한 기능만 사용하거나 기능을 더 추가 할수도 있다.
  • 수리의 용이성

    • 고장났을 경우 일반 데스크탑 수리하듯이 부품을 교체하는 등으로 쉽게 대응할 수 있다. 보증기간 지난 기성품 공유기를 쓰다가 고장났을 때, 전자기기의 지식이 빠싹하고 전문 수리도구를 소지하고 있는게 아니라면 공임이 비싼 사설수리에 보내거나 그럴 잔존가치조차 없다면 버리고 새로 사야 할 것이다.
  • 사용했던 중고 컴퓨터를 재사용해서 구축할 수도 있다.

4. 단점

  • 전력 소모량이 기성품 공유기보다는 많이 나오며, 이는 특성상 어쩔 수 없는 부분이니 이를 감안하여야 한다. 그래도 저전력 사무용 CPU를 사용한다면 메인보드의 CPU 클럭 배수 조절 기능을 이용하여 언더클럭시켜 셋톱박스보다 전력을 조금 더 먹는 수준으로 낮출 수도 있다.
  • 덩치가 크다. 케이스를 작은걸 쓰면 어느 정도 해결되지만 기성품 공유기 정도는 아니다. 공간이 협소하다면 부담스러울 것이다.
  • 아무래도 커스텀해서 사용하는 만큼 사용자의 구축 실력에 따라 기성품 보다는 안정성이 다소 떨어질 수 있다.
  • 일반 데스크탑 컴퓨터와 마찬가지로 접촉불량 문제로부터 자유롭지 않다. 장기간 사용하거나 실수로 책상 높이에서 떨어뜨린다든지 한다면 단자 간 접촉불량으로 정상작동하지 않을 수 있다. 이런 이유로 정상작동하지 않는다면 부품을 빼고 접점 청소후 다시 끼우면 대개는 잘 작동한다.
  • 완전 팬리스로 구성한게 아니면, 먼지청소를 주기적으로 해주어야 한다. 그걸 미루면 운나쁘게 쇼트로 스파크가 튀었을때 먼지에 불이 붙을 수 있다.
  • 전면 LED 인디케이터의 부재: 전면에는 전원램프와 저장소 사용 램프만이 존재할 뿐이다. 랜이 잘 동작하는지 보려면 반드시 후면을 들춰내어야 한다.

5. 직접 만들기

5.1. 컴퓨터 준비하기

당연히 컴퓨터를 이용해 만들기 때문에 컴퓨터가 필요하다. 랜 포트가 달려있는 일체형 산업용 PC를 구입할 수도 있고, 데스크탑용 부품을 직접 조립할 수도 있다. 아래는 직접 조립하는 경우에 참고할 내용.

5.1.1. CPU

원하는 성능을 충족시켜줄만한 CPU가 필요하다. 소프트웨어 라우터는 거의 대부분의 연산을 전용 칩셋이 아닌 CPU에 의존하게 되므로 처리량이나 필요한 기능에 따라 적절한 CPU를 선택하는 것이 중요하다. 물론 일반적인 가정 사용 용도에서는 사무용 또는 저전력 제품이면 충분하며, VPN이나 각종 암호화 기능을 사용할 계획이라면 그러한 가속 엔진이 탑재된 CPU를 선택하면 된다.
2023년 기준 기가비트 수준의 단순 라우팅 연결에서는 셀러론을 사용하더라도 차고 넘치는 성능을 보여주므로, 굳이 비싼걸 살 이유는 없다. 네트워크 처리에는 그리 많은 성능이 필요하지 않다.

5.1.2. 그래픽카드

가능한 한 내장그래픽을 사용하자. 만약 내장그래픽이 없다면 저전력, 단순 디스플레이 표시 용도로 만들어진 그래픽 카드를 장착하면 된다. 하지만, 외장 그래픽을 장착하면 그만큼의 확장카드 슬롯을 차지하게 되는 것을 감안해야 한다.

5.1.3. RAM

임베디드용으로 자주 등장하는 용량의 메모리면 충분하다. 2023년 기준 2GB 혹은 4GB.
물론 무엇을 구동할 것인지에 따라 달라지지만, 리눅스를 사용하는 경우 메모리 사용량은 1GB를 채 넘기지 않으며, GUI를 사용해도 4GB면 충분하다. SQL 서버나 복잡한 웹 서버를 구동한다면 이보다 더 사용할 수 있지만, 그때부터는 라우터라고 부르기 민망해진다.

5.1.4. 메인보드

메인보드는 성능에 직접적인 영향을 미치지 않으므로, 장착하려는 확장카드 및 메모리, CPU 등에 맞춰서 구입하면 된다. 중요한 점은 장착하려고 하는 확장카드만큼 충분한 슬롯이 제공되는지 확인할 것. PCIe의 경우 사용하려는 카드의 버전을 지원하는지, 그 만큼의 레인(배속)을 지원하는지 잘 확인해야 한다. 네트워크 확장카드는, 아무리 하위호환이 지원된다고 한들, 버전이 다르면 느려지기 십상이므로 잘 확인하자.

5.1.5. OS 저장장치

다음과 같은 것들이 권장된다.
  • USB 메모리
    리눅스는 용량이 크지도 않고, OS가 담긴 저장장치의 속도가 시스템 전체 속도에 영향을 미치는 비중도 적다. 게다가 이동 및 복제가 편리하고 충격에도 강하면서, 어디에나 꽂을 수 있고, 작기 때문에 라우터와 같은 시스템에 사용하기 적절하다. 물론 읽기/쓰기 속도가 느려지면 처음 구성할 때 답답하므로 가능하다면 USB 3.0 메모리를 사용하는 것을 권장한다.
  • SSD
    USB 메모리와 비슷한 이유로 추천된다. 동일한 플래시 메모리이므로 충격에 강하다. USB보다 더 빠르지만 막상 꽂아두면 큰 장점은 없다. 하지만 수명이 보다 길고, 본체 내부에 장착되므로 USB 메모리보다 안전하고 외관상으로도 깔끔하다.

그리고, 다음과 같은 것들은 추천되지 않는다.
  • 네트워크 스토리지 (네트워크 부팅)
    라우터는 네트워크를 구성하는 장비 중 IP 계층을 담당하는데, 이 장비가 죽어버리면 IP를 이용하는 네트워크 부팅 또한 가능할 리가 없으므로 당연히 네트워크 부팅을 사용해서는 안 된다.
  • HDD
    HDD는 플래시 메모리에 비해 느리며, 충격에 약하다. 이 중 랜덤 읽기/쓰기 속도는 정말 느려서, OS 저장매체로는 추천하지 않는다. 하지만 저장용량이 크고, SSD보다 용량 당 가격이 저렴하기 때문에 로그 저장 등 다른 용도로 사용하기 적절하다. 가령 특정 패킷을 모두 저장하도록 구성하는 경우, 읽기/쓰기 성능 하락을 예방하기 위해 별도의 공간에 저장하는 것이 바람직하다.

5.1.6. 네트워크 카드

대부분의 메인보드에는 랜포트가 장착되어 있다. 하지만 서버용 카드를 따로 구입하는 것을 추천한다. 그 이유는 단순한데, 라우터를 구성하면, 기가비트 환경 기준, 일반 데스크탑용 카드로는 표시된 대역폭 전체를 모두 사용할 수 없기 때문이다. 드라이버, 칩셋 통신 지연 시간 및 지터, 발열, 전기적 간섭 등 여러가지 이유로 필연적인 성능 하락이 발생하며, 서버용 카드는 대부분 이러한 것들을 고려하여 설계된다. 라우터는 받은 패킷을 다른 인터페이스로 전달하는 장비이므로, 일반적인 PC와 다르게 같은 패킷을 두 번 (혹은 그 이상) 처리하게 되는데, 데스크탑용 칩셋을 사용하면 CPU는 처리해도 랜카드가 이러한 수준의 입출력 속도를 감당하지 못하는 경우가 생긴다.

5.1.7. 전원공급장치

부품의 전력 사용량을 모두 감당할 수 있는 수준의 전원공급장치를 선택하면 된다. 일반적인 PC의 전력 사용량 비중이 대부분 그래픽카드에서 나오는 것을 고려하면, 그래픽카드를 사용하지 않는 라우터의 전력 사용량은 결코 크지 않다. 기가비트 카드에 펜티엄 기준 200W 정도면 남아돈다. 허나 이런 낮은 용량의 전원공급장치는 구하기 쉽지 않고, 가격 또한 비싸기 때문에 정격용량 500W급 정도인 전원공급장치를 구매하는 것을 추천한다.[7]

소프트웨어 라우터는 24시간 켜져있는 장비이다. 그리고 네트워크를 제공하는 장비이다. 전원 공급 부분이 부실하면 예상치 못한 순간에 네트워크를 사용할 수 없게 되거나, 심하면 이런 중요한 장비를 망가트려 인터넷 사용에 지장을 초래할 수 있다. 따라서 일반 PC를 조립할 때보다 가능한 안정적인 부품을 사용할 것을 권장하고, 신뢰할 수 없는 브랜드의 파워서플라이의 구입은 반드시 피하자.

5.1.8. 케이스

원하는대로 부품을 선택했다면, 적당한 케이스를 선택한다. 허브랙에 장착할 수 있도록 나온 랙 케이스나, 가전제품과 유사한 외관을 가진 HTPC 케이스 등을 고려해볼 수 있다.

5.1.9. 기타 구성 팁

  • Wi-Fi를 사용하려면 별도의 확장 카드 또는 무선 공유기를 구입해야 한다.

    • 일단 무선 AP를 사용할 것을 강력하게 권장한다. 시중에서 판매되는 Wi-Fi 확장카드의 경우 클라이언트일 경우에만 명시된 규격을 지원하고, AP 모드를 전혀 지원하지 않거나 제한적으로 지원하는 경우가 많다. 퀄컴 사의 칩셋을 제외한 대부분의 칩셋은 AP 모드를 제한적으로만 지원하고, 퀄컴 칩셋은 국내에서 구입하기 어렵다. 직구를 해야하는데, 성능에 비해 가격대도 비싸다. 어찌저찌 구성해 놓는다고 해도, 실사용이 어려울 정도로 느린 경우가 다수 보고되었다. #1 #2
      무선공유기를 별도로 구입 또는 원래 사용하던 공유기를 AP모드로 전환하여 사용하면 이러한 수고를 덜어준다. 국내에서 구하기도 쉽고 성능이 좋은 칩셋을 탑재한 AP도 차고 넘친다.

5.2. 운영체제 준비하기

대부분의 라우터/방화벽용 운영체제는 리눅스 또는 유닉스 계열 운영체제를 사용한다. 물론 배포판이 있으며, 직접 설치할 수도 있다.

5.2.1. (1) 라우팅 전용 배포판

라우팅에 최적화된 OS를 설치하는 방법이 있다. 복잡한 설정을 건들이기 귀찮고, GUI가 필요하거나, 이제 막 시작하려는 경우 추천된다.
  • OpenWrt: 홈페이지: 링크시스 공유기의 GPL 코드를 기반으로 만들어진 커스텀 펌웨어가 그 시초이다. LuCI라는 패키지를 이용하면 그럴듯한 웹 GUI인터페이스도 쓸 수 있다. 애초에 임베디드 기기용으로 나와서 CPU지원이 다양해서 여러 임베디드 기기들에 설치된다. 터미널을 열 수도 있지만 태생이 CPE router용으로 나온지라 만질 수 있는 설정이 다양한 편은 아니다. 완전 무료. 물론 OpenWrt도 자작라우터에 설치된다.
  • pfSense: freeBSD기반, 원래는 방화벽인데 방화벽기능은 약하지만 가벼워서 사양이 낮은 하드웨어에서도 비교적 throughput이 잘나온다. 완전 무료. 2021년 1월에 오픈소스인 pfSense CE 2.5.0을 업데이트 하며 자사기기 탑재 버전인 pfSense FE (Factory Edition. ARM 하드웨어 지원 및 CSP 지원, 추가설정마법사 지원을 포함)를 pfSense Plus 로 명칭변경하여 업데이트 이원화를 시도한다. 대체적으로 유저들은 완전무료 오픈소스인 pfSense CE가 찬밥신세를 면치 못할것이라 추측하는중.
  • Untangle: 데비안 기반, 설치와 설정이 간편하고 UI가 사용자친화적이다. 웹사이트 필터링 애플리케이션등 몇몇 기능은 유료지만 무료기능만으로도 충분히 사용 가능하다. 가장 무난하다. 방화벽 성능도, 라우팅성능도.
  • OPNsense: pfsense 포크버전으로 HardenedBSD 기반이다.
  • Mikrotik RouterOS: 공식 홈페이지 다른 오픈소스 배포판들이 어딘가 삐걱거리는 느낌이 든다면, 이건 정말 엔터프라이즈 용도로 사용할 만한 물건이다. 원래 자사 완제품 라우터에 함께 들어있는 소프트웨어였으나, x86 기반 컴퓨터에도 설치할 수 있게 배포되고 있다. 가장 저렴한 버전은 PC 1대당 45달러 수준.[8]
  • Vyatta: 현재 Brocade 에 팔려서 오픈소스 버전은 VyOS로 바뀌었다. 데비안 기반의 라우터인데, GUI는 없다. 하지만 성능이 상당히 좋은 편이라 상당히 쓸만하다. Ubiquiti의 EdgeOS가 Vyatta/VyOS를 기반으로 개발되었다.
  • BSDRP: freeBSD기반, pfsense가 방화벽인데 반해 이 물건은 오로지 라우팅을 위한 배포판이다. 사양도 낮고 thoughput도 아주 잘나오지만, 일반 사용자용으로 개발된게 아니라 기업용 네트워크 등을 목표한 물건이라 별도의 관리용 web ui따윌 전혀 지원하질 않는다. 완전 무료.
  • Sophos: 리눅스 커널 사용, 원래는 Astro방화벽이었는데 소포스로 이름을 바꾸었다. 애초에 UTM 솔루션을 상정하고 개발된 물건이라 가장 방화벽 성능이 좋다. 50클라이언트는 무료로 가정집정도의 환경에는 충분히 무료로 쓸 수 있다.

파일:CC-white.svg 이 문단의 내용 중 전체 또는 일부는 문서의 r103에서 가져왔습니다. 이전 역사 보러 가기
파일:CC-white.svg 이 문단의 내용 중 전체 또는 일부는 다른 문서에서 가져왔습니다.
[ 펼치기 · 접기 ]
문서의 r103 ( 이전 역사)
문서의 r ( 이전 역사)

5.2.2. (2) 리눅스 설치하기

조금 더 세부적인 설정을 할 수 있고, 필요한 경우 관련 프로그램을 직접 빌드해 적용할 수도 있다. 특히 배포판을 사용하는 경우에는 보안 업데이트 및 소프트웨어 업데이트를 자동화할 수 있다는 장점도 있다.

=====# 시스템 예시 #=====
아래 내용은 WAN 및 LAN 인터페이스가 각각 1개씩(wan0, lan0) 할당되고, IPv4를 지원하며, 내부(192.168.0.0/24, DHCP서버) 및 외부(DHCP클라이언트) 네트워크가 분리되고, 내부 네트워크에서 외부 네트워크로의 통신이 수립(via NAT, Masquerade)될 수 있는 환경에 대한 예시이다.

systemctl을 사용하는 리눅스 커널 6.3을 기준으로 systemctl의 구성 요소인 systemd-networkd와 Netfilter 구성 프로그램인 nftables를 이용한 예시를 설명한다.

1. sysctl을 사용하여 커널 매개변수를 수정해 커널이 ipv4 포워딩을 수행하도록 설정한다.
/proc/sys 디렉터리를 수정해도 동일한 결과를 받을 수 있으나, 재부팅 후 설정값이 초기화되므로 sysctl을 사용한다.
echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/ipv4_forward.conf
위 명령어를 실행한 뒤 시스템을 다시 시작해 적용시킨다.

2. 인터페이스를 활성화하고, 한 인터페이스는 WAN, 한 인터페이스는 LAN 역할을 하도록 한다. (DHCP 설정 포함)
WAN 및 해당 인터페이스에 DHCP 클라이언트 설정:
nano /etc/systemd/network/20-wan.network
[Match]
Name=wan0
[Network]
DHCP=ipv4

LAN 및 해당 인터페이스에 DHCP 서버 설정:
nano /etc/systemd/network/20-lan.network
[Match]
Name=lan0
[Network]
Address=192.168.0.1/24
DHCPServer=yes

systemd-networkd 재시작:
systemctl restart systemd-networkd

위와 같이 설정하면 lan0 인터페이스에 연결된 기기가 IP를 자동으로 할당받을 수 있다.

3. Netfilter 방화벽 filter에서 forward를 허용하고, postrouting에 masquerade 규칙을 추가한다.
nano /etc/nftables.conf
table ip filter {
chain forward {
type filter hook forward priority filter; policy accept;
}
}
table ip nat {
chain postrouting {
type nat hook postrouting priority srcnat; policy accept;
oifname "wan0" masquerade
}
}

아래 명령어를 실행해 적용한다.
nft -f /etc/nftables.conf

6. 여담

알리익스프레스 등지에서 중국의 수많은 중소기업에서 제작한 완제품 소프트웨어 라우터를 팔고 있다. 부피와 전력소모를 줄이기 위해 노트북용 CPU를 사용하고 랜포트를 4개 이상 달아놓은 경우가 대부분이다. 추가확장을 포기한 대신 크기가 기성품 공유기 수준으로 작고 DC 전원을 사용해서 전원 연결하기가 간편하다는 장점이 있다. 이런 제품을 구입하고 라우팅 특화 OS를 설치하면 직접 조립한 소프트웨어 라우터와 동일한 기능을 한다. 다만 기업 국적이 국적이니만큼 장비의 신뢰성을 잘 따져보는 것을 추천한다. 보통 2.5GbE 4포트 + 아톰시피유를 장착한 베어본이 150불 전후로 팔리고 있다. 만약 하드웨어가 없어서 제로베이스로 시작된다면 가성비가 좋다.

노트북 USB 3.0 포트가 많이 달려 있다면, 해당 포트마다 기가비트 USB 랜 어댑터를 달아서 운용할수도 있다. 이렇게 만들면 외관이 보통 지저분한게 아니지만, 화면을 여는 것만으로 많은 공간 차지 없이 모니터와 키보드가 달린 환경을 쉽게 마련할 수 있다는 장점이 있다. 필요에 따라 밖으로 쉽게 들고가서 유선랜 인프라가 있을때 좁은 범위 내에 간이 와이파이존을 만들어주는건 덤. 모뎀은 해당되지 않아서 의미는 없지만, 배터리가 멀쩡하다면 UPS처럼 정전시에도 잘 작동한다.

7. 관련 문서



[1] 2000년대 이전에는 컴퓨터의 성능 발전이 매우 빨랐기 때문에 당시 제법 괜찮은 성능의 컴퓨터를 장만해도 조금만 시간이 지나면 공간만 차지하는 퇴물단지가 되어버리기 일쑤였다. [2] 이 경우 공유기(또는 공유기 목적을 할 랜카드/컴퓨터의) MAC주소를 알려달라고 하는 경우가 있다. [3] 한국에 정식 출시된 10기가비트 가정용 공유기는 없다. 고로 직구를 해야 하고 당연히 항공운송을 하는 만큼 운송비가 비싸며 여기에 부가세는 비싼 제품 가격에 비례하여 별도 지불해야 한다. [4] 인텔 i5 린필드 760 , DDR3 PC3200 8GB 기준으로 1Gbps 정도의 속도를 가지는 OpenVPN 구동은 매우 여유있게 가능하다. 2.5Gbps까지도 2~3대 수준의 연결은 성능하락 없이 가능은 하며 WireGuard로 구성시 10Gbps도 3대정도는 까지는 아슬아슬하게 버텨준다. [5] 이것 또한 웬만한 기성품 공유기에 다 있지만, 역시 연산속도가 많이 느려서 속도가 잘 안나온다. [6] 일부 라우팅 특화 OS는 방화벽에서 SNI 검출 여부를 선택할 수 있다. [7] 저전력에서의 전력 효율을 위해 80Plus 인증을 고려할 수도 있다. [8] 95달러, 250달러로 더 비싼 버전이 있지만, 200개 이상의 VPN 터널, 500명 수준의 Hotspot 관리 등의 기능이 필요한 것이 아니라면 굳이 더 비싼 버전을 구매할 필요는 없다. 클라우드 환경에 설치하는 CHR이 아닌 직접 설치형 라이선스의 경우 버전별 속도 차이도 없다.