커널 IP 포워딩이란 무엇입니까?


70

많은 블로그 에서이 명령을 사용하여 Linux에서 많은 네트워크 보안 / 스니핑 도구를 사용하면서 IP 전달을 가능하게했습니다.

echo 1 > /proc/sys/net/ipv4/ip_forward

누구든지 평신도 용어로 설명 할 수 있습니까?이 명령은 본질적으로 무엇을합니까? 시스템을 라우터로 바꾸나요?


답변:


77

"IP 전달"은 "라우팅"의 동의어입니다. Linux 커널의 기능이기 때문에 "커널 IP 전달"이라고합니다.

라우터에는 여러 개의 네트워크 인터페이스가 있습니다. 트래픽이 다른 네트워크 인터페이스의 서브넷과 일치하는 한 인터페이스에 들어 오면 라우터는 해당 트래픽을 다른 네트워크 인터페이스로 전달합니다.

따라서 두 개의 NIC가 있는데 하나 (NIC 1)는 주소 192.168.2.1/24에 있고 다른 하나 (NIC 2)는 192.168.3.1/24입니다. 전달이 활성화되고 "대상 주소"가 192.168.3.8 인 NIC 1에 패킷이 들어 오면 라우터는 해당 패킷을 NIC 2에서 다시 보냅니다.

인터넷 게이트웨이 역할을하는 라우터가 NIC와 일치하지 않는 트래픽이 기본 경로의 NIC를 통과하는 기본 경로를 갖는 것이 일반적입니다. 위의 예에서 NIC 2에 인터넷 연결이있는 경우 NIC 2를 기본 경로로 설정하면 NIC 1에서 들어오는 트래픽이 192.168.2.0/24로 향하지 않는 트래픽이 발생합니다. NIC 2 이후에는 라우터를 추가로 라우팅 할 수있는 다른 라우터가있을 것입니다 (인터넷의 경우 다음 홉은 ISP의 라우터가되고 공급자의 업스트림 라우터 등이됩니다).

활성화하면 ip_forwardLinux 시스템에이를 수행하도록 지시합니다. 의미가 있으려면 두 개의 네트워크 인터페이스 (2 개 이상의 유선 NIC 카드, Wifi 카드 또는 칩셋, 56k 모뎀 또는 직렬을 통한 PPP 링크 등)가 필요합니다.

라우팅을 수행 할 때는 보안이 중요하며 여기에서 Linux의 패킷 필터 iptables가 관여합니다. 따라서 iptables필요에 맞는 구성 이 필요 합니다.

iptablesNIC 중 하나가 인터넷에 연결되어 있거나 제어 할 수없는 서브넷 인 경우 방화벽 및 보안을 고려하지 않고 비활성화 및 / 또는 방화벽 을 사용 하여 전달을 사용하면 취약점이 발생할 수 있습니다.


2
NIC 2가 개인 IP 인 경우 NAT를 수행하는 것이 좋습니다. 리눅스도 NAT를 수행 할 수 있으며이를 iptables설정하는 방법이다.
LawrenceC

NIC 2에서 NIC 1로가는 데이터에 NAT가 필요합니까?
GutenYe

2
일반적으로 NAT는 LAN에서 WAN으로 작동하므로 NIC 2에 개인 IP가 있고 NIC 1에 공용 1이 있으면 NAT가 필요합니다. 구체적으로는, 인터넷 연결 인터페이스 (NIC마다 상기 1)은 필요 MASQUERADE에 규칙 iptables들 ' POSTROUTING그렇게하는 체인. revsys.com/writings/quicktips/nat.htmli.stack.imgur.com/rzz83.png를 참조하십시오 .
LawrenceC

간단히 말해서 IP 전달을 활성화하면 머신이 NIC 중 하나에서 다른 NIC로 패킷을 전달할 수 있다는 의미가 옳습니까? 또한 단일 IP / NIC를 사용하는 컴퓨터에서 IP 전달을 활성화 할 필요가 없다고 말하는 것이 사실입니까?
Sree

1
@ultrasawblade IP 포워딩이 활성화되어 있고 NIC 2에서 인터넷에 연결되어 있고 기본 경로 인 경우 NIC 1에서 192.168.2.2로 향하는 패킷을 수신하면 라우터는 어떻게합니까?
bobo

3

사용 가능한 경우 "IP 전달"을 사용하면 Linux 시스템이 들어오는 패킷을 수신하여 전달할 수 있습니다. 일반 호스트 역할을하는 Linux 시스템은 자체 목적 (예 : 사용자 목적)을 위해 IP 트래픽을 생성하고 수신하기 때문에 IP 전달을 활성화 할 필요가 없습니다.

그러나 IP 전달이 유용한 경우가 있습니다. 1. 머신이 라우터 역할을하여 다른 호스트로부터 패킷을 수신하여 목적지로 라우팅하도록합니다. 2. 우리는 나쁜 사람이며 소위 " 중간자 공격 (man-in-the-middle-attack) "으로 다른 기계를 가장하고 싶습니다 . 이 경우, 우리는 피해자를 향한 모든 트래픽을 가로 채서보고 싶어하지만이 트래픽을 그녀에게 전달하여 그녀가 우리의 존재를 "감지"하지 않도록합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.