2025-03-22 00:03:22 작성


안녕하세요

오늘은 홈네트워크를 구성한 기념으로 구성기를 작성해보려 해요.

문제

기존의 네트워크 구조는 이렇게 되어 있었어요.

하지만, 이렇게 구성하면 각각의 공유기/허브가 다른 네트워크에 연결되어 있어 같은 집 안에서도 파일공유/프린트 등이 불편했어요.

이를 해결하고자 홈네트워크를 구성하기 시작했어요.

해결1: 모뎀 밑에 공유기 밑에 허브

모뎀 밑에 공유기를 두고, 공유기에 허브를 연결하면 모든 기기들을 같은 네트워크로 묶을 수 있어요.

하지만, 단자함에 공유기를 넣으면, 무선 품질이 많이 떨어져서 다른 방법을 생각해 보았어요.

대부분의 가정에서 모뎀 밑에 둘 공유기(1번 공유기라고 할게요)를 꽂을 인터넷 단자 옆에, 전화선을 꽂는 같은 규격의 단자가 있을 거예요.

전화선으로도 인터넷 연결을 해버리면 된답니다. (규격만 같은 줄 알았는데, 상관없더라고요)

즉,

모뎀(단자함) - 1번 공유기가 있는 방의 인터넷 단자(방) - 1번 공유기 - 1번 공유기가 있는 방의 전화 단자(방) - 허브(단자함)

이렇게 설치하면 가정 내의 벽면에 있는 모든 인터넷 단자가 공유기의 단자가 되는.. 그런 효과로 같은 네트워크로 묶여요!

...그런데 2번 공유기를 제외하고요.

해결2: 공유기 모드 설정

2번 공유기는, 공유기로써의 역할을 하기 위해서, 다시 DHCP 서버에서 IP를 할당하고.. 2번 공유기의 네트워크를 만들거예요.

이를 해결하기 위해서 공유기의 설정창에서

이렇게 공유기 모드가 아닌 AP모드로 바꿔주면, 상위 1번 공유기의 네트워크를 그대로 중계하는 역할만 수행하게 돼요.

아, 그리고 DHCP 서버도 1번 공유기만 사용하기 위해서, 2번 공유기의 DHCP는 꺼주세요!

해결3: 구형허브 교체

기존에 아파트에 설치되어 있던 허브는 10/100Mbps 허브였어요.

그런데, 저희 집에 들어오는 회선속도는 500Mbps예요.

그래서 모뎀 밑에 설치한 공유기에서만 500Mbps 속도가 나오고, 허브를 거쳐가는 순간 100Mbps로 속도가 떨어지는 문제가 발생했어요.

메인 1번 공유기의 속도측정

서브 2번 공유기의 속도측정

그래서, 1000Mbps까지도 지원하는 스위칭 허브를 새로 구매하여, 모든 포트를 연결해주고 CAT5 이하 규격의 랜케이블은 CAT5E 이상으로 교체해주었어요.

그랬더니 서브 공유기에서도 속도가 빨라졌답니다.

서브 2번 공유기 속도향상

혹시 홈네트워크를 구성하고 속도가 느리다면, 랜케이블 버전, 허브 지원 속도를 확인해주세요!

해결4(TODO): Mesh WiFi

이제 마지막 관문, Mesh WiFi를 구성해서 스마트폰/노트북을 방을 옮겨가면서 이용해도 끊김없이 와이파이로 이용할 수 있도록 하고자 해요.

Mesh를 쉽게 구성하기 위해서는 가급적 같은 제조사의 공유기를 추천해요.

하지만, 저는 아쉽게도 서로 다른 제조사의 공유기였기 때문에.. Mesh WiFi를 쓰는 것처럼만 하기로 했어요.

두 공유기의 SSID와 비밀번호를 똑같게 해주면, 자동으로 더 강한 와이파이로 연결을 바꿔주네요.

