나만의 네트워크 구성해 내 IP 배포 방법 AS 발급, BGP 연동, 라우터 설정
필자의 도움이 필요하다면 댓글 또는 hamjh@flexit.kr 로 메일 내두주면 도와주겠다.
먼저 필자와 같이 공인 IP가 많이 필요한 경우 다음과 같은 서비스를 통해 공인 IP를 대량으로 사용할 수 있다.
국내 ISP의 전용선 서비스
만약 오피스넷을 사용할 경우 공인 IP 단가가 높아 수십 ~ 수백개 이상으로 필요로하는 경우라면 비용이 올라가기 때문에 프리밴, 비즈온, 비즈넷과 같은 ISP 서비스를 이용하거나 코로케이션을 통해 서버를 입주시키고 사용하는 것이 효율적이다. ISP 직계약이 부담스러우면 vIDC를 찾아서 사용하면 된다.
만약 자신만의 IP와 네트워크를 가지고 싶다면 AS 번호를 발급받아야한다. APNIC KRNIC 에서 발급 가능하다.
KRNIC에서 발급받는 경우
현재 기준 512개 까지만 발급받을 수 있다.
APNIC이나 다른 곳에서 발급받은 경우는 좀 더 까다롭다.
AS 번호가 있고 IP가 수천개 수만개 이상 필요로 하다면 다른사람들의 IP를 빌려올 수 있다.
이제 전용선으로 직접 서버실을 구성하거나 코로케이션에서 내 AS를 이용해 IP를 이용하는 방법에 대해 설명하겠다. 이 방법을 통해 좀 더 저렴한 단가로 대량의 IP를 이용하거나 나의 이름으로 되어있는 IP를 사용할 수 있다.
Cisco ASR 시리즈나 ISR 시리즈 라우터를 기준으로 하겠다.
ISP(업스트림) 회선에 BGP 연동해야하기 때문에 ISP랑 계약을 해서 BGP 세션을 요청해야한다.
BGP 피어용 아이피도 필요하고 BGP 세션 암호는 선택이지만 해두는 것이 좋고 IRR 등록 정보(RADB) ROA 상태 증빙 자료가 준비되면 좋다. 트랜짓 계약을 해야한다.
내 AS: 64501
통신사 AS: 4766
내 IP: 203.0.113.0/24
BGP 설정 (Cisco IOS)
router bgp 64501
bgp log-neighbor-changes
neighbor 10.10.10.1 remote-as 4766
neighbor 10.10.10.1 description KT Transit
neighbor 10.10.10.1 update-source GigabitEthernet0/0
address-family ipv4
network 203.0.113.0 mask 255.255.255.0
neighbor 10.10.10.1 activate
neighbor 10.10.10.1 send-community both
neighbor 10.10.10.1 soft-reconfiguration inbound
exit-address-family
RPKI 설정 및 IRR 등록은 IP 받아온 곳에서 해야한다.
이렇게 하면 된다.
만약 나처럼 직접 장비를 구성해보고 싶으면 BGP 데몬을 이용해도 된다.
FRR이나 Bird 쓰면 되고 GoBGP라는게 있다는데 이건 잘 모르겠다.
우분투 FRR 기준이다.
sudo apt update
sudo apt install frr frr-pythontools -y
sudo vtysh
/etc/frr/daemons 경로에서 설정한다.
bgpd=yes
zebra=yes
sudo systemctl restart frr
설정
sudo vtysh
conf t
hostname my-bgp-router
password zebra
enable password zebra
router bgp 64501
bgp router-id 1.1.1.1
neighbor 192.0.2.1 remote-as 4766
neighbor 192.0.2.1 description KT Upstream
neighbor 192.0.2.1 ebgp-multihop 2
neighbor 192.0.2.1 update-source eth0
!
address-family ipv4 unicast
network 203.0.113.0/24
neighbor 192.0.2.1 activate
exit-address-family
end
write
체크
show ip bgp summary
show ip bgp
BGP로 광고만 한다고 끝이 아님, 서버에서 오는 트래픽에 대한 경로도 맞춰줘야 함
ip route add 203.0.113.0/24 dev eth0
zebra 데몬을 통해 linux kernel route에 자동으로 반영되도록 구성 가능하다.
보안 처리
prefix-list, route-map으로 필터링
maximum-prefix, password로 세션 보호
bgp dampening, MED, local-preference 등 설정 가능