브릿지 미니 하우투 Christopher Cole cole@coledd.com v1.11, 7 September 1998 박 근오 sahara74@netkorea.co.kr v1.0, 16 December 1998 이 문서는 이더넷 브릿지를 설정하는 방법을 기술한다. 이더넷 브릿지란 무엇인가? 이더넷 브릿지란 트래픽의 양을 줄이려는 시도에서 서브넷내의 데이타 패킷들을 제어하는 장치이다. 브릿지는 일반적으로 두개의 분리된 그룹들의 컴퓨터들(이러한 컴퓨터들은 그들끼리는 패킷을 서로 주고 받지만 다른 그룹들의 컴퓨터들과 는 그렇게 접촉이 많지 않다) 사이에 위치한다. 매킨토시 그룹과 유닉스 머쉰 그룹 에 대해서 생각한다면 좋은 예가 될것이다. 이러한 컴퓨터 그룹 둘다 자신의 그룹 사이에서는 상당히 수다스러운 경향을 띄고 있고, 그들이 네트워크상에서 만 들어 내는 트래픽은 서로에게 이야기 하려고 시도하고 있는 반대편 컴퓨터들로 하여금 충돌을 야기 시킨다. 브릿지는 이러한 그룹의 컴퓨터들 사이에 위치하게된 다. 그러므로 브릿지의 역할은 한번에 데이타패킷들의 목적지를 조사하고 이더넷의 다른 부분으로 패킷들을 통과시킬것인가 아닌가를 결정하는 것이다. 결과는 더적 은 충돌로 더 빠르고 조용한 네트워크를 얻게된다. ______________________________________________________________________ 목차 1. 설정 2. 일반적인 문제들. ______________________________________________________________________ 1. 설정 1. ``Bridge Config''프로그램을 구하라: 2. 여러분의 컴퓨터에 여러개의 이더넷 장치를 쓸수 있도록 /etc/lilo.conf파일에 다음을 추가시키고 lilo를 재실행 시키라: append = "ether=0,0,eth1" 만약 브릿지에 여러분이 세개의 인터페이스를 가지고 있다면, 대신 이 라인을 쓰라: append = "ether=0,0,eth1 ether=0,0,eth2" ether문을 더 추가시키므로써 더 많은 인터페이스가 발견될수 있다. 기본적 으로 흔히 리눅스 커널은 하나의 이더넷카드만을 탐색하고, 만약 찾게되면 탐색은 끝이 난다. 위에 적힌 append문은 하나를 찾은 후에도 커널이 계속 이더넷 장치를 탐색하도록 만든다. 선택적으로, 부트 파라메터로 대신 쓸수도 있다: linux ether=0,0,eth1 또는 세개의 인터페이스일때는 다음과 같이 쓴다: linux ether=0,0,eth1 ether=0,0,eth2 3. BRIDGING옵션을 가능(enable)하게 만들고 커널을 다시 컴파일 하라. 4. 브릿지는 IP주소를 가져서는 안된다. 가질수는 있지만,그러나 보통의 브릿지 는 가질 필요가 없다. 여러분의 브릿지로 부터 IP주소를 제거하기위해 /etc/sysconfig/network-scripts/로 (레드햇 시스템이라면) 가서 ifcfg-lo0 파일을 ifcfg-eth0 &ifcfg-eth1 파일로 복사를 하라. 이 두개의 eth 파일에서 ``DEVICE=lo''라는 것을 포함하는 라인을 ``DEVICE=eth0''와 ``DEVICE=eth1''로 바꾸어라. 다른 배포판들은 아마도 이와는 다를것이다. 여러분이 할 필요가 있는 것을 하라! 만약에 이 브릿지에 두개의 인터페이스가 더 있다면,역시 거기에 적절한 설정을 하기바란다. 5. 재부팅을 하라, 이제 브릿지를 포함한 새로운 커널이 실행되고 있다. 또한 네트워크 인터페이스에 IP주소가 할당 안되어 있는지 확인하라. 6. 시스템이 백업되면,이더넷카드를 promiscuous모드로 설정하라. 이제 인터페이스를 통해서 지나가는 모든 패킷들을 보게 될것이다: ifconfig eth0 promisc ; ifconfig eth1 promisc 브릿지가 있는 네트워크에 연결된 모든 인터페이스는 promiscuous 모드 에 놓여 져야만 한다. 7. 다음과 같이 brcfg 프로그램을 써서 브릿지기능을 켜라: brcfg -ena 8. 각각의 인터페이스상에 다른 트래픽이 있는지를 확인하라: tcpdump -i eth0 (in one window) tcpdump -i eth1 (in another window) 9. 브릿지가 부분으로 부터 완전히 분리되는지를 확인하기위해 다른 컴퓨터에서 스니퍼(sniffer)나 tcpdump를 실행시켜라. 2. 일반적인 문제들. 1. Question 다음과 같은 메시지를 보게됩니다. ioctl(SIOCGIFBR) failed: Package not installed 이것은 무엇을 뜻하는건가요? Answer 당신의 커널에 브릿지 수행능력이 없습니다. 2.0이나 더 최신의 커널을 받으세요. 그리고, BRIDGING옵션을 설정해서 다시 컴파일 하세요. 2. Question 한쪽편의 컴퓨터들이 반대편으로 핑(ping)을 할수가 없습니다. Answer � ``brcfg -ena''를 사용해서 브릿지를 enable시켰나요? (brcfg가 ``bridging is ENABLED''라고 해야만 합니다.) � 이더넷 카드들을 promiscuous 모드에 놓았습니까? (``ifconfig''명령을 내려보세요. 이더넷 인터페이스 양쪽다에 ``PROMISC''플래그가 나타나야 합니다.) � 만약 다중-미디어 인터페이스 어댑터(multiple-media interface adapters)를 사용한다면, 정확하게 설정되었는지를 확인해보십시요. 아마 도 네트워크 인터페이스 카드에 딸려오는 config/setup 프로그램을 사용 할 필요가 있을지도 모릅니다. 3. Question 브릿지로 부터 telnet/ftp 를 할수없습니다. 왜일까요? Answer 이것은 어떠한 브릿지 인터페이스도 IP주소가 할당되어 있지 않기때문입 니다. 브릿지는 네트워크의 투명한 부분이어야 합니다. 4. Question 라우팅에 관해서 설정하는데 무엇이 필요합니까? Answer 필요한건 없습니다. 모든 라우팅정보는 커널내의 브릿지 코드에 의해 다 뤄집니다. 그들이 브릿지에 의해 알게될때 이더넷 어드레스를 알고싶다 면, brcfg 프로그램을 디버그 모드로 실행해보십시요: brcfg -deb 5. Question 브릿지는 작동하는것 처럼 보이는데, 왜 ``traceroute''는 경로의 한부분 으로 브릿지를 보여주지 않나요? Answer 브릿지의 성질 때문에,``traceroute''는 브릿지를 경로의 한부분으로 보 여줘서는 안됩니다. 브릿지는 네트워크의 투명한 부분이어야 합니다. 6. Question 커널에 IP_FORWARD 옵션을 넣고 컴파일 할 필요가 있습니까? Answer 아니오. 커널내의 브릿지 코드는 패킷 전송을 담당합니다. IP_FORWARD는 인터페이스에 할당된 IP 어드레스를 가지고 있는 게이트웨이를 위한 것입니다. 7. Question ``brcfg''프로그램에 따르면 포트1과 포트2의 물리적인 이더넷 어드레스가 같던데 왜 같을까요? 달라야 하지 않나요? Answer 예 달라야 합니다. 브릿지의 모든 포트에는 브릿지 코드에 의해 의도적으 로 모두 같은 물리적 이더넷 어드레스가 할당됩니다. 8. Question 커널 설정에서 make config로 할때 Bridging옵션이 나타나지 않습니다. 어떻게 enable시키나요? Answer 커널 설정중에,``Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL) [Y/n/?]''라는 질문에 대해서 'Y'라고 답변하십시요. 9. Question 차례차례로(직렬로) 연결된 너무 많은 허브들(4개 또는 그이상)때문에 이 더넷 상에 타이밍 문제들(timing problems)이 생깁니다. 허브로 계층화 된 서브넷에서 브릿지는 무슨 효과를 가질까요? Answer 브릿지는 3/4/5개의 허브 규칙을 초기화시킵니다. 브릿지는 허브가 패킷을 다루는 그러한 방식으로 패킷들을 다루지 않습니다. 그러므로 허브는 네트워크상에 타이밍 문제에 대해 도움을 줄수없습니다. 10. Question 브릿지 인터페이스는 10Mb 이더넷과 100Mb 이더넷 양쪽에서 가능합니까? 그러한 설정에서 빠른 속도의 인터페이스측상에 트래픽의 나머지의 속도 저하가 일어날까요? Answer 네,브릿지는 100Mb도 10Mb 속도로 함께 묶어버릴수 있습니다. 빠른 네트 워크상의 네트워크 카드가 100Mb속도 능력이 있는한,TCP는 나머지를 돌 볼겁니다. 100Mb속도의 네트워크에 있는 호스트로 부터 10Mb 네트워크에 있는 호스트로 가는 패킷들의 경우 오직 10Mb/s속도로 움직이는 것이 사 실입니다만, 빠른 이더넷상의 트래픽의 나머지 패킷들은 속도저하가 없을 겁니다.