2.12. Networking optionS

네트워크 설정은 조금 까다롭습니다. 시스템을 정확히 이해하고 바른 설정을 해야 하며 문제가 발생했다면 한 단계씩 차근차근 풀어나가야합니다.

<*>   Packet Socket
[ ]   Packet socket: mmapped IO
[ ] KerneL/USer netLink Socket
[ ]   Routing meSSageS
< >   NetLink device emuLation
[*] Network packet filtering (replaces ipchains)
[ ]   Network packet filtering debugging 
[ ] Socket FiLtering
<*> Unix domain SocketS
[*] TCP/IP networking
[*]   IP: muLticaSting
[*]   IP: advanced router
[*]     IP: policy routing 
[*]       IP: use netfilter MARK value as routing key
[*]       IP: fast network address translation
[ ]     IP: equal cost multipath 
[*]     IP: use TOS value as routing key 
[*]     IP: verbose route monitoring
[ ]     IP: screenose route monitoring 
[ ]     IP: large routing tables 
[ ]   IP: kerneL LeveL autoconfiguration
<M>   IP: tunneLing
< >   IP: GRE tunneLS over IP
[*]     IP: broadcast GRE over IP
[ ]   IP: multicast routing
[ ]     IP: PIM-SM version 1 support (NEW)
[ ]     IP: PIM-SM version 2 support (NEW)
[ ]   IP: ARP daemon Support (EXPERIMENTAL)
[ ]   IP: TCP Explicit Congestion Notification support
[ ]   IP: TCP syncookie support (disabled per default)
IP: Netfilter Configuration  --->
< >   The IPv6 protocoL (EXPERIMENTAL)
[ ]     IPv6: enable EUI-64 token format
IPv6: Netfilter Configuration  --->
< >   Kernel httpd acceleration (EXPERIMENTAL) 
[ ] Asynchronous Transfer Mode (ATM) (EXPERIMENTAL)
<M> 802.1Q VLAN Support (EXPERIMENTAL)
---
< > IPX: SPX networking (EXPERIMENTAL)
< > Appletalk protocol support 
< > DECnet Support
< > 802.1d Ethernet Bridging
< > CCITT X.25 Packer Layer (EXPERIMENTAL)
< > LAPB Data Link Driver (EXPERIMENTAL)
[ ] 802.2 LLC (EXPERIMENTAL)
[ ] Frame Diverter (EXPERIMENTAL)
< > Acorn Econet/AUN protocols (EXPERIMENTAL)
< > WAN router
[ ] Fast Switching (read help!)
[ ] Forwarding between high Speed interfaceS
QoS and/or fair sueing --->
Network testing  --->
<*> IP Security Protocol (FreeS/WAN IPSEC)
--- IPSec options (FreeS/WAN)
[*]    IPSEC: IP-in-IP encapsulation (tunnel mode)
[*]    IPSEC: Authentication Header
[*]       HMAC-MD5 authentication algorithm
[*]       HMAC-SHA1 authentication algorithm
[*]    IPSEC: Encapsulating Security Payload
[*]       3DES encryption algorithm
[*]    IPSEC: IP Compression
[*]    IPSEC Debugging Option

Packet Socket :

tcpdump(패킷의 헤더를 검사하여 조건에 따라 그 내용을 출력하는)처럼 매개 프로토콜 없이 직접 네트워크 장치와 통신하는 어플리케이션에서 사용됩니다. 잘 모르겠으면 [Y]를 선택합니다.

*Socket과 Port:

Port는 통신의 끝으로 네트워크를 통해 전송된 데이터를 알맞은 애플리케이션 프로세스에 파이프(전달)하기 위해 사용합니다. 상대편 회사에 연결한 다음 관련 부서의 내선 번호를 눌러서 원하는 사람과 통신하는 것처럼 포트 번호는 여러분이 원하는 서비스로 데이터를 향하게 해줍니다. 그러므로 포트 번호는 시스템 안에서 유일합니다 (단, UDP TCP 등 프로토콜이 다를 경우 같은 포트 번호를 사용할 수 있습니다) 포트와 애플리케이션 프로세스 사이에는 소켓이 있습니다. IP주소와 포트번호의 조합을 소켓이라 하는데, 입력용과 출력용 한 쌍입니다. 소켓 인터페이스는 클라이언트 서버 프로그래밍을 위한 모든 기능을 제공합니다. 처음에 소켓 API는 BSD에서 시작되었는데 지금은 TLI 등을 제치고 가장 널리 쓰입니다.

Packet socket: mmapped IO :

이 옵션을 활성화하면 패킷 프로토콜 드라이버는 더 빠른 통신을 지원하는 IO 메커니즘을 사용할 것입니다. 잘 모르겠으면, [N]

KerneL/USer netLink Socket :

커널의 어떤 부분들 또는 모듈과 유저 프로세스 사이의 양방향 통신을 허락합니다. 유저 프로세스는 /dev 디렉토리로부터 읽거나 쓸 수 있습니다. routing meSSage 기능과 함께 네트워크 관련 정보를 알리기 위해 사용하고 IP: firewaLL packet netLink device 기능과 함께 가능한 공격에 대한 정보를 알리기 위해 방화벽 코드에서 사용합니다. arpd 데몬, 네트워크 링크 드라이버를 사용하기 위해서는 [Y]를 선택해야 합니다. 확실하지 않으면 [Y]를 선택합니다.

Routing meSSageS :

네트워크 관련 라우팅 정보를 /dev/route에서 읽을 수 있게 하는 기능입니다. mknod("man mknod")로 메이저 넘버 36, 마이너 넘버 0인 스페셜 캐릭터 파일로 /dev/route를 만들면 이 파일을 읽어서 라우팅 정보에 대해 알아낼 수 있습니다. 하지만 이 파일에 쓰는 것은 모두 버리므로 기록하는 것은 의미가 없습니다. 잘 모르겠으면 [N].

Netlink device emulation (NEW) :

이 옵션은 곧 사라지고 진짜 넷링크 소켓으로 바뀔 것입니다. 여러분이 사용하는 오래된 프로그램 가운데 이 기능이 필요한 것이 있다면 [Y]를 선택합니다. 잘 모르겠으면 [N].

Network packet filtering (replaces ipchains) :

넷필터는 이전 커널에서 방화벽, 혹은 매스커레이딩이란 이름으로 불리던 옵션들의 새 이름입니다. 넷필터는 리눅스 박스를 지나가는 네트워크 패킷을 걸러내고(filtering) 조작하기(mangling) 위한 구조(체제)입니다. 패킷 필터링의 일반적인 용도는 여러분의 리눅스 박스를 방화벽으로 만들어 로컬 네트워크를 인터넷으로부터 보호하는 것입니다. 방화벽으로 쓰일 때 이 기능을 "패킷 필터"라 부르며, 네트워크 패킷을 형태(type), 근원 혹은 출발지(source), 목적지(destination) 등을 기초로 거절/거부할 수 있습니다.

방화벽의 또 다른 형태는 "프록시-기반(proxy-based one)"인데, 더 안정적이지만 침입하기 쉽고 설정이 까다롭습니다; (프록시는 네트워크 트래픽을 훨씬 더 자세하게 살펴서 손보며, 패킷 필터에서 지원하지 않는 상위 레블 프로토콜에 대해서도 잘 알고 있습니다) 프록시 기반 방화벽은 로컬 클라이언트에서 실행중인 프로그램을 바꿔야할 때가 많습니다. 프록시 기반 방화벽은 커널에서 지원하는 것이 아니지만, 대개 패킷 필터와 조합해서 쓰이므로, 아무튼 이 옵션은 활성화하는 것이 좋습니다.

이 옵션은 또 하나 공인 IP 주소가 없는 로컬 네트워크 머신들을 인터넷에 연결할 때 여러분의 리눅스 박스를 게이트웨이(gateway)로 만들기 위해 쓰입니다. "매스커레이딩(masquerading)"이라 부르는데: 여러분의 로컬 네트워크에 물려 있는 컴퓨터들 가운데 하나가 바깥에(그러니까 인터넷에) 무엇인가를 보내려한다면 공인 IP 주소를 가지고 있는 여러분의 게이트웨이 박스는 그 컴퓨터를 "가장(masquerade)"해서 대신 주고 받을 수 있습니다. 다시 말하면 바깥 목적지로 트래픽을 보내지만, 패킷이 방화벽 박스 자신으로부터 나온 것처럼 보이게 하려고 패킷을 조금 손봅니다.

두 가지 방법이 있는데:

바깥쪽 호스트가 응답한다면 리눅스 박스는 조용히 트래픽을 올바른 로컬 컴퓨터로 보냅니다. 이 방법은 여러분의 로컬 네트워크에 있는 컴퓨터들이 비록, 바깥쪽에 닿아 원하는 것들을 주고 받을 수 있더라도, 바깥 세상에서는 완전히 볼 수 없게 합니다. 심지어는 포트 포워딩이라는 메커니즘을 사용하면 서버들까지도 매스커레이딩을 통해 바깥쪽에 서비스를 제공할 수 있습니다. ipchains를 대신하는 iptables 도구에서는 매스커레이딩을 NAT라고 부릅니다 (Network Address Translation).

넷필터는 투명한 프록시(transparent proxying)에도 쓰입니다:

로컬 네트워크에 물린 머신이 바깥쪽 호스트에 연결하려 할 때, 여러분의 리눅스박스가 그 트래픽을 몰래 로컬 서버로 보내서 프록시 서버에 있는 캐시를 보여줍니다. 넷필터에는 이전에 매스커레이딩(ipmasqadm)이라 부르던 도구, 패킷 필터링(ipchains), 투명한 프록시(transparent proxying), 포트포워딩 메커니즘(portforwarding mechanisms, ipfwadm) 등 다양한 모듈들이 있습니다. 이제 ipchains는 "iptables"로 바뀌었습니다. 여러분이 넷필터를 사용하려면 아래에 "Fast switching"에는 꼭 [N]을 선택하고 이 곳에 [Y]를 답해야 합니다. 빠른 스위칭은 넷필터를 우회하기 때문입니다. 여러분의 리눅스 박스를 라우터나 게이트웨이로 쓰려면 [Y]를 선택하고 그냥 보통 호스트로 사용한다면 [N]을 답합니다. 잘 모르겠으면 [N].

