끝나지 않는 프로그래밍 일기

1. 널 라우팅(Null Routing)이란?


널 라우팅(Null Routing)이란, IP 대역 또는 특정한 목적지 IP를 Null이라는 가상의 인터페이스(interface)로 보내버리는 방법입니다. 블랙홀 필터링(Blackhole Filtering)이라고 부르기도 합니다. 널 라우팅은 UDP 공격을 방어할때에도 많이 쓰이고 있습니다.


2. 널 라우팅 설정


이제 패킷 트레이서를 열어 구성을 해봅시다. 가운데에 2811 라우터를 하나 놓고, 라우터 주변에 2960 스위치를 배치합니다. 그리고 양 스위치 주변에 PC-PT를 배치합니다.



그리고 PC-PT와 2960 스위치를 연결하기 위해 Connections로 들어가 Copper Straight-Through로 FastEthernet에 연결시킵니다. 그리고 2811 라우터와도 연결합니다. 그 뒤에 라우터를 더블클릭하여 CLI(Command Line Interface)로 이동합니다. 


그다음에 라우팅과 스위치 간의 셋팅을 위해 다음과 같이 입력합니다.


Router>en

Router#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

Router(config)#int fa0/0

Router(config-if)#ip add 1.1.1.1 255.255.255.0

Router(config-if)#no shut


Router(config-if)#

%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up


%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up


Router(config-if)#int fa0/1

Router(config-if)#ip add 1.2.1.1 255.255.255.0

Router(config-if)#no shut


%LINK-5-CHANGED: Interface FastEthernet0/1, changed state to up


%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up


그럼 다음과 같이 표시가 됬을겁니다.



그런 다음에, PC0을 더블클릭해서 'Desktop -> IP Configuration'로 들어가 아이피 주소, 서브넷 마스크, 디폴트 게이트 웨이를 적어줍니다.



마찬가지로 남은 PC1, PC2, PC3도 설정을 해줍니다.




그 다음에 스위치1을 더블클릭하여 디폴트 게이트웨이를 잡아줍니다.


Switch>en

Switch#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

Switch(config)#ip default-gateway 1.1.1.1


그리고 스위치2를 클릭하여 동일한 방법으로 잡아줍니다.


Switch>en

Switch#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

Switch(config)#ip default-gateway 1.2.1.1


이제 서로 핑이 되나 확인해줍시다. PC0 또는 PC1을 더블클릭하여 Desktop에 들어간 뒤, Command Prompt로 들어가서 1.2.1.10 또는 1.2.1.11에 핑을 때려봅시다.


Packet Tracer PC Command Line 1.0

PC>ping 1.2.1.11


Pinging 1.2.1.11 with 32 bytes of data:


Reply from 1.2.1.11: bytes=32 time=3ms TTL=128

Reply from 1.2.1.11: bytes=32 time=3ms TTL=128

Reply from 1.2.1.11: bytes=32 time=1ms TTL=128

Reply from 1.2.1.11: bytes=32 time=0ms TTL=128


Ping statistics for 1.2.1.11:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 0ms, Maximum = 3ms, Average = 1ms


정상적으로 핑이 잘 가는것을 확인했습니다. 이제 널 라우팅을 설정해봅시다. 라우터를 더블클릭 합시다.


그뒤에 다음과 같이 입력합니다.


Router>en

Router#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

Router(config)#ip route 1.1.1.10 255.255.255.255 null0

'1.1.1.10으로 가는 패킷을 null0으로 보냄


이제 정상적으로 널라우팅 처리가 되었나 확인하기 위해, PC2 또는 PC3을 더블클릭하여 명령 프롬프트에 들어간 뒤에, 다음과 같이 입력해줍시다.


PC>ping 1.1.1.10


Pinging 1.1.1.10 with 32 bytes of data:


Reply from 1.2.1.1: Destination host unreachable.

Reply from 1.2.1.1: Destination host unreachable.

Reply from 1.2.1.1: Destination host unreachable.

Reply from 1.2.1.1: Destination host unreachable.


Ping statistics for 1.1.1.10:

    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),


정상적으로 처리된것을 확인했습니다. 하지만 라우터가 관리해주는 것이기 때문에 같은 네트워크 사이에는 핑이 정상적으로 가는것을 확인할 수 있습니다.


그런데, null0으로 보내져 패킷이 필터링 될때마다 icmp unreachable라는 에러 메세지를 보냅니다. 만약 필터링하는 패킷이 많아진다면 라우터의 성능이 떨어질수 있기때문에 아래와 같이 ICMP 에러 메세지를 보내지 않게합시다.


Router(config-if)#no ip unreachables