Home router/ko

이 문서는 어떻게 젠투 머신이 홈 네트워크와 인터넷을 연결하는 라우터로 변모하는지 자세한 내용을 다룹니다.

도입부
오래된 부품으로 개인 라우터를 구축하는 작업은 대기업(Linksys, D-Link, Netgear 등)에서 만들어둔 걸 사는 것보다 여러 면에서 장점을 지니고 있습니다. 특장점이라면 연결을 전반적으로 취급할 수 있다는 점입니다. 다른 장점은 여러분의 상상에 맏길 수 있습니다. 어떤 구성이든 필요한 요소로 이루어진 시나리오를 통해 가능합니다.

이 안내서에선 네트워크 주소 변환(NAT) 기능을 자작 라우터(커널 및 iptables)에서 설정하는 방법, 일반적인 서비스(를 통한 도메인 이름 체계(DNS)설정, 를 통한 dhcp 사용, 를 통한 ADSL연결)를 추가하고 설정하는 방법 절차를 제공하며, 자작 라우터에서 갖출 수 있는 모든 기능을 가진 정교한 재미거리(포트 포워딩, 트래픽 셰이핑, 프록시/캐싱, 등...)로 마무리 하겠습니다.

시작하기 전에, 몇가지 검토해 볼 기본 요구사항이 있습니다.
 * 1) 컴퓨터에 적어도 두 개 이상의 네트워크 인터페이스 카드(NICs)를 이미 설치했어야 합니다.
 * 2) 인터넷 연결을 설정해야 합니다(아마 IP/DNS/게이트웨이/사용자 이름/암호가 포함될지도 모릅니다).
 * 3) (추가적으로) 마스터 모드를 지원하는 무선 네트워크 카드도 필요합니다. 상업용 드라이버가 필요하여 기능을 못쓰고 버리는 일을 피하려면 마스터 모드 설정을 추천합니다. 드라이버를 다루지 못한다면 카드를 영원히 방치하고 쓰지 못할 지도 모릅니다.
 * 4) 이 안내서를 성공적으로 따르고 가정용 라우터가 제대로 동작하도록 하는 약간의 여유 시간과 젠투에 대한 애정이 필요합니다.

이 안내서에서 따를 관례는 다음과 같습니다:


 * eth0 - 지역 네트워크(LAN)또는 여러대의 NIC로 구성한 네트워크 브릿지에 연결한 NIC
 * eth1 - 광역 네트워크(WAN)에 연결한 NIC
 * LAN은 192.168.0.xxx 네트워크로 동작함
 * 라우터는 표준 192.168.0.1 IP 주소로 고정함
 * 라우터는 Linux 2.4또는 2.6커널에서 동작합니다. 이 안내서에서 다른 버전은 지원하지 않습니다.

커널 설정(너 자신을 알라)
시스템에 나타난 NIC를 동작케 하려면 커널 드라이버를 설치해야 합니다. 카드를 이미 설정했는지 확인하려면 를 실행하십시오. 다음의 예제 과정과는 나온 내용이 약간 다를 수 있습니다. 여기서 다룰 문제는 모든 인터페이스를 화면에 띄우는 것입니다.

두 네트워크 카드가 나타나지 않고, 어떤 카드를 붙였는지 알 수 없다면, 을 실행해보십시오. 유틸리티는 꾸러미의 일부이며 로 프로그램을 가져올 수 있습니다.

이 정보를 확인했다면, 커널 설정으로 가서 올바른 드라이버 지원을 추가하십시오. 커널 설정에 대한 더 많은 내용은 커널 설정 안내서en 를 살펴보십시오.

그 다음 필요한 것은 iptables와 NAT(그리고 원할 경우 패킷 셰이핑) 지원입니다. 다음 목록은 항상 필요한 것(*), PPPoE를 통한 ADSL연결시(a), 모든 경우에 대해 추천(x), 셰이퍼(s) 기능용으로 나뉩니다. 기능을 커널에 포함을 하든 모듈로 빌드하든 상관 없기에 기능이 필요할 때면 올바른 모듈을 불러옵니다(모듈 불러오기는 어쨌거나 독자의 흥미 거리로 남겨둡니다). 모듈 불러오기에 더 많은 내용을 찾아보신다면 다음을 참고하십시오

2.4.x 커널을 사용한다면, DHCP를 활용할 때 다음 설정을 활성화해야합니다:

