참조 사이트:
http://colinux.wikia.com/wiki/Network
http://docs.fedoraproject.org/en-US/Fedora/15/html/Deployment_Guide/ch-Network_Interfaces.html


이전 글( http://vis-a-vis.tistory.com/19 )에서 윈도우즈 XP에 coLinux를 설치하는 과정을 설명하였다. 이 글은 coLinux Fedora에서 네트워크를 설정하는 과정을 설명한다.

여기서는 두 개의 가상의 네크워크 라인을 coLinux와  hosting OS(예, 윈도우즈 XP) 사이에 생성하여, 하나는 coLinux에서 컴퓨터 화면에 x program을 띄우는데 사용하며, 다른 하나는 coLinux에서 실제 네트워크 어댑터로 연결하여 외부 인터넷으로 연결되도록 하는데 사용한다.

참조 사이트를 보면 여러 가지 방식이 가능하나, 각각 TAP과 WinPcap을 이용하여 두 개의 가상 네트워크 라인을 생성하는 방식을 성능면에서 가장 추천하고 있다. 본 글에서도 TAP을 이용하여 하나의 라인 (라인 0라고 하자)을, WinPcap을 이용하여 다른 하나의 라인 (라인 1이라고 하자)을 생성하는 과정을 설명한다.
 


1. Windows XP에서 TAP 가상 어댑터 설정하기

   여기서는 라인 0가 윈도우즈 쪽에 연결될 어댑터를 어떻게 설정하는지 알아보자.

  1. coLiinux를 설치할 때 TAP-Win32 adapter도 함께 설치하였다면 아래의 파란색 네모 안에 보이듯이 해당 어댑터가 Network Connections에 생성되어 있다.


  2. 마우스 오른쪽 버튼을 클릭하여 활성화된 메뉴에서 Properties를 클릭하면 아래의 창이 뜬다.


  3. 여기서 Configure를 클릭하면 아래의 창이 뜬다. 여기서 Advanced 탭 아래에 있는 Media Status 항목의 값을 Always Connected로 설정하고 OK를 클릭한다.


  4. TAP 어댑터의 Firewall 설정 해제 하기. 1B의 그림에서 Advanced 탭을 클릭하면 아래와 같이 Windows Firewall 설정을 변경할 수 있다. Settings를 클릭한다.


    그런 다음, 아래와 같이 Firewall을 끈다. 라인 0는 coLinux와 Windows XP사이에만 존재하는 폐쇄 라인이므로 외부와 연결되어 있지 않다. 게다가 coLinux 쪽에서 Windows XP를 공격할 것도 아니므로 Firewall을 꺼도 무방하다.


  5. Static IP address 할당하기.

    1B의 그림에서 Internet Protocol (TCP/IP)를 선택한 후, Properties를 클릭하여 아래와 같이 static IP address(192.168.37.10)와 subnet mask(255.255.255.0)를 입력하고 OK를 클릭한다. IP 주소 번호에서 37은 아무렇게나 선정된 숫자이며, 중복된 번호의 어댑터가 존재하면 다른 번호로 대체될 수 있다.




2. coLinux에서 두 개의 네트워크 인터페이스 설정하기
 
  1. 먼저, C:\coLinux 폴더 밑에 있는 fedora.conf 파일을 열어서 아래와 같이 eth0와 eth1 라인을 추가하고 저장한다.

    kernel=vmlinux
    initrd=initrd.gz
    cobd0="fedora11.img"
    cobd1="swap512m.img"
    cofs0="."
    root=/dev/cobd0 ro
    # mem=256
    # cocon=120x40
    eth0=tuntap
    eth1=pcap-bridge,"Wireless Network Connection",XX:XX:XX:XX:XX:XX,

    eth0는 윈도우즈의 TAP 어댑터로 연결되는 가상의 폐쇄 라인 (라인 0) 을 생성하는데 사용되는 coLinux 쪽의 어댑터이다. eth1은 WinPcap을 사용하여 실제 네트워트 카드로 연결되는 가상의 라인 (라인 1)을 생성하는데 사용된다.

    eth1의 값 중에서 " "안의 부분은 외부 인터넷과 연결된 실제 네트워크 어댑터의 이름을 사용한다. 유선 랜의 경우 대개 그 이름은 "Local Area Connection"이며, 무선 랜의 경우는 "Wireless Network Connection"이다. 확실하게 하기 위해서 1A에 있는 그림의 Network Connections 창을 열어서 이름이 실제로 어떻게 명명되어 있는지 확인하는 것이 좋다.

    WinPcap 어댑터가 무선랜 카드로 연결되는 경우는, eth1의 끝에 무선랜 카드의 MAC address를 XX:XX:XX:XX:XX:XX 처럼 추가한다. 무선랜 카드의 MAC 주소는 윈도우 명령창에서 ipconfig -all을 실행하면 확인할 수 있다.



3. coLinux Fedora 상에서 두 개의 네트워크 인터페이스 설정하기

  1. coLinux를 실행하여 coLinux Fedora를 부팅한 뒤, Cooperative Linux console에서 root로 로그인한다. (이전 글 coLinux 설치하기 참조) 그런 뒤, 아래의 명령어로 /etc/sysconfig/network-scripts 디렉토리로 이동한다.

    [root@localhost ~]# cd /etc/sysconfig/network-scripts

  2. ifcfg-eth0 파일을 아래와 같이 수정한다. 원본 파일은 다른 이름(예, ifcfg-eth0.orig)으로 저장한다.

    DEVICE=eth0
    IPADDR=192.168.37.20
    NETWORK=192.168.37.0
    NETMASK=255.255.255.0
    BROADCAST=192.168.37.255
    BOOTPROTO=none
    ONBOOT=yes

    위의 IPADDR, NETWORK, BROADCAST 주소 값 중에 37은 다시 한 번 말하지만 임의의 숫자이다. 중복된 번호의 어댑터가 존재하면 다른 아무 번호로 바꿀 수 있다. 단, 1E에서 할당한 static address와 같은 숫자로 맞춰야 한다.

  3. ifcfg-eth1 파일을 아래와 같이 수정한다. 파일이 존재하지 않으면 생성시킨다.

    DEVICE=eth1
    ONBOOT=yes
    BOOTPROTO=dhcp

    eth1은 BOOTPROTO값을 dhcp로 하여 동적으로 주소를 할당받을 수 있도록 한다.

  4. 설정이 끝낸 후, 아래의 명령어로 network를 재시동한다.

    [root@localhost ~]# /etc/init.d/network restart                                
    Shutting down interface eth0:                              [  OK  ]            
    Shutting down interface eth1:                              [  OK  ]            
    Shutting down loopback interface:                       [  OK  ]            
    Bringing up loopback interface:                           [  OK  ]            
    Bringing up interface eth0:                                  [  OK  ]            
    Bringing up interface eth1:    
    Determining IP information for eth1... done
                                                                           [  OK  ]

    모두 OK가 되면 네트워크 어댑터 eth0와 eth1이 정상적으로 작동하는 것이다.

  5. 테스트. 아래와 같이 ping 명령어를 이용하여 네트워크 연결상태를 확인한다.

    [root@localhost ~]# ping 192.168.37.10                                         
    PING 192.168.37.10 (192.168.37.10) 56(84) bytes of data.                       
    64 bytes from 192.168.37.10: icmp_seq=1 ttl=128 time=20.0 ms                   
    64 bytes from 192.168.37.10: icmp_seq=2 ttl=128 time=0.000 ms                  
    64 bytes from 192.168.37.10: icmp_seq=3 ttl=128 time=0.000 ms                   ^C                                                                             
    --- 192.168.37.10 ping statistics ---                                          
    3 packets transmitted, 3 received, 0% packet loss, time 3000ms                 
    rtt min/avg/max/mdev = 0.000/6.666/20.000/9.428 ms

    [root@localhost ~]# ping www.google.com                                        
    PING www.l.google.com (74.125.224.208) 56(84) bytes of data.                   
    64 bytes from www.google.com (74.125.224.208): icmp_seq=1 ttl=57 time=70.0 ms  
    64 bytes from www.google.com (74.125.224.208): icmp_seq=2 ttl=57 time=70.0 ms  
    64 bytes from www.google.com (74.125.224.208): icmp_seq=3 ttl=57 time=270 ms    ^C                                                                             
    --- www.l.google.com ping statistics ---                                       
    4 packets transmitted, 3 received, 25% packet loss, time 3610ms                
    rtt min/avg/max/mdev = 70.000/136.666/270.000/94.281 ms

    윈도우의 가상 TAP adapter 쪽으로나, 외부 인터넷(예, www.google.com)쪽으로나 패킷 로스없이 잘 연결된 것을 확인할 수 있다.



4. 문제해결

  1. coLinux Fedora를 재부팅해도 eth0, eth1이 자동으로 로딩되지 않고 매번 /etc/init.d/network restart를 실행시켜야 eth0와 eth1이 로딩되는 경우

    우선, ifcfg-eth0와 ifcfg-eth1파일에서 ONBOOT 값이 yes로 되어 있는지 확인한다. no 이면 yes로 바꾸고 network 를 재시동한다.

    그래도 문제가 지속되면, 아래와 같이 network 설정을 확인한다. 만약 모든 값이 off이면 on으로 설정한다.

    [root@localhost ~]# chkconfig --list network
    network         0:off   1:off   2:off   3:off   4:off   5:off   6:off
    [root@localhost ~]# chkconfig network on                                       
    [root@localhost ~]# chkconfig --list network                                          
    network         0:off   1:off   2:on    3:on    4:on    5:on    6:off


Posted by 참향그늘
,