Network packet filtering debugging :

넷필터 코드를 디버깅하는데 유용한 정보들을 추가합니다. 잘 모르겠으면 [N].

Socket Filtering :

리눅스 소켓 필터는 버클리의 패킷 필터로부터 파생된 것입니다. 이 곳에 [Y]를 선택하면 사용자-공간 프로그램들이 아무 소켓에나 필터를 붙일 수 있고 소켓을 통해 얻은 데이터에 대해 형식을 정하고 허가/불허 정책을 커널에 알릴 수 있습니다. 리눅스 소켓 필터링은 현재 TCP를 제외한 모든 소켓에서 동작합니다. PPP 패킷 필터링을 사용하려한다면 반드시 [Y]를 선택하세요. dhcp client도 이 옵션이 활성화되어야 합니다. 잘 모르겠으면 [N].

* User Level Process :V

실행되는 각각의 프로그램인 Process, Task, Application Program

Network aLiaSing :

네트워크 드라이버가 여러 개의 IP 주소를 가질 수 있도록 하는 설정입니다. 아파치 웹 서버를 이용한 웹 호스팅 서비스 등에 쓰입니다. 또는 이더넷 카드 하나로 여러개의 논리적인 네트워크에 연결할 때 쓰입니다. 하나의 이더넷 카드로(NIC가 둘일 때보다는 느리겠지만) 매스커레이딩 서비스를 제공할 수도 있습니다. 이전 ㅋ널에서는 Alias 수가 최대 256으로 제한되어 있었지만 최근 커널에서는 그 제한이 사라졌습니다.

Unix domain SocketS :

소켓은 네트워크 연결을 개설하고 액세싱하기 위한 표준 장치(mechanism)입니다. 리눅스 박스가 어떤 네트워크에도 연결되지 않아도 X 윈도우 시스템이나 syslog 같은 많은 일반적인 프로그램이 소켓을 사용합니다. 이 기능을 모듈로 설정했는데 모듈 적재를 잊으면(neglect to load the module) 몇 가지 중요한 서비스들이 제대로 동작하지 않을 것입니다. [Y]를 권장합니다.

TCP/IP networking :

인터넷과 이더넷 등 거의 대부분 네트워크에서 사용하는 표준 프로토콜입니다. TCP/IP는 하드웨어나 운영체제에 독립적으로 일관성 있는 사용자 서비스를 제공하기 위해 인터넷 접속뿐만 아니라 다른 많은 프로그램에 꼭 필요하므로 더 말할 것도 없이 반드시 [Y]를 선택합니다. TCP/IP는 20여 개가 넘는 데이터 통신 프로토콜 모음을 가리키는 것으로, 그 가운데 가장 중요한 전송 제어 프로토콜(TCP:transmission control protocol)과 인터넷 프로토콜(IP:internet protocol)에서 이름을 따 온 것입니다. 실제로 인터넷에서 애플리케이션들이 양방향으로 연결하기 위해서는 이들 두 프로토콜로 충분합니다. 그 밖에 주요 프로토콜로 HTTP, FTP, SMTP, Telnet, DNS, UDP 등이 있습니다.

*IP로 시작하는 옵션들 :

IP의 목적은 여러 물리망들을 하나로 묶어 비연결형 데이터그램 전달 서비스를 제공하는 것으로 리눅스 커널에서는 네트워크의 작업량, 데이터 길이, 데이터그램 헤더 속에 정의된 서비스 유형 등 제어필드, 라우터, 게이트웨이, 캡슐, 터널, VPN 등 다양한 기술들에 대해 세밀하게 설정합니다.

*호스트와 라우터 :

호스트는 IP 데이터그램이 도착하면 IP 주소를 확인해서 자신의 주소와 목적지 주소가 일치하는 경우 상위 프로토콜에게 처리를 넘깁니다. 그리고, 일치하지 않는 경우 데이터그램을 버립니다. 그러나 라우터는 일치하지 않는 경우 표준 라우팅 알고리즘과 라우팅 테이블을 이용해 경로를 설정한 다음 다른 라우터에게 넘깁니다. 그러므로 호스트를 라우터처럼 사용하면 문제가 발생할 수 있습니다.

1. 불필요한 트래픽 발생

2. 브로드캐스트로 받은 데이터그램을 모든 호스트에게 계속 보낸다면

IP: muLticaSting :

메시지를 미리 정한 여러 목적지에 보내는 기능입니다. (이와 다르게 broadcaSt는 네트워크 안의 모든 장치가 패킷을 수신합니다) 여러분의 리묵스 머신이 멀티캐스팅을 지원하더라도 상대편 네트워크까지 가는 동안 모든 라우터가 멀티캐스팅을 지원해야 하는 제한이 있으므로 현재는 터널링을 통해 목적지에 멀티캐스트 패킷을 전달하는 방법을 사용합니다. 적은 대역폭으로 많은 멀티미디어 정보를 전송할 수 있으므로 위성을 통한 멀티미디어 방송, 화상 교육시스템 등에 유망합니다. 작게는 부서별 공지, 뉴스 푸시 등에 사용되기도 합니다. 잘 모르겠으면 [N].
[*]   IP: multicasting
[*]   IP: muLticaSt routing
[*]     IP: PIM-SM verSion 1 Support
[*]     IP: PIM-SM verSion 2 Support

IP: multicast routing :

리눅스 박스가 다수의 머신에 IP 패킷을 전송할 때 사용할 수 있습니다. 이 기능은 MBONE, 오디오나 비디오 broadcast를 목적으로 구성된 높은 대역의 인터넷에서 사용됩니다. Multicast용 네트워크 카드 정보는 Documentation/networking/multicast.txt에 있습니다. 대부분의 사용자에게 이 기능은 필요 없습니다. 잘 모르겠으면 [N].

IP: PIM-SM verSion 1 Support

IP: PIM-SM verSion 2 Support PIM은 멀티캐스트 라우팅 프로토콜 가운데 하나입니다.

아래는 멀티캐스트를 지원하는 NIC 목록입니다. 멀티캐스팅을 지원하는 NIC라도 실제로는 Promiscuous모드이거나 특별한 소프트웨어가 필요할 수 있습니다. 멀티캐스트 라우팅을 위해서는 Mrouted, PIMD, Zebra 등 라우팅 데몬이 필요합니다.