도입부
인터넷에 연결하는 방법은 여러가지가 있습니다. 하지만 일반적으로 연결하는 방법은 그 중 몇가지일 뿐입니다. ADSL(PPPoE) 와 케이블 모뎀 연결 방식(정적/동적)은 ISP(인터넷 서비스 제공자)에서 제공하는 가장 일반적인 방식입니다. 다른 방식이 존재한다면 이 위키 게시글에 자유롭게 추가하십시오. 용례에 적합하지 않다면 이 장의 나머지 부분을 건너뛰십시오. 이 장은 eth1을 통해 라우터 머신이 인터넷에 연결할 수 있게 잡아주는 부분입니다.

ADSL과 PPPoE
rp-pppoe(Roaring Penguin)에서 보통 제공하는 매력적인 모든 PPPoE 프로그램은 표준 PPP 꾸러미에 통합했습니다. 간단하게 를 실행하면 여러분의 뜻대로 됩니다. 여러분이 사용자 이름/암호 정보가 필요하다는 사실을 어떻게 말했는지 기억하시죠? 글쎄요, 전 뻥을 안쳤으니까 여러분이 그걸 지금 자각하고 있길 바랍니다. 여러분이 주로 쓰는 편집기에서 을 불러오고 설정해보세요.

다음 예제에서 과   부분을 필요한 사용자 이름 및 암호로 바꾸십시오:

케이블 또는 동적/정적 IP
고정 IP를 받았다면 자세한 세부 설정이 필요합니다. 정적 IP 사용자는 IP 주소, 게이트웨이, DNS 서버 주소가 필요합니다.

동적 IP 사용자:

정적 IP 사용자:

동적 및 정적 설정:

모든 설정이 여기까지 해서 제대로 동작해야 합니다.

(일부 친구를 데려오는)LAN을 내 것으로 만들기
This step is a breeze compared to the previous one. To use more than two devices (more than the one for LAN and the one for WAN), a Network bridge will need to be setup between all NICs using the LAN. This will allow multiple NICs to be reached by the same IP address.

If a network bridge will be necessary, follow the instructions to set up a Network bridge. The name of the bridge (default br0) will then replace eth0 for the LAN device in the steps in this wiki. If a large number of network devices in the home router, consider renaming them via udev to make administration easier. Setting up a bridge and renaming devices is completely optional but recommended for larger home networks.

When creating a Wi-Fi access point make sure the Wi-Fi card supports master mode and set up Hostapd.

DHCP 서버
It would be nice if everyone in the house could plug their computers into the network and things would just work. No need to remember mind-numbing details or make them stare at confusing configuration screens! Life would be grand, eh? Introducing the Dynamic Host Configuration Protocol (DHCP) and why everyone should care.

DHCP is exactly what its name implies: a protocol that allows dynamic configuration of hosts automatically. Run a DHCP server on the router, give it all the information about the network (valid IPs, DNS servers, gateways, etc...), then when the other hosts start up, they can run a DHCP client to automatically configure themselves. No fuss, no muss! For more information about DHCP, visit Wikipedia's DHCP article.

This section will use the package which will provide both DHCP and DNS services. For now lets focus on the DHCP aspect. Note: to run a different DHCP server, another example can be found in the Fun Things section below. Also, to tinker with the DHCP server settings read the comments in the file.

Setting the interface is very important. Using default dnsmasq settings will open the router to DNS amplification attacks which could create some scary email from the ISP providing the connection. Check to make sure the router is not allowing for DNS amplification attacks by using.

Now the little router is a bona-fide DHCP server. Plug in those computers and watch them work! With Windows systems navigate to the and select the  and  options. Sometimes the changes are not instantaneous, so opening a command prompt and running ipconfig /release and ipconfig /renew might be necessary. Enough about Windows, time to get back to everyone's favorite penguin!

DNS 서버
When people want to visit a place on the Internet, they remember names, not a string of funky numbers. After all, what is easier to remember, eBay.com or 66.135.192.87? This is where the DNS steps in. DNS servers run all over the Internet, and whenever someone wants to visit eBay.com, these servers turn the text "eBay.com" (what we understand) into IP address "66.135.192.87" (what computers understand). For more information about DNS visit Wikipedia.

Since dnsmasq is being used for the DHCP server, and it includes a DNS server, there is nothing left to do here! The little router is already providing DNS to its DHCP clients. Shouldn't everything be this easy? ;)

It is possible to choose other DNS servers if they are more comfortable to setup. dnsmasq is used in this article because it was designed to do exactly what this guide required. It is a little DNS caching/forwarding server for local networks. The scope of this howto is not to provide DNS for a domain; but it does offer simple DNS services to every user of a home-based LAN.