하지만, 완벽하게 같은 WiFi를 이용하는 것은 아니라는거..!

나중에 투자를 조금 더 한다면, 공유기를 바꿔서 해결해보기로 해요.

끝.

'네트워크' 카테고리의 다른 글

[SSL] Route53 + Certbot 와일드카드 인증서 발급  (0) 2025.05.03

플러그인 설치 및 Credential 설정

Certbot Route53 플러그인 설치

sudo apt-get update
sudo apt-get install python3-certbot-dns-route53

AWS IAM 사용자 생성

  1. AWS 콘솔의 IAM 서비스에서 새로운 사용자 생성하기 (ex. certbot)
  2. 액세스 키 생성
  3. 권한 설정 (AmazonRoute53FullAccess 권한)

AWS 자격 증명 파일 생성

mkdir -p ~/.aws
vi ~/.aws/credentials

~/.aws/credentials 에 발급받은 ACCESS_KEY의 ID와 SECRET_KEY를 아래와 같이 입력한다.

[default]
aws_access_key_id = YOUR_ACCESS_KEY_ID
aws_secret_access_key = YOUR_SECRET_ACCESS_KEY

보안 권한 설정

chmod 600 ~/.aws/credentials

인증서 발급

기존 인증서 삭제

혹시 기존 인증서가 있다면 삭제하자. (안해도 되지만.. clean하게..)

sudo certbot delete --cert-name parkjb.com

새로운 인증서 발급

sudo certbot certonly \
  --dns-route53 \
  -d parkjb.com \
  -d '*.parkjb.com'

certonly: 인증서만 발급하고, 웹 서버 설정은 변경하지 않는 옵션.. certonly 없이 자동으로 한다면 설정 올바르게 되었는지 확인해주기

에러?

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for parkjb.com and *.parkjb.com
Unable to locate credentials
To use certbot-dns-route53, configure credentials as described at https://boto3.readthedocs.io/en/latest/guide/configuration.html#best-practices-for-configuring-credentials and add the necessary permissions for Route53 access.
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details.

이런 에러가 뜬다면, Credential 정보를 못찾은 것이다.
~/.aws 폴더에 들어있는 Credential이 사용자의 홈 디렉토리에 있어서 발생하는 문제이다.
이럴때는 root에 ~/.aws 폴더를 옮겨주거나, 아래의 환경변수를 설정하고 다시 실행한다.

AWS_ACCESS_KEY_ID^API 참고
The access key for your AWS account.

AWS_SECRET_ACCESS_KEY^API 참고
The secret key for your AWS account.

결과

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for parkjb.com and *.parkjb.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for parkjb.com and *.parkjb.com

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/parkjb.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/parkjb.com/privkey.pem
This certificate expires on 2025-02-21.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

굳.

마무리 설정 및 테스트

웹 서버 설정

server {
    listen 443 ssl;
    server_name parkjb.com *.parkjb.com;

    ssl_certificate /etc/letsencrypt/live/parkjb.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/parkjb.com/privkey.pem;

    # 나머지 설정...
}

이런식으로 ssl_certificate 경로 잡아주면 된다.
본인의 경우 이미 설정해둔 적이 있어서 Pass
설정 바꾸면 reload 진행할것

sudo systemctl reload nginx

자동 갱신을 위한 웹 서버 재시작 설정

sudo certbot renew --deploy-hook "systemctl reload nginx"

/etc/letsencrypt/renewal/parkjb.com.conf 파일에서 [renewalparams] nginx reloading 할 수 있도록 deploy-hook을 아래와 같이 추가해주자

deploy_hook = systemctl reload nginx

테스트

sudo certbot renew --dry-run

--dry-run은 실제 적용하지 않고 되는지 시뮬레이션하는 옵션

#Security #nginx #route53

'네트워크' 카테고리의 다른 글

홈네트워크 구성기  (0) 2025.05.03

+ Recent posts