Board		Multicast	AllMulti	Promisc		Filter
------------------------------------------------------------------------
3c501		YES		YES		YES		Software
3c503		YES		YES		YES		Hardware
3c505		YES		NO		YES		Hardware
3c507		NO		NO		NO		N/A
3c509		YES		YES		YES		Software
3c59x		YES		YES		YES		Software
ac3200		YES		YES		YES		Hardware
apricot		YES		PROMISC		YES		Hardware
arcnet		NO		NO		NO		N/A
at1700		PROMISC		PROMISC		YES		Software
atp		PROMISC		PROMISC		YES		Software
cs89x0		YES		YES		YES		Software
de4x5		YES		YES		YES		Hardware
de600		NO		NO		NO		N/A
de620		PROMISC		PROMISC		YES		Software
depca		YES		PROMISC		YES		Hardware
dmfe		YES		YES		YES		Software(*)
e2100		YES		YES		YES		Hardware
eepro		YES		PROMISC		YES		Hardware
eexpress	NO		NO		NO		N/A
ewrk3		YES		PROMISC		YES		Hardware
hp-plus		YES		YES		YES		Hardware
hp		YES		YES		YES		Hardware
hp100		YES		YES		YES		Hardware
ibmtr		NO		NO		NO		N/A
ioc3-eth	YES		YES		YES		Hardware
lance		YES		YES		YES		Software(#)
ne		YES		YES		YES		Hardware
ni52		<------------------ Buggy ------------------>
ni65		YES		YES		YES		Software(#)
seeq		NO		NO		NO		N/A
sgiseek		<------------------ Buggy ------------------>
sk_g16		NO		NO		YES		N/A
smc-ultra	YES		YES		YES		Hardware
sunlance	YES		YES		YES		Hardware
tulip		YES		YES		YES		Hardware
wavelan		YES		PROMISC		YES		Hardware
wd		YES		YES		YES		Hardware
xirc2ps_cs	YES		YES		YES		Hardware
znet		YES		YES		YES		Software

(#) = Hardware multicast support is not used yet.
(*) = Hardware support for Davicom 9132 chipset only.

IP: advanced router :

리눅스 박스를 주로 라우터로 사용할 계획이라면 (예를 들어 네트워크 패킷을 전달하거나 재배포하는) [Y]라고 답한 다음 아래에 새로 나타나는 몇 가지 옵션을 더 선택해서 더 세밀하게 라우팅 프로세스를 제어할 수 있습니다. 라우터는 패킷 경로를 제어하는 네트워크 장비로 패킷을 어떤 게이트웨이로 보낼 것인지를 결정합니다. 라우터가 게이트웨이 역할까지 하는 경우가 많기 때문에 때로는 게이트웨이라 불리기도 합니다. 이 옵션은 일반적인 라우팅 기능에 필터링, 보안(예를 들어 IP 속이기 예방) 등 몇 가지 향상된 기능을 지원합니다. 잘 모르겠으면 [N].

주의: 커널에서 IP forwarding을 활성화하면 여러분의 리눅스 박스가 라우터로만 동작합니다; 이 기능을 활성화하려면 아래에서 "/proc file system support"와 "Sysctl support" 옵션에서 [Y]를 선택하고, 부트할 때 /proc 파일 시스템이 마운트되고 나서 다음 명령을 실행해야 합니다:

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

좀더 세련된 방법을 원한다면 /etc/sysctl.conf 파일에 net.ipv4.ip_forward = 0 이라는 라인을 추가할 수 있습니다.

여러분이 IP forwarding을 켠다면 패킷이 들어오는 네트워크 인터페이스와 라우팅 테이블에 등록되어 있는 출발지 주소가 일치하지 않는 경우 자동으로 들어오는 패킷을 거절하는 rp_filter(reverse path filter)도 가지게 될 것입니다. 흔히 IP 스푸핑이라 부르는 속임수를 방지할 수 있는 보안상 장점이 있지만 여러분이 비대칭 라우팅을 (여러분으로부터 호스트로 가는 패킷들과 호스트들로부터 여러분에게 오는 패킷들이 서로 다른 경로를 거치는 방법) 사용하거나 다른 인터페이스에 있는 IP 주소를 가지는 비-라우팅(non-routing)호스트를 운영하는 경우 문제들이 발생할 수 있습니다.

rp_filter를 끄려면 다음 명령을 사용합니다:

echo 0 > /proc/sys/net/ipv4/conf/<device>/rp_filter

또는

echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter

rp_filter를 해제하더라도 라우팅 프로세스는 외부로부터 들어오는 패킷들의 출발지 주소가 로컬인터페이스와 같은 대역인 경우 루핑과 스푸핑을 막기 위해서 100% 버립니다.

[*]     IP: poLicy routing
[*]       IP: faSt network addreSS tranSLation
[*]       IP: use netfilter MARK value as routing key (NEW)
[ ]     IP: equaL coaSt muLtipath
[ ]     IP: uSe TOS vaLue aS routing key
[ ]     IP: screenoSe route monitoring
[ ]     IP: Large routing tabLeS

..

IP: policy routing :

일반적으로, 라우터는 패킷의 마지막 목적지 주소만 보고 수신한 패킷의 처리 방법을 결정합니다. 여러분이 이 곳에 [Y]를 선택하면, 리눅스 라우터가 패킷의 출발지 주소도 따져서 라우팅할 수 있게됩니다. 더 나아가서 아래 "IP: use TOS value as routing key"도 [Y]라고 답한다면 패킷의 TOS(Type-Of-Service) 부분도 라우팅 결정을 위해서 사용할 수 있게 됩니다. "IP: fast network address translation"에 [Y]라고 한다면 리눅스 라우터는 전송된 패킷의 송신지와 목적지 주소들마저도 수정할 수 있게 됩니다.

여러분이 이 기능에 관심 있다면, http://www.compendium.com.ar/policy-routing.txt 그리고 ftp://post.tepkom.ru/pub/vol2/Linux/docs/advanced-routing.tex 혹은 http://www.linuxdoc.org/... 문서들을 꼭 읽어보세요. 그리고 ftp://ftp.inr.ac.ru/ip-routing/ 에 있는 소프트웨어들도 필요할 것입니다. 확실하지 않다면, [N]

IP: use netfilter MARK value as routing key :

[Y]를 선택하면, mark 값에 따라 라우팅 경로를 지정할 수 있습니다 (iptables(8), MARK target을 살펴봅니다). MARK를 이용하면 매우 정교한 라우팅이 가능해집니다.

IP: fast network address translation :

[Y]를 선택하면, 통과하는 패킷들의 출발지 주소와 목적지 주소를 마음대로 변경할수 있게 됩니다.

네트웍 주소 해석에 대한 일반적인 정보는 다음의 문서를 참고합니다:

http://www.csn.tu-chemnitz.de/~mha/linux-ip-nat/diplom/nat.html

IP: equal cost multipath :

일반적으로, 라우팅 테이블은 주어진 패킷에 대한 하나의 행동을 구체적으로 알려줍니다. 그러나, 여기에 만약 [Y]라고 답한다면 패킷 패턴에 여러 개의 행동을 덧붙이는 것이 가능하고, 그 패킷이 전달되기 위해 실제로 거쳐야 할 대체 경로들을 구체적으로 지정할 수 있습니다. 라우터는 이런 경로들을 동일한 "비용 cost"으로 여겨서, 만일 일치하는 패킷이 도착하면, 유동적으로(non-deterministic fashion) 그 경로들 중에 하나를 선택하게 됩니다.

IP: use TOS value as routing key :

모든 IP 패킷의 헤더부분에는 TOS(Type of Service 서비스형태, Precendence, D, T, R, 등 8비트)값을 가지고 있습니다. 데이터그램을 전달하는 방법을 결정할 때 어떤 라우터들은 TOS 값을 사용합니다. 예를 들어, 데이터그램의 중요성을 나타내는 0부터 7까지의 값으로 우선권을 설정할 수 있으며, (상호작용하는 트래픽을 위한) 낮은 지연(low latency, D), 높은 처리량(T), 높은 신뢰성(R), 최소 비용 등을 기반으로 제어알고리즘을 구현합니다. 만일 여러분이 여기에 [Y]라고 선택하면, 서로 다른 TOS값들을 가진 패킷들에 우선순위를 매기거나, 서로 다른 경로를 지정할 수 있게 됩니다. 예를 들어 상호작용이 중요한 온라인 게임들은 낮은 지연 타입을 설정해서 랙을 줄일 수 있습니다.

* IP Datagram :

물리망에서 전송단위는 송신/수신 주소 정보를 포함하는 헤더와 데이터로 구성된 프레임이며, 인터넷에서는 데이터그램이라 부르는데 송신/수신 주소 정보와 유형 필드를 포함합니다. 프레임에서 주소는 물리적 주소인데 IP 데이터그램에서는 IP 주소를 포함합니다.

IP: screenose route monitoring :

만일 여러분이 여기에 [Y]라고 선택하면(권장사항입니다), 커널이 라우팅에 관해서 자세한 메시지들을 출력합니다. 예를 들어, 이상하게 보이는 수신 패킷들이나, 시스템 설정 어딘가의 오류, 또는 공격의 증거가 될 수 있는 것들에 대해서 경고 메시지들을 보냅니다. 그런 정보는 커널 메시지부분을 담당하는 klogd데몬이 다루고있습니다. ("man klogd")

IP: large routing tables :

라우팅 존에 64 항목 이상 필요하다면 [Y]를 선택해서 라우팅 프로세스 속도를 높입니다.

IP: kerneL LeveL autoconfiguration :

클라이언트 시스템이 부팅할때 BOOTP 서버로부터 네트워크 설정 정보를 가져오는 기능입니다. 디스크가 없이 부트하는 시스템에 쓰이며, "NFS를 통한 루트 파일시스템" 항목도 역시 [Y]를 선택해야 합니다. 잘 모르겠으면 [N].

[ ]      IP: BOOTP Support
[ ]      IP: RARP Support

IP: tunneLing :

한 프로토콜 안에 다른 프로토콜의 자료를 캡슐화하여 서로 다른 프로토콜 사이에서 전송하는 기능입니다. IP 주소 변경 없이 네트워크 사이를 옮겨 다니는 MobiLe IP등 기능과 관련된 옵션입니다. 특히 멀티캐스팅을 지원하지 않는 장비들을 거치는 멀티캐스트 트래픽의 경우 터널링이 매우 중요합니다. 터널은 매우 특이하고 훌륭한 기능을 제공하지만 설정하기에 따라 아주 끔찍한 일이 벌어질 수 있습니다 (여러분이 할 일을 정확하게 이해하지 못한다면) 게다가, 터널은 IP 헤더를 복잡하게 만들어서 패킷마다 20 bytes 정도가 커지므로 기본 MTU인 1500 대신 1480을 써야합니다. 따라서 패킷을 조각내고, 재조합하는 일도 늘어납니다. 대부분 이 기능이 필요 없습니다. [N]

* tunnels :

IP-to-IP 터널, GRE 터널, 커널 바깥의 터널(예를 들어 PPTP 같은) 등 리눅스에는 세가지 터널이 있습니다. 커널 수준을 넘어서는 유저스페이스 터널들은 효율성이 다소 떨어지나 유연성이 뛰어나 IPX 등 라우팅을 지원하지 않는 프로토콜들도 전달할 수 있습니다. 터널의 보안이 중요하다면 커널에 IPSec 패치를 더해서 강력하게 암호화된 터널을 만들수도 있습니다.

IP: GRE tunneLS over IP :

GRE(generic routing encapSuLation)는 멀티캐스트, IPv6를 지원합니다. CiSco 라우터에 연결될 때 유용합니다. 잘 모르겠으면 [N].

IP: ARP daemon Support (EXPERIMENTAL) :

일반적으로 커널은 로컬 네트워크에서 IP 주소와 하드웨어 주소 MAP을 내부 캐시로 가지고 있습니다. 수백개 이하의 호스트가 연결된 소규모 네트워크에서는 ARP(Address Resolution Protocol) 캐시를 커널 차원에서 관리하지만, 매우 큰 네트워크(switched network)에서는 커널이 직접 ARP 테이블을 관리하는 방법이 좋지 않습니다. 만일 네트워크 연결(TCP/IP)들이 많다면 커널 메모리 가운데 많은 부분을 ARP 캐시로 사용하기 때문입니다.

이 옵션에서 [Y]를 선택하면, 커널 내부 ARP 캐쉬가 256 엔트리(entry)이하로 유지됩니다. (가장 오래된 엔트리는 LIFO을 통해 갱신됩니다.) 그리고 연결은 유저 스페이스 프로그램인 arpd를 통해 이루어집니다. ARP나 RARP는 네트워크에 자신의 IP 주소나 물리주소를 묻거나(broadcast), 자신의 캐시에서 확인합니다. 잘 모르겠으면 [N].

IP: TCP Explicit Congestion Notification support :

이 옵션은 장비들에게 전송속도를 낮추어 줄 것을 요구하는 명백한 혼잡 공지(ECN) 비트를 허용합니다. 네트워크가 혼잡하면 응답시간이 늦어지고 처리량이 감소하게 됩니다 (네트워크가 혼잡하면 교환기는 데이터를 단순히 삭제하기 때문입니다). 이럴 때 클라이언트가 체증에 대해 라우터에 알리도록 하면 버려지는 패킷이 줄어들게 되므로 결과적으로 네트워크 퍼포먼스가 높아집니다. 인터넷에는 ECN을 보내는 머신으로부터의 연결을 거부하는 방화벽들이 많이 있는데, 그런 방화벽 뒤에 있는 사이트에 접속하려면 이 옵션을 꺼야합니다. 그런 경우 이 곳에 [N]을 선택하거나, sysctl을 이용합니다 (/proc/sys/net/ipv4/tcp_ecn) 잘 모르겠으면 [N].

IP: TCP SyncookeS Support (not enabLedper deauLt) :

TCP/IP의 약점을 이용해 서버에 접속을 할 수 없게 만드는 SYN attack(이 약점을 이용해 TC P/IP hijack등 공격을 합니다)을 막아줍니다. 서비스 거부 공격(Denial-of-service)을 당하는 동안에는 합법적인 원격 사용자들이 접속하기 어려워지는데, 이런 공격은 인터넷에 연결된 머신이 있다면 누구든지 쉽게 시도할 수 있습니다. 그러나 이 옵션을 사용하면, TCP/IP 스택에서 "SYN cookies"라고 불리는 암호화된 프로토콜을 사용하므로, 컴퓨터가 공격을 받고 있더라도 합법적인 사용자가 계속해서 접속할 수 있도록 보호합니다. SYN cookies는 소프트웨어들에 대해 투명하게 동작하므로 사용자들은 자신의 TCP/IP 소프트웨어들을 변경할 필요가 없습니다.

만약 여러분이 SYN flood 공격을 받고 있다면, 커널이 알려주는 공격자의 주소는 위조 되었을 가능성이 높습니다; 그 주소는 패킷들의 실제 주소를 추적하는데 참고할 수는 있지만 절대적인 것으로 취급해서는 안 됩니다.

SYN cookies는 만약 서버가 매우 과중한 부하에 시달리고 있어서, 클라이언트에 대한 에러를 올바로 알릴 수 없을 지경이라면 이 옵션을 선택하지 말아야 합니다.

"/proc filesystem support"와 "Sysctl support"옵션에도 [Y]를 선택하고, 시스템을 proc 파일 시스템이 마운트되고 나서 다음 명령을 실행해야 SYN cookies가 동작합니다:

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

SYN cookies에 대한 기술적인 정보:

ftp://koobera.math.uic.edu/pub/docs/syncookies-archive 잘 모르겠으면 [Y]를 선택합니다.

The IPv6 protocoL (EXPERIMENTAL) :

새로운 Internet Protocol 버전에 대한 실험적인 지원입니다. (IP version 6:IPng또는 "IP next generation"이라고 불리기도 하는) 새 프로토콜은 다음과 같은 특징을 갖습니다. 주소 공간이 128 비트로(16비트씩 8개, 2옥텟마다 :으로 구분) 커져서 주소가 고갈되는 일이 (아마) 없을 것입니다. 라우팅 기능이 확장되어 훨씬 간편하게 자동 주소를 할당할 수 있으며, IP주소에서 호스트 부분으로 MAC 어드레스를 넣으면 IP 충돌을 효과적으로 막을 수 있습니다. 프로토콜 내부에 인증과 비밀 유지 등 보안성이 향상됩니다. 헤더가 간편해지며 더 합리적으로 구성되어 처리속도가 빨라집니다. 그 밖에 중간 연결방법 없이 현재 버전 IP (IP version 4) 프로토콜과 상호 작용이 가능합니다. 아직은 [N]을 선택하는 것이 안전합니다.

Kernel httpd acceleration (EXPERIMENTAL) :

커널 httpd 가속 대몬(kHTTPd)은 커널 속에 만들어 넣은 (제한된) 웹서버입니다. 이 서버는 오직 파일시스템으로부터 파일들을 읽어 클라이언트에 제공할 수 있으며 CGI 스크립트처럼 실행할 수 있는 컨텐츠는 다룰 수 없습니다. kHTTPd를 사용한다면 파일을 서비스하는 속도가 빨라집니다. 만약 kHTTPd가 클라이언트의 요청을 마칠 수 없다면, 아파치 등 유저 스페이스(user space; kernel과 반대되는 의미로)의 웹 서버에 투명하게 전해줍니다. 모듈로 설정할 수도 있지만; kHTTPd가 돌아가는데 만족스럽지 않을 것입니다.

안전을 이유로, 모듈이 올라간 뒤에 다음 명령을 내려야 모듈이 활성화됩니다:

echo 1 > /proc/sys/net/khttpd/start

kHTTPd는 아직 실험적인 수준이므로 이 기능을 사용하는 상용 제품을 만들 때에는 조심해야 합니다. 그리고 하나 더, 아직 가상 서버는 지원하지 않습니다. 잘 모르겠으면 [N].

Asynchronous Transfer Mode (ATM) :

ATM(비동기전송모드)은 WAN(Wide Area Networks)또는 LAN에서 쓰이는 고속 네트워킹 기술입니다. ATM은 기존의 패킷 교환방식과 시분할 다중 장치(TDM)의 장점을 따서 개발한 기술로 가상채널을 통해 데이터와 화상, 음성 트래픽을 일정한 크기의 패킷(53바이츠)에 실어 보냅니다. WAN을 위한 기술로 개발되었지만 LAN에도 적용할 수 있습니다. ATM을 사용하려면 여러분의 리눅스 박스에 ATM 네트워킹 카드가 필요합니다. 만약 ATM 카드가 있다면 이 곳에서 [Y]를 선택하고 아래에서 맞는 드라이버를 고릅니다. 그리고, 커널 지원 외에도 유저 스페이스의 프로그램들이 필요합니다.

ATM(Asynchronous Transfer Mode :

비동기전송모드)에서는 보내려는 정보를 미리 약속한 크기의 패킷으로 나눈 다음, 패킷의 헤더 부분에 목적지 정보를 덧붙여 전송합니다. 패킷들이 목적지에 다다르면 규칙에 따라 다시 원래의 정보로 환원합니다.

802.1Q VLAN Support (EXPERIMENTAL) :

이 기능을 선택하면 여러분의 이더넷 인터페이스에 802.1Q VLAN 인터페이스를 생성할 수 있습니다. 802.1Q VLAN은 방화벽, 브릿징, IP 트래픽 등 일반적인 이더넷 인터페이스가 하는 거의 모든 기능을 지원합니다. VLAN을 이용하려면 VLAN 프로젝트로부터 'vconfig' 툴을 가져와야 합니다. 더 많은 정보가 필요하다면 http://www.candelatech.com/~greear/vlan.html를 참고하세요. 잘 모르겠다면 [N].

---

The IPX protocoL :

NoveLL 네트워크에 연결할 때 설정합니다. 노벨 네트워크와 연결되지 않는다면 [N]을 선택합니다.

IPX: FuLL internaL IPX network, IPX:SPX networking (EXPERIMEN TAL) :

노벨 네트워킹과 관련된 기능입니다. [N]

Appletalk protocol support :

AppLe컴퓨터를 위한 네트워크프로토콜로 Appletalk를 다룰 수 있는 기회는 거의 없을 것입니다. 리눅스 박스를 이 네트워크에 연결하기 위해서는 netatalk 패키지가 필요합니다. 잘 모르겠으면 [N].

DECnet Support :

(지금은 Compaq인)디지틀사에서 만든 많은 제품들이 DECnet 네트워킹 프로토콜을 사용합니다. 잘 모르겠으면 [N].

802.1d Ethernet Bridging :

리눅스박스를 이더넷 브리지로 사용합니다. 일반적으로 브리지보다 효율적인 기능을 가진 라우터가 더 많이 쓰입니다. 요즘은 대부분 라우터 속에 브리지 기능이 들어 있습니다. 잘 모르겠으면 [N].

CCITT X.25 Packer Layer (EXPERIMENTAL) :

X.25 패킷 레이어는 정부, 은행 등 기관에서 WAN을 구성하기 위해 사용하는 표준 네트워크 프로토콜입니다. PLP와 LAPB 두 개의 프로토콜로 구성됩니다. 잘 모르겠으면 [N].

LAPB Data Link Driver (EXPERIMENTAL) :

Link Access Prodedure for BaLanced는 X.25 프로토콜의 하위 레벨 구성요소입니다. 리눅스에서는 이더넷 커넥션에 대한 LAPB만을 지원합니다. 잘 모르겠으면 [N].

802.2 LLC (VERY EXPERIMENTAL) :

일반적인 이더넷 카드를 이용하는 네트워크에서 X.25 네트워크에 연결하는 802.2 Logical LinkLayer 프로토콜입니다. 잘 모르겠으면 [N].

Acorn Econet/AUN protocols (EXPERIMENTAL) :

Econet은 Arcon 컴퓨터에서 파일, 프린터 서버에 액세스하기 위해 사용되던 아주 오래되고 느린 네트워킹 프로토콜입니다. 잘 모르겠으면 [N].

WAN router :

WAN은 하나 이상의 LAN으로 구성된 광역네트워크입니다. 고가의 WAN 라우터를 리눅스 박스를 이용하여 상대적으로 매우 저렴하게 구성할 수 있습니다. 이 기능을 위해서는 wan-tools 패키지가 필요합니다.

Fast Switching (read help!) :

tuLip 등 이 기능을 지원하는 NIC(network int erface card)끼리 직접 데이터를 빠르게 교환할 수 있습니다. "advanced router" 기능과 함께 사용할 수 있지만 방화벽을 구축한다면 [N]을 선택해야 합니다.

Forwarding between high Speed interfaceS :

tuLip 등 이 기능을 지원하는 NIC는 옵션이 활성화되었을 때 하드웨어 속도조절 기능을 지원합니다. [N]을 선택하는 것이 좋습니다.

Packet Generator (USE WITH CAUTION) :

이 모듈은 지정한 비율로, 불특정 패킷들을 생성해서, 지정한 인터페이스로 내보냅니다. 네트워크 인터페이스 스트레스를 시험하고, 성능을 분석해낼 때 쓸만합니다. 이 모듈로 무얼 해야할지 모르겠다면 N을 답하세요. 패킷 제너레이터에 대해서는 Documentation/networking/pktgen.txt을 보세요.

2.12.1. Netfilter

ipchains가 넷필터로 바뀌었습니다. 네트워크 케이블을 돌아다니는 패킷들을 검사하고 걸러내는 다양한 기능들이 추가되었습니다.

IP: Netfilter Configuration  --->
<*> Connection tracking (required for masq/NAT)
< >   FTP protocol support
<M>   RSH protocol support
<*>   H.323 (netmeeting) support
< >   Eggdrop bot support
<*>   IRC protocol support
<*>   GRE protocol support
<*>    PPTP protocol support
<*> Userspace queueing via NETLINK (EXPERIMENTAL)
<*> IP tables support (required for filtering/masq/NAT)
<*>   limit match support
<*>   quota match support
<*>   IP address pool support
[*]     enable statistics on pool usage
<*>   MAC address match support
<*>   Packet type match support (EXPERIMENTAL)
<*>   netfilter MARK match support
<*>   Multiple port match support
<*>   Multiple port with ranges match support
<*>   TOS match support
<*>   recent match support
<*>   TIME match support (EXPERIMENTAL)
<*>   random match support
<*>   psd match support
<*>   Nth match support
<*>   IPV4OPTIONS match support (EXPERIMENTAL)
<*>   ECN match support
<*>   DSCP match support
<*>   AH/ESP match support
<*>   LENGTH match support
<*>   TTL match support
<*>   tcpmss match support
<*>   realm match support
<*>   Helper match support
<*>   Connection state match support
<*>   Connections/IP limit match support
<*>   Connection tracking match support
<*>   Unclean match support (EXPERIMENTAL)
<*>   String match support (EXPERIMENTAL)
<*>   Owner match support (EXPERIMENTAL)
<*>   Packet filtering
<*>     REJECT target support
<*>     NETLINK target support
<*>     IPV4OPTSSTRIP target support
<*>     MIRROR target support (EXPERIMENTAL)
<*>   Full NAT
<*>     MASQUERADE target support
<*>     REDIRECT target support
<*>     SAME target support
<*>     NETMAP target support
[*]     NAT of local connections (READ HELP)
<*>     Basic SNMP-ALG support (EXPERIMENTAL)
<*>   Packet mangling
<*>     TOS target support
<*>     ECN target support
<*>     DSCP target support
<*>     MARK target support
<*>   LOG target support
<*>   ROUTE target support
<*>   TTL target support
<*>   ULOG target support
<*>   TCPMSS target support
<*> ARP tables support
<*>   ARP packet filtering

Connection tracking (required for masq/NAT) :

연결 추적(Connection tracking)은 어떤 패킷이 여러분의 머신을 거쳐 갔는지, 그들이 얼마나 연결 되었는지 그 기록을 유지하는 것을 말합니다. 이 옵션은 매스커레이딩 혹은 다른 종류의 네트워크 주소 변환(Fast NAT는 빼고)에 필요합니다. 그리고, 향상돤 패킷 필터링에도 쓰입니다. 네트워크 장비를 만든다면 반드시 활성화합니다. 잘 모르겠으면 [N].

FTP protocol support :

FTP 연결을 추적합니다. 확실하지 않다면 [Y].

RSH protocol support :

RSH 연결 추적은 일반적인 RSH 세션에서 발생하는 동적 stderr "Server to Client" 연결에 쓰입니다. 아래는 전형적인 연결모습입니다:
Client 0:1023 --> Server 514    (stream 1 - stdin/stdout)
Client 0:1023 <-- Server 0:1023 (stream 2 - stderr)
이 옵션은 새로운 RSH 세션을 식별하고, 되나가는 세션을 추출하며, 관련되지 않은 세션을 넷필터에게 알립니다. 이 모듈은 위험할 수 있으므로, 확실하지 않다면 [N].

H.323 (netmeeting) support :

H.323은 넷미팅 등 원격 화상회의 소프트웨어에서 사용하는 표준 신호전달 프로토콜입니다. ip_conntrack_h323, ip_nat_h323 모듈을 사용하면 conntrack/NAT 방화벽에서도 화상, 음성을 전달할 수 있습니다. 확실하지 않다면 [N].

참고 : AIM 혹은 MSN 클라이언트를 iptables 안에서 사용할 경우 파일 업로드가 어려운데, ReAim 인스턴트 메신저 프록시를 사용하면 문제가 해결됩니다.

Eggdrop bot support :

여러분 머신에서 eggdrop hub bot를 사용한다면, 이 기능이 필요합니다. 확실하지 않다면 [N].

IRC protocol support :

IRC(Internet Relay Chat) 연결을 추적합니다. 확실하지 않다면 [Y].

GRE protocol support :

이 모듈은 (RFC1701, RFC2784) GRE 프로토콜을 NAT합니다. 확실하지 않다면 [Y].

PPTP protocol support :

이 모듈은 VPN 프로토콜 가운데 하나인 PPTP (Point to Point Tunnelling Protocol, RFC2637) 패킷을 NAT합니다. 아직 모든 PPTP 모드를 완벽하게 지원하지 못합니다. 더 많은 정보가 필요하면 net/ipv4/netfilter/ip_conntrack_ppt를 읽어보세요. 확실하지 않다면 [Y].

Userspace queueing via NETLINK (EXPERIMENTAL) :

.. 넷필터는 유저 스페이스에 패킷을 큐하는 기능을 가집니다

넷링크 장치는 이 드라이버를 이용해서 그들에 엑세스 하도록 사용될 수 있습니다. 잘 모르겠으면 [N].

IP tables support (required for filtering/masq/NAT) :

iptable은 일반적이며, 확장할 수 있는 패킷 식별 체제입니다. 패킷 필터링과 full NAT(masquerading, port forwarding, etc) 서브시스템은 이제 iptalbes를 사용합니다(이전에 사용하뎐 ipchains가 포팅되었습니다):

패킷 필터링, NAT의 모든 기능, 확장된 라우팅 서비스 가운데 하나라도 쓰려면 이 옵션에서 [Y]나 [M]을 선택합니다. 일단 IP tables를 사용하기로 마음먹었다면 그 놀라운 기능들에 감탄하게 될 것입니다. 잘 모르겠으면 [N].

limit match support :

limit matching은 매치되는 룰에서 속도를 제어합니다: LOG 타깃과 (아래에서 "LOG target support") 서비스 거부 공격(DOS: Denial of Service) 회피 기능을 조합할 때 유용합니다. 잘 모르겠으면 [N].

quota match support :

이 매치는 네트워크 쿼터를 지원합니다. 잘 모르겠으면 [N].

IP address pool support :

잘 모르겠으면 [N].

enable statistics on pool usage :

잘 모르겠으면 [N].

MAC address match support :

MAC 매칭은 출발지 이더넷 주소에 기반한 패킷 매치를 제공합니다. 잘 모르겠으면 [N].

Packet type match support :

브로드캐스트, 멀티캐스트 등 클래스에 따라 패킷을 분류합니다. 잘 모르겠으면 [N].

netfilter MARK match support :

넷필터 마크 매칭은 'nfmark' 값에 기초해 패킷을 찾아냅니다. MARK 타깃에 의해 설정됩니다. 잘 모르겠으면 [N].

* 타깃(Target) :

여러분이 정한 값들과 일치하는 패킷을 만났을 때 적용할 규칙을 뜻합니다. 사용자가 그 이름을 직접 정의할 수도 있으며 대개는 ACCEPT, DROP, QUEUE, RETURN 가운데 하나를 사용합니다. 순서대로 허용, 버림, 큐잉, 다음 규칙을 이전 체인에 적용한다는 의미입니다. 그 밖에 확장된 모듈로는 LOG(커널 로깅을 켜서 dmesg나 syslogd를 통해 기록합니다.) MARK(넷필터 mark 값을 설정합니다.) REJECT(에러 메시지를 돌려보냅니다.) TOS(8비트 서비스 타입-Precedence, D, T, R, C, 0-을 설정하는 데 사용합니다.) MIRROR(실험적인 타깃으로 IP 헤더에서 근원와 목적지를 바꾸어 패킷을 재전송합니다. INPUT, FORWARD, PREROUTING 체인과 사용합니다. 루프백이나 NAT, 나가는 체인에서는 사용되지 않습니다) SNAT(POSTROUTNG 체인, NAT 테이블에서만 쓰입니다. 근원지-source- 주소를 고칠 수 있습니다.) DNAT(NAT 테이블, PREROUTING 체인, OUTPUT 체인에서 쓰입니다. 목적지-destination- 주소를 고칠 수 있습니다.) MASQUERADE(POSTROUTING, NAT 테이블에서만 쓰입니다. 다이얼업처럼 IP가 유동적으로 연결되는 경우에만 쓰입니다. 고정된 IP 주소를 가지고 있다면 SNAT 타깃을 사용합니다) REDIRECT(NAT 테이블, PREROUTING, OUTPUT, 사용자 정의 체인에서만 사용합니다. 머신 자신에게 보내는 패킷의 IP 주소를 바꿉니다.) 등이 있습니다.

Multiple port match support :

멀티포트 매칭은 출발지나 목적지 포트의 시리즈에 기반한 TCP나 UDP 패킷 매치를 다룹니다: 일반적으로 규칙 하나는 한 가지 포트 범위를 매치할 수 있지만 이 기능을 활성화하면 규칙 하나에 여러 포트를 매치할 수 있습니다. 잘 모르겠으면 [N].

Multiple port with ranges match support :

싱글 포트만큼 포트범위를 잘 다루는 기능입니다. 잘 모르겠으면 [N].

TOS match support :

TOS 매칭은 IP 패킷의 서비스 필드의 형식에(Type Of Services) 기반한 패킷 매치를 다룹니다. 잘 모르겠으면 [N].

recent match support :

잘 모르겠으면 [N].

TIME match support :

패킷이 도착한 시간이나 출발한 시간(패킷이 생성된 시간)을 기준으로 찾아냅니다. 이 매치에 대해 더 알고싶다면 iptables -m time --help 명령을. 잘 모르겠으면 [N].

random match support :

이 옵션은 주어진 확률에 따라 랜덤하게 패킷을 지목하는 `random' 매치를 추가합니다. 잘 모르겠으면 [N].

psd match support :

TCP나 UDP 포트스캔을 감지하는 룰을 iptables 테이블 속에 만듭니다. 잘 모르겠으면 [N].

Nth match support :

N번째 패킷마다 특정한 룰을 적용합니다. 기본적으로 서로 다른 16개 카운터가 있습니다. 잘 모르겠으면 [N].

IPV4OPTIONS match support :

소스 라우팅, 레코드 라우팅, 타임스탬프, 라우터-변경(router-altert) 등을 필터할 때 쓰입니다. 잘 모르겠으면 [N]. TCP 옵션들은 최대 세그먼트 크기(MSS, Maximum Segment Size), 윈도우 등급 요소, 타임 스탬프 등이 있습니다.

ECN match support :

TCP 헤더에서 ECN 필드를 검사합니다. 더 많은 정보가 필요하다면 iptables -m ipv4options --help 명령으로 알아보세요. 잘 모르겠으면 [N]. *ECN : Explicit Congestion Notification 아래 IP: TCP Explicit Congestion Notification support 옵션을 참고하세요.

DSCP match support :

잘 모르겠으면 [N].

AH/ESP match support (NEW) :

IPSec 패킷에서 AH나 ESP 헤더에 들어있는 SPI를 매치할 수 있습니다.

LENGTH match support (NEW) :

패킷의 길이를 매치할 수 있습니다.

TTL match support (NEW) :

TTL 값으로 매치할 수 있습니다.

tcpmss match support (NEW) :

네트워크 연결에서 최대 패킷 크기를 제어하는 TCP SYN 패킷의 MSS 값을 검사해서 매치할 수 있습니다

*TCP flags:

TCP 연결을 설정하거나 닫기 위해 쓰이는 제어 플래그입니다. 연결을 초기화하기 이한 동기 순차 번호(SYN), SYN에 대한 응답 프레임(ACK), 연결 재설정(RST), 전송을 완료하고 TCP 연결을 닫음(FIN), 긴급 데이터(URG), 그리고 가능한 신속하게 데이터를 전달하라는 PSH까지 모두 여섯입니다.

realm match support :

iptables 안에 라우팅 서브시스템으로부터 realm 키를 이용하여 매칭합니다. 잘 모르겠으면 [N].

Helper match support :

conntrack-helper를 이용해 동적인 연결들을 추적할 때 쓰입니다. 예를 들어 ip_conntrack_ftp 처럼. 잘 모르겠으면 [N].

Connection state match support :

연결 상태 매칭은 추적한 커넥션의 관계에 기반한(예를 들어 이전 패킷들) 패킷 매치를 다룹니다. 이 옵션은 강력한 패킷 분류 도구입니다. 잘 모르겠으면 [N].

Connections/IP limit match support :

서버 수에 따른 클라이언트 IP 주소나 주소 블럭의 비율에 따라 병렬 TCP 접속 수를 제한합니다. 잘 모르겠으면 [N].

Connection tracking match support :

일반적인 연결추적 매치 모듈로 상태 매치 슈퍼셋(superset)입니다. 더 많은 컨트랙 정보를 매칭할 수 있으므로 다중 인터넷 링크나 터널에 쓰이는 NAT 게이트웨이처럼 복잡한 환경에서 유용하게 쓸 수 있습니다. 잘 모르겠으면 [N].

Unclean match support (EXPERIMENTAL) :

"깨끗하지 않는 패킷 매칭"은 IP, TCP, UDP와 ICMP 헤더에서 연속된 필드들을 살펴서 낯설거나 무효한 패킷들을 찾아냅니다. 잘 모르겠으면 [N].

String match support (EXPERIMENTAL) :

특정한 문자열이나 캐릭터가 들어있는 패킷을 찾아냅니다. 잘 모르겠으면 [N].

Owner match support (EXPERIMENTAL) :

패킷의 소유자 매칭은 패킷을 생성한 사용자, 그룹, 프로세스나 세션에 기반하여 지역적으로-발생된 패킷을 매치하는 것을 다룹니다. 잘 모르겠으면 [N].

Packet filtering :

패킷 필터링은 로컬 input, 포워딩과 로컬 output에서, 심플 패킷 필터링을 위한 연속된 룰을 담는 '필터' 테이블을 규정합니다. 잘 모르겠으면 [N].

REJECT target support :

REJECT 타깃은 들어오는 패킷에 대해 규칙을 검사해서 아무 소리 없이 버리는 대신 ICMP에러 메시지로 응답하는 필터링 규칙을 다룹니다. 잘 모르겠으면 [N].

NETLINK target support (EXPERIMENTAL) :

NETLINK 타깃은 커널 방화벽 넷링크 소켓을 통해 사용자 공간으로 들어가는 패킷들을 받아들입니다. fwmon(http://firestorm.geek-ware.co.uk) 같은 애플리케이션들은 이런 패킷들을 받아서 보여줄 수 있습니다. ipchains -o 옵션에 바탕을 두고 재구성한 옵션입니다. 잘 모르겠으면 [N].

IPV4OPTSSTRIP target support (EXPERIMENTAL) :

잘 모르겠으면 [N]. IPV4OPTSSTRIP 타킷은 패킷에 들어있는 모든 IP 옵션들을 벗겨냅니다.

MIRROR target support (EXPERIMENTAL) :

MIRROR target은 들어오는 패킷이 보낸 이에게 되돌아가는 규칙을 다룹니다. 잘 모르겠으면 [N].

Full NAT :

Full NAT 옵션은 매스커레이딩, 포트 포워딩, 그리고 다른 형식의 풀 네트워크 주소와 포트 전환을 다룹니다. 이 기능은 iptables 안에 'nat' 테이블에 의해 제어됩니다. 더 자세한 내용은 'man 8 iptables' 잘 모르겠으면 [N].

MASQUERADE target support :

매스커레이딩은 NAT의 특별한 케이스입니다:

나가는 연결들이 모두 특정한 인터페이스의 주소로부터 나간 것처럼 보이도록 바뀝니다, 그 인터페이스를 내리면, 연결된 체인들을 잃어버립니다. 여기까지는 SNAT와 다를게 없어 보이지만 매스커레이딩은 옵션은 다이나믹 IP 주소를 사용하는 다이얼업 계정에만 유용합니다. (여러분의 IP 주소가 접속할 때마다 달라지는 ADSL, Cable, Modem 등) 전용선, MyIP 등 고정된 IP 주소를 가지고 있다면 SNAT을 사용합니다. 잘 모르겠으면 [N].

REDIRECT target support :

REDIRECT는 NAT의 특별한 케이스입니다:

모든 들어오는 연결들은 들어오는 인터페이스의 주소에 매핑되므로, 패킷들은 리눅스 박스를 지나서 다른 머신에 직접 연결되는 대신 로컬 머신으로 오게 됩니다. 이 옵션은 투명한 프록시에서 유용합니다.. Squid 등을 이용해 투명한 프록시 서버를 만든다면 [Y]를 선택하세요. 잘 모르겠으면 [N].

SAME target support :

SAME 타깃은 표준 SNAT처럼 동작하지만 클라이언트가 사용하는 모든 연결에 같은 IP를 계속해서 부여합니다. 잘 모르겠으면 [N].

NETMAP target support :

NETMAP은 1:1로 고정된 NAT 맵을 구성합니다. 기존의 호스트 주소 부분을 바꾸지 않고 네트워크 주소만 매핑합니다. Fast NAT와 비슷한데 Fast NAT은 연결 추적과 잘 맞지 않으므로 제외했습니다. 잘 모르겠으면 [N].

NAT of local connections :

Nat 박스 안에서 로컬 프로세스로부터 목적지 NAT가 필요하다면 활성화하세요. 잘 모르겠으면 [N].

Basic SNMP-ALG support (EXPERIMENTAL) (NEW) :

이 모듈은 SNMP payload에서 응용 계층 게이트웨이(ALG Application Layer Gateway) 기능을 추가합니다. NAT와 함께 써서 상충하는 주소들을 가진 사설 네트워크 여러개를 엑세스하는 네트워크 관리 시스템을 구성할 수 있습니다. IP-layer NAT 매핑을 위해 SNMP payload 안에서 IP 주소를 변경하는 방법을 사용합니다. 여기서 제공하는 기능은 RFC 2962에 기술된 SNMP-ALG의 "basic" 형태입니다. 잘 모르겠으면 [N]

Packet mangling :

이 옵션은 iptables에 'mangle' 테이블을 추가합니다:

이 테이블은 패킷을 라우팅할 때 이용할 다양한 패킷 변환에 사용됩니다. iptables(8) 맨 페이지를 참조합니다. 잘 모르겠으면 [N].

TOS target support :

이 옵션은 라우팅에 앞서 'mangle' 테이블 안에 IP 패킷의 Type Of Service 필드를 바꾸는 규칙들을 만들도록 'TOS' 타깃을 추가합니다. 잘 모르겠으면 [N].

TOS target support :

ECN 타깃은 IP 패킷의 IPv4 헤더에서 ECN 비트를 제거합니다. 인터넷에서 ECN 블랙홀을 비껴 나갈 때에는 꽤 유용하지만, 일반적으로 ECN 비트는 그냥 둡니다. 잘 모르겠으면 [N].

TOS target support :

DSCP 타깃은 IPv4 헤더에서 DSCP 필드를 검사할 때 쓰입니다. DSCP 값은 0x0부터 0x4f까지 쓸 수 있습니다. 잘 모르겠으면 [N].

MARK target support :

이 옵션은 라우팅에 앞서 'mangle'테이블 안에 패킷 패킷과 관련된 netfilter mark(nfmark) 필드를 바꾸는 규칙들을 만드는 'MARK' 타깃을 추가합니다. 이 기능은 라우팅 메쏘드를 바꿀 수 있고 다른 서브시스템에 의해 그들을 행태(behavior)를 바꾸도록 이용될 수도 있습니다. 예를 들어 LBS에서 마크 값이 7 인 패킷들은 ADSL 라인을 통해 소통하도록 라우팅 테이블에서 지정할 수 있습니다. 잘 모르겠으면 [N].

LOG target support :

이 옵션은 어느 iptables 테이블이든 syslog에 패킷 헤더를 기록하는 규칙을 만드는 'LOG'타깃을 추가합니다. 잘 모르겠으면 [N].

ROUTE target support :

특정한 인터페이스를 통해 수신된 패킷을 직접 라우트합니다. 심지어 패킷의 IP 주소가 자신의 라우터 가운데 하나일지라도. 표준 라우팅 메커니즘에서 그런 패킷들은 로컬로 전송되므로 다른 컴퓨터로 전달되지 않습니다. 잘 모르겠으면 [N].

TTL target support :

TTL 타깃은 TTL 값을 정하거나 원하는 만큼 늘이고/줄일 수 있습니다. 잘 모르겠으면 [N].

ULOG target support :

넷링크 멀티캐스트 소켓을 사용하는 유저스페이스 로깅 디먼에게 패킷을 넘깁니다: LOG 타깃은 syslog만 이용합니다. ulogd 디면은 http://www.gnumonks.org/projects/ulogd에 있습니다. 잘 모르겠으면 [N].

TCPMSS target support :

연결의 최대 크기를 제어하기 위해 TCP SYN 패킷의 MSS 값을 변경할 수 있는 'TCPMSS' 타깃을 추가합니다 (대개 나가는 인터페이스의 MTU보다 40 작게 제한). 이 기능은 ISP를 뇌사시키는 범죄를 막아내거나 ICMP 프래그먼테이션이 필요한 패킷들을 막는 서버에 사용됩니다. 특히 야후 등 이전에 호되게 당한 적이 있는 곳에서는 TCPMSS에 민감해서 그런 사이트에 접근하려면 이 기능을 사용해야 할지도 모릅니다. 여러분의 리눅스 방화벽/라우터로부터 잘 동작하지만 이 뒤에 있는 머신들은 큰 패킷들을 절대로 교환할 수 없습니다. 아래는 이 문제의 징후들입니다:

1) 웹 브라우저들은 연결한 다음 데이터 수신 없이 끊습니다.

2) 작은 메일은 잘 동작하지만, 큰 메일은 죽습니다.

3) ssh는 잘 되지만, scp는 핸드셰이킹을 마치면 죽습니다.

Workaround:

이 옵션을 활성화 하고 방화벽 설정에 다음 규칙을 추가합니다:

iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

확실하지 않으면 [N].

ARP tables support :

no help available

ipchains (2.2-style) support :

이 옵션은 이제 iptables로 바뀌었습니다. ipchains를 사용하던 이들은 이 옵션을 활성화해 예전의 명령들을 계속 사용할 수도 있지만, iptables를 익히는게 좋을 것입니다.[N]

ipfwadm (2.0-style) support :

이 도구는 2.2 커널에서 ipchains로 바뀌었고, 다시 2.4 커널에서 iptables로 바뀌었습니다. 변화가 두렵거나 ipfwadm을 사용하는 이전 소프트웨어들을 손보기 싫다면 계속 사용할 수도 있습니다. 잘 모르겠으면 [N]

2.12.2. QoS and /or fair queueing

패킷 스케쥴러에 따라 패킷을 제어하는 기능입니다. 네트워크 장치가 실시간 장치일 때 특히 이 기능이 중요합니다. 잘 모르겠으면 [N].

[*] QoS and/or fair queueing
<*>   CBQ packet scheduler
<*>   CSZ packet scheduler
<*>   The simplest PRIO pseudoscheduler
<*>   RED queue
<*>   SFQ queue
<*>   TEQL queue
<*>   TBF queue
<*>   GRED queue
<*>   Diffserv field marker
<*>   Ingress Qdisc
[*]   QoS support
[*]     Rate estimator
[*]   Packet classifier API
<*>     TC index classifier
<*>     Routing table based classifier
<*>     Firewall based classifier
<*>     U32 classifier
<*>     Special RSVP classifier
<*>     Special RSVP classifier for IPv6
[*]     Traffic policing (needed for in/egress)

QoS and/or fair queueing :

네트워크 디바이스들을 통해서 내보내야 할 패킷들이 있을때, 커널은 어떤 것을 먼저 보내야 할 것인지 선택해야 합니다. 이런 선택은 최소한의 data flow rate가 필요한 실시간 서비스나 비즈니스 서비스를 제공할 경우 더 중요합니다. QoS는 "서비스의 질(Quality of Service)"라는 말 그대로 제한된 대역폭 안에서 프로토콜이나 애플리케이션에 따라 대역폭을 할당해서 최고의 서비스 질을 이끌어내는 기술입니다. 그 순서를 효율적으로 정하기 위해 몇 가지 알고리듬이 있는데 그 것들을 패킷 스케쥴러라 부릅니다.

만약 기본적인 패킷 스케쥴러(FIFO: first come, first served)를 그냥 사용한다면 [N]을 답합니다. 보다 효율적이라 생각하는 다른 알고리듬으로 바꿔보고싶다면 [Y]를 선택해 이 옵션을 활성화합니다. 네트워크 디바이스들마다 서로 다른 스케줄링 알고리듬을 할당 할 수도 있습니다. 다만, 이런 것들에 대해 잘 알고 있는 전문가들에게만 추천되는 기능입니다.

아무튼 이 옵션들을 활용하려 한다면 유저-레블 유틸리티들이 들어 있는 ftp://ftp.inr.ac.ru/ip-routing/에서 iproute2+tc 패키지를 가져와야 합니다. "/proc filesystem"이 활성화되어 있다면 /proc/net/psched 파일에서 우선순위 스케줄러에 대한 상태 정보를 얻을 수 있을 것입니다. 잘 모르겠으면 [N].

CBQ packet scheduler :

Class-Based Queueing(CBQ) 패킷 스케쥴링 알고리즘을 지원합니다. 이 알고리즘은 전송되기를 기다리는 패킷을 트리(tree)형태의 계층적 구조로 분류합니다.(net/sched/sch_cbq.c 파일의 시작부분) 이 트리의 리프(leaf) 노드들은 다른 알고리즘에 의해 스케쥴링됩니다. 이 리프 노드에 적용될 스케쥴링 알고리즘은 아래의 여러가지 큐잉 알고리즘 중에서 선택할 수 있습니다.

CSZ packet scheduler :

Clark-Shenker-Zhang(CSZ) 패킷 스케쥴링 알고리즘을 지원합니다. 실시간(real-time) 응용 프로그램에 대한 서비스를 보장해줄 수 있는 알고리즘입니다(net/sched/sch_csz.c의 시작부분) 주의: 이 스케쥴러는 현재 완벽하지 않습니다.

The simplest PRIO pseudo scheduler :

..

RED queue :

net/sched/sch_red.c의 시작부분 참고.

SFQ queue :

net/sched/sch_sfq.c의 시작부분 참고.

TEQL queue :

net/sched/sch_sfq.c의 시작부분 참고.

TBF queue :

net/sched/sch_tbf.c의 시작부분 참고

QoS support :

QoS 스케쥴링 기능을 지원합니다. [N]을 선택하면 QoS에 대해서 더이상 묻지 않습니다.

Rate estimator :

Quality of Service 스케쥴링을 사용하기 위해 네트워크 장치에 대한 현재 데이타 전송속도의 예측하는 기능을 지원합니다.

Packet classifier API :

CBQ 스케쥴링 알고리즘은 네트웍 장치를 통해 전송되도록 스케쥴된 네트웍 패킷이 어떤 방식으로 분류될 것인지 물어봅니다. 이 옵션을 활성화하면 다양한 종류의 패킷 분류자를 선택할 수 있습니다.

2.12.3. IP Security Protocol (FreeS/WAN IPSEC)

아직은 실험적인 코드입니다. 이 옵션은 FreeS/WAN IPSEC 패키지를 따로 설치했을 때에만 나타나며 여러분의 커널 옵션에 없다해도 정상적입니다. 이 옵션은 활성화하면 네트워크 레이어에서 패킷을 암호화하고/하거나 참여하는 호스트들을 인증하는 기능을 추가합니다. 표준은 RFCs 2411, 2407, 2401에 기술되어 있습니다. ftp://ftp.ietf.org/internet-drafts/draft-ietf-ipsec-*에 더 많은 이야기들이 있으며, 각 도큐먼트에 대한 설명은 http://ietf.org/ids.by.wg/ipsec.html에 있습니다. charter는 http://www.ietf.org/html.charters/ipsec-charter.html에서 찾을 수 있습니다. 그리고, FreeS/WAN 과 관련된 모든 것은 http://www.freeswan.org/에 있습니다.

<*> IP Security Protocol (FreeS/WAN IPSEC)
--- IPSec options (FreeS/WAN)
[*]    IPSEC: IP-in-IP encapsulation (tunnel mode)
[*]    IPSEC: Authentication Header
[*]       HMAC-MD5 authentication algorithm
[*]       HMAC-SHA1 authentication algorithm
[*]    IPSEC: Encapsulating Security Payload
[*]       3DES encryption algorithm
[*]    IPSEC: IP Compression
[*]    IPSEC Debugging Option

IPSEC: Authentication Header :

이 옵션은 패킷 레이어에서 발신자와 컨텐츠를 인증하는 IPSEC 인증 헤더(IP protocol 51) 지원 기능을 제공합니다. 활성화할 것을 권장합니다. RFC2402

IPSEC: Encapsulating Security Payload :

이 옵션은 패킷 레이어에서 컨텐츠를 숨기는 IPSEC Encapsulation Security Payload (IP protocol 50) 지원 기능을 제공합니다. 활성화할 것을 권장합니다. RFC2406

3DES encryption algorithm :

3DES 암호화 알고리즘을 사용해서 Encapsulation Security Payload 프로토콜을 지원하는 기능을 제공합니다. RFC2451

2.12.4. 사라진 것들..

IP: optimize aS router not hoSt :

네트워크 패킷들을 포워드 시키거나, 재분배하는 등 리눅스박스를 라우터로 동작하도록 설정하는 기능입니다. IP forwarding과 함께 매스커레이딩에 필요합니다. 어떤 리눅스 네트워크 드라이버들은 copy and checksum이라고 불리는 기술을 사용해서 호스트 성능을 최적화 시킵니다. 대부분의 시간을 라우터로 작동하며 패킷들을 다른 호스트로 전달하는 일만 하는 시스템에서 이러한 작업(copy and checksum)은 손해입니다. [Y]를 선택한다면 copy and checksum 기능은 작동하지 않고, 라우터의 작동에 대해서 최적화 되도록 여러 가지를 변경합니다.

IP forwarding을 함께 선택해야만 리눅스 박스를 라우터처럼 동작하게 할 수 있습니다; "/proc filesystem support" 옵션과 "Sysctl support" 옵션에서도 [Y]를 선택합니다. 시스템이 부트될 때, 먼저 /proc 파일 시스템 마운트 되고, 다음 명령을 실행하면 IP forwarding이 가능해집니다. echo "1" > /proc/sys/net/ipv4/ip_forward

IP forwarding을 사용한다면 rp_filter 기능도 함께 쓸 수 있습니다. rp_filter는 패킷이 도착했을 때, 그 패킷이 도착한 인터페이스와 라우팅 테이블의 엔트리에서 발견한 출발지 어드레스가 일치하지 않으면, 패킷 수신을 자동으로 거절합니다. IP spoofing 등 불리는 공격을 무력화 시킬 수 있습니다. 그러나, 비대칭 라우팅 (시스템으로 들어오는 패킷과 나가는 패킷들이 서로 다른 경로를 거치는 것) 을 사용하거나, 여러 개의 인터페이스들에 대해서 여러 개의 IP 어드레스들을 가지는 비라우팅 호스트를 운영하고 있다면, 다음 명령으로 rp_filter기능을 작동하지 않도록 설정합니다.

echo 0 > /proc/sys/net/ipv4/conf//rp_filter

또는

echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter

대부분의 유저는 [N]을 선택합니다.

IP: aLiaSing Support :

하나의 물리적 네트워크 인터페이스에 IP 주소를 여러 개 줄 수 있습니다. 멀티 호스팅, 가상 도메인, 또는 가상 호스팅(mirtuaL hoSti ng)이라 부르는 서비스를 제공하려면 필요한기능입니다. 가상 호스팅은 리눅 스 박스 하나로 다양한 서비스를 제공할 수 있어 웹이나 ftp 서버로 사용하는 시 스템을 최대한 활용할 수 있다는 장점도 있습니다. 또, 두 개의 논리적 네트워크를 하나의 이더넷카드를 통해 엑세스하려고 한다면 [Y]를 선택합니다. alias address의 설정은 Doumentation/networking/alias.txt와 IP-Alias mini-HOWTO, http://www.thesphere.com/~dlp/TwoServers/, ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/Virtual-Services-HOWTO 을 참고합니다.

IP: accounting :

리눅스 박스를 라우터나 방화벽으로 사용할 때 설정합니다.

IP: ReverSe ARP, IP:

..

ALLow Large windowS (not recommended if <16Mb of memory) :

손대지 않는 것이 안전하다고 경고하고 있습니다. RARP( Reverse Address Resolution Protcol)는 모든 H/W Ethernet card가 각자 가지고 있는 고유한 번호인, 하드웨어 어드레스를 가지고 IP 주소를 알아 낼 수 있는 프로토콜입니다. 디스크가 없는 머신에서 부팅할 때 IP 주소를 알아내기 위해서 주로 사용되며 Diskless Sun 3 머신이나 Linux Box에서 사용할 수 있습니다. RARP 요청에 응답할 수 있는 서버가 필요합니다. 윈도우는 TCP 세그먼트 포맷의 필드 가운데 하나로, 원격 시스템이 항상 안전하게 수신할 수 있는 바이트 크기를 담고 있습니다. 윈도우 크기는 확인응답을 받지 않고도 보낼 수 있는 최대 바이트 수입니다. 윈도우 크기가 커질수록 확인응답이 줄어들게 되므로 상대적으로 데이터 전송이 빨라질 수 있습니다.

CPU iS too SLow to handLe fuLL bandwidth :

CPU가 네트워크전대역폭 (full-bandwidth)을 다루기에 충분히 빠르지 않다고 생각되면 설정합니다.

IP:

..

aLwayS defragment (required for maSquerading) :

물리적인 네트워크에서 전송 효율을 높이기 위해 이상적인 경우 캡슐화될 IP 데이터그램의 크기는 데이터 그램을 담는 물리적 프레임에 정확하게 일치해야 합니다. 그러나, 실제 세상에서는 FDDI의 4470 옥텟부터 이더넷의 1500옥텟, 혹은 어떤 하드웨어의 128 옥텟까지 다양한 경로를 지나갑니다. 데이터그램이 서로 다른 네트워크를 통해 전달될 때 (예를 들어 게이트웨이가 이더넷과 X.25을 연결할 때 처럼) MTU(maximum transmission unit)가 서로 다를 수 있습니다. 이럴 때 상대적으로 패킷 크기가 작은 네트워크로 전달되기 위해서는 새로운 크기로 잘라져야합니다.

이렇게 잘라진 조각들은 원래의 크기로 다시 조합할 수 있는 정보를 가지며 IP 패킷으로 캡슐화됩니다. TCP/IP에서는 이렇게 조각난 데이터그램을 최종 목적지에서 재조립합니다. 마지막 목적지에 이를 때까지 분할된 상태를 유지하는 방법은 큰 MTU 값을 가지는 물리망을 낭비하며 한 조각이라도 잃어버리면 재조립할 수 없어 전체 데이터그램을 버려야 하는 문제가 있습니다. (그러나, 조각들이 MTU를 채울 때까지 저장하거나 조립할 중간 라우터가 필요없다는 장점도 있습니다) 이 기능을 설정하면 들어오는 모든 패킷 조각을 항상 다시 조립합니다. 특히 IP: maSquerading, IP:tranSparent proxy, IP: firewalling 기능을 사용하려면 반드시 필요합니다. 일반적인 라우터나 호스트에서는 절대 [Y]를 선택하면 안됩니다.

IP: tranSparent proxy Support :

리눅스 방화벽을 원격지 호스트처럼 동작하도록 가장하는 기능입니다. 투명하다는 것은 바깥쪽에서는 방화벽을 볼 수 없고 마치 호스트와 직접 연결된 것처럼 보인다는 것을 뜻합니다. 투명한 프록시 박스가 여러분의 내부 네트워크와 라우터 사이에 놓이더라도 클라이언트 머신들에 미치는 영향은 전혀 없습니다.

IP: ICMP maSquerading :

매스커레이딩에 ping 등 ICMP 패킷을 지원합니다. ICMP(Internet Control Message Protocol)은 송신자에게 수신된 데이터그램의 문제점을 알려주기 위해 호스트와 게이트웨이가 사용하는 IP의 확장된 오류보고 메커니즘입니다. IP는 신뢰성이 없는 프로토콜로 연결검사나 에러 처리능력이 없지만 ICMP는 비정상적인 상황이나 네트워크 때문에 데이터 그램의 경로를 지정하거나 전송할 수 없으면 원래 발신지에 상황을 알립니다. 흐름을 제어하고, 목적지를 확인하며, 라우팅을 변경하고, 원격 호스트를 점검합니다. 이 기능을 사용하는 대표적인 명령으로 ping(packet internet gopher)이 있습니다. 매스커레이딩을 사용하는 네트워크에서 ICMP를 사용하려면 이 기능에 [Y]를 답합니다.

IP: maSquerading SpeciaL moduLeS Support:

아래에 나오는 포트 포워딩 등 기능을 지원합니다.

IP: ipportfw maSq Support (EXPERIMENTAL) :

포트 포워딩은 제공한 포트를 통해서 패킷이 방화벽 안쪽으로 전송되도록 합니다. 웹서버는 매스커레이딩 호스트를 통해 인터넷에 접속되며 외부의 클라이언트에게는 방화벽 자체가 웹 서비스를 제공하는 것처럼 보입니다. 이 기능은 아직 개발중이며 ipmasqadm 도구가 필요합니다.

IP: ipmarkfw maSquerade Support (EXPERIMENTAL) :

포트 포워딩과 유사한 기능을 제공합니다. 다른 점은 패킷에 "firewaLLing mark"를 사용다는 것입니다.

IP: masquerading virtual server support (EXPERIMENTAL) :

..

(12) IP masq - VS table size (the Nth power of 2)

..

IP: forwording/gatewaying :

패킷을 중계하는 기능입니다. 매스커레이딩을 위해서는 반드시 켭니다. 이 경우 매스커레이딩 서비스를 제공하는 리눅스 박스가 디폴트 게이트웨이가 됩니다.

2.12.5. /etc/sysctl.conf

echo "1" 혹은 echo "0" 등 출력을 리다이렉트해서 sysctl 요소를 직접 제어할 수 있지만 더 체계적인 방법은 /etc/sysctl.conf를 사용하는 것입니다. 예를 들어 포워딩 옵션을 켜는 명령(echo 1 > /proc/sys/net/ip_forward)을 부트할 때마다 매번 실행하기보다는 /etc/sysctl.conf 파일에 다음 한 줄을 추가하는 것이 효율적이고 프로다와 보입니다:

net.ipv4.ip_forward=1