(IP 매스커레이딩으로 알려진) NAT
At this point, people on the network can talk to each other and look up hostnames via DNS, but they still ca not actually connect to the Internet. While the network administrator (the person reading this) may think it is great (more bandwidth for the Admin!), the other users are probably not very happy without an Internet connection.

This is where Network Address Translation (NAT) steps in. NAT is a way of connecting multiple computers in a private LAN to the Internet when a small number of public IP addresses are available. Typically a home Internet user is provided with 1 public IP address by an ISP for the whole house to connect to the Internet. NAT is the magic that makes this possible. For more information about NAT, please visit Wikipedia.

IPtables를 설치한 후, 현재 규칙을 모두 삭제하십시오:

조건에 일치하지 않는 트래픽을 처리파도록 기본정책을 설정하겠습니다:

다음 예제를 복사해서 붙여넣으세요:

그 다음 서비스를 잠궈서 LAN에서만 동작하도록 하겠습니다:

(추가 요소)WAN에서 ssh 서버로 접근할 수 있도록 하겠습니다:

허가받은 포트에 TCP/ UDP 패킷을 떨굽니다:

마지막으로 NAT 규칙을 추가하겠습니다:

커널에 IP 포워딩을 허용한다고 알립니다:

IPTables 데몬에 바뀐 규칙을 저장하라고 지시하고 IPTables를 기본 런레벨에 추가하십시오:

동적 인터넷 망에 대해서는 다음 설정을 활성화하십시오:

Once the above text has been entered the rest of the network users should now be able to use the Internet as if they were directly connected themselves.

The  option is useful for dial on demand systems or when the ISP gives out dynamic addresses. This works around the problem where a connection is attempted before the Internet interface is fully setup. This provides a smoother network experience for users behind the router.

도입부
Believe it or not, it is done! From here on out, some other common topics that may interest will be covered. Everything in the following sections are completely optional.

포트 포워딩
Sometimes users need to be able to host services on a computer behind the router, or need to be able to connect remotely to a computer behind the router. Perhaps a FTP, HTTP, SSH, or VNC server is needed on one or more machines behind the router and outsiders need to connect to them all. The only caveat to Port Forwarding is only one service/machine combo can be established per port. For example, there is no practical way to setup three FTP servers behind the router and connect to them all through port 21; only one system can be on port 21 while the others would need to be on other ports (port 123 and port 567 would be fine options).

All the port forwarding rules are of the form. Unfortunately, iptables does not accept hostnames when port forwarding. When forwarding an external port to the same port on the internal machine, omit the destination port. See the iptables(8) man page for more information.

내부 호스트의 ssh로 포트 2개 포워딩

내부 호스트용 FTP 포워딩:

내부 호스트용 HTTP 포워딩:

내부 호스트용 VNC 포워딩:

To VNC in to 192.168.0.3, then add  to the router's hostname.

내부 포스트용 SAMBA 포워딩(윈도우를 감당하기에는 포트 수를 초과함):

비트토렌트 포워딩:

eDonkey/eMule 포워딩:

게임 큐브 워프 파이프 지원:

플레이스테이션 2 온라인 지원:

Xbox 라이브:

Identd(IRC용)
Internet Relay Chat utilizes the ident service pretty heavily. Now that the IRC clients are behind the router, a way to host ident for both the router and the clients is needed. A server has been created for this purpose. It is called.

포티지에 다른 몇가지 ident 서버가 있습니다. 필요에 따라 와 도 확인해볼 것을 추천합니다.

시간 서버
Keeping the system time correct is essential to maintaining a healthy system. One of the most common ways of accomplishing this is with the Network Time Protocol (NTP) and the package (which provides implementations for both server and client).

Many users run ntp clients on their computers. Obviously, the more clients in the world, the larger the load ntp servers need to shoulder. In environments like home networks an NTP server can be setup locally to help keep the load down on public servers while still providing the proper time to local systems. As an added bonus, private updates will be a lot faster for the local clients! The setup is simple: run a NTP server on the router that synchronizes itself with the public Internet servers while, at the same time, providing the time to the rest of the computers in the network. To get started, simply emerge ntp on the router and edit as desired.

These will allow only NTP clients with an IP address in the 192.168.0.xxx range to use the NTP server.

Now, on the clients, run emerge ntp. By running the NTP client setup is a lot simpler.

In, change the  server in the   variable to

rsync 서버
For those who run multiple Gentoo boxes on the same LAN, it is wise to prevent every machine running emerge --sync with remote servers. By setting up a local rsync, both personal bandwidth and the Gentoo rsync servers' bandwidth is saved. The process is relatively simple.

Since every Gentoo machine requires rsync, there is no need to emerge it. Edit the default config file, uncomment the   section, and make sure to add an   option. All other defaults should be already set correctly.

그 다음 서비스를 시작해야 합니다(다시 말하지만, 기본 상태로 두어도 됩니다).

여기서 남은 일은 클라이언트를 라우터랑 동기화 하도록 설정하는 일입니다.

메일 서버
Sometimes it is nice to run a Simple Mail Transfer Protocol (SMTP) server on the router. Each user may have their own reason for wanting to do so, however one advantage to running SMTP on the router is the users see mail as being sent instantly and the work of retrying/routing is left up to the mail server. Some ISPs do not allow for mail relaying for accounts that are not part of their network (like Verizon). Also, throttling the delivery of mail may be needed so that large attachments will not seriously lag the Internet connection.

Make sure the output of the hostname command is correct:

를 편집하고 allow 섹션에 다음처럼 항목을 추가하세요:

When e-mail is setup on the hosts in the network, tell them the SMTP server is 192.168.0.1. Visit the netqmail homepage for more documentation on netqmail usage.

완전한 DHCP 서버
Earlier dnsmasq was used to provide DHCP service to all DHCP clients. For most people with a simple small LAN, this is perfect, however there may needs something with more features. Thus a full-featured DHCP server is provided by the ISC folks for users who crave the maximum.

에 값을 "eth0"으로 설정하십시오.

This is the minimal setup required to replace the dnsmasq DHCP functionality used earlier. The DHCP features in dnsmasq should be disabled? If not, comment out the  setting in  and restart the service.

다른 지역 네트워크 연결하기(둘 또는 셋 또는 ...)
Sometimes the router must be connected to another LAN. This can be done to hook up a group of friends temporarily or to section off different groups of computers. Whatever the reason, extending the router to other LAN networks should is straightforward. In the following examples, This article presumes that the new network is connected via a third ethernet card, namely.

First configure the interface. Take the instructions in this section and replace  with   and   with.

Tweak dnsmasq to service the new interface. Edit the file again and append   to  ; using -i multiple times is OK. Then edit and add another line like the dhcp-range line in this section, replacing   with. Having multiple dhcp-range lines is OK too.

Finally, see the rules in this section and duplicate the rules that have  in them. Another variable may need to be created, say, to make things easier.

유용한 도구
When having trouble getting computers to communicate try out the following tools (they can all be found in the net-analyzer Portage category):

DHCP 시동 실패
When starting the dhcp init.d script for the first time, it may fail to load but neglect to provide any useful information.

The trick is used to know where dhcpd is sending its output. Browse to and read the log files. Since the exact log file depends on the package using a syslog, try running grep -Rl dhcpd /var/log to narrow down the possibilities. Chances are a typo was made in the configuration file. Another command to try running: dhcpd -d -f</tt> (short for debug / foreground). This aids in debugging the errors based upon the output.

잘못된 MTU 값
드문 오류(다른 페이지는 잘 불러오는데 어떤 페이지에는 접근할 수 없는 경우)를 경험하는 경우, 경로 MTU 발견 문제에 직면했을 수도 있습니다. 신속하게 확인하려면 다음 iptables 명령을 실행하십시오:

이 명령은 새 연결에 영향을 줍니다. 테스트 하려는 문제 있는 웹 사이트를 새로 고치면 됩니다. 이게 도움이 된다면, 100Mbit 이더넷 연결에서의 표준 MTU 값은 입니다. 이 값은 PPPoA에도 적용됩니다. PPPoE 연결에는 입니다. 더 많은 내용을 알아보려면 리눅스 고급 라우팅 및 트래픽 컨트롤 설명서의 15장을 읽어보십시오.

If the above command does not work, consider putting the rule into the mangle table. Simply add -t mangle</tt> to the command.

두 머신을 직접 연결할 수 없음
If (for whatever reason) connecting two machines directly together without a hub or switch is required, a regular ethernet cable will likely not work, unless an Auto MDI/MDI-X (also known as "autosensing") capable network adapter is available. A different cable called a crossover cable will be needed for direct NIC to NIC connections. This Wikipedia page explains the low level details.

마지막 참고
There are no other final notes. If any troubles with this guide are experienced either update this article with the correct information or leave a brief message on this article's talk page with a summary of what is broken. Eventually someone should be able to correct any issue(s). It is also possible to file a bug on Gentoo's Bugtracking Website. If there are any other interesting bits that would enhance this guide, by all means include them! The worst that could happen is they could be removed.