2012-08-24 3 views
14

나는 네트워크 인터페이스 eth0와 eth1이있는 PC를 가지고있다.OS는 인터넷에서 사용할 네트워크 인터페이스를 어떻게 알 수 있습니까?

eth0 - ip는 192.168.11.X/24입니다.

eth1 - ip가 192.168.130.X/24입니다. eth1은 인터넷에 연결되어 있습니다.

인터넷에 연결하려고 할 때 내 OS가 사용할 인터페이스를 어떻게 알 수 있습니까? 모든 기본 게이트웨이를 반복합니까? 각 인터페이스가 제공하는 캐시가 있습니까? Windows와 Linux간에 차이가 있습니까?

답변

13

(그것은이 시점에서 사용자를 위해보다 일반적인이기 때문에, 적어도 우분투 같은 데비안 기반 시스템 용) 나는 집의 리눅스 측면에 대한 답변거야 :

유형이 (가)에 다음과 같은 명령 행 :

Destination Gateway   Genmask   ... Iface 
0.0.0.0  192.168.11.254 0.0.0.0   ... eth0 
169.254.0.0 0.0.0.0   255.255.0.0  ... eth0 
192.168.11.0 0.0.0.0   255.255.255.0 ... eth0 
192.168.130.0 0.0.0.0   255.255.255.0 ... eth1 

내가 몇 열을 생략하지만, 기본적으로 라인 : 당신은 당신의 "라우팅 테이블"을 참조한다
route -n 

은 다음과 같은 것을 함께 표시 "대상"아래의 "0.0.0.0"은 기본 경로의 위치를 ​​결정하는 행입니다. 다른 말로하면, 모든 트래픽은 다른 라인 (google.com, facebook.com 등)의 다른 서브넷으로 향하지 않습니다.

는, 기본 경로를 변경해야합니다 (예 : "eth1에가"인터넷에 액세스 할 카드가 위의 표에서와 같이) 옳지 않아 경우

sudo route del default 
sudo route add default gw 192.168.130.254 netmask 255.255.255.0 

지금은 그것을 해결됩니다 . 인터페이스 파일을 편집, 그것은 영구적으로 만들려면 :

sudo gedit /etc/network/interfaces 

편집이 뭔가를 찾기 위해 (특정 상황에 필요한 변경) 다음

auto eth0 
iface eth0 inet dhcp 
up route del default 

auto eth1 
iface eth1 inet dhcp 
up route add default gw 192.168.130.254 netmask 255.255.255.0 

그리고 그 짓을하는지 네트워킹 다시 시작 트릭 :

sudo /etc/init.d/networking restart 
2

당신이 요구하는 기능은 라우팅 테이블, 즉 호스트에 알려진 목적지 목록입니다.

OS가 패킷을 전달해야 할 때이 목록을 검사하고 가장 적합한 패킷을 선택합니다 (특정 대상에서 일반 패킷으로). 예 :

192.0.2.0/28 - 192.0.2.1 via eth1 
198.51.100.0/27 - 198.51.100.1 via eth0 
0.0.0.0/0  - 203.0.113.1 via eth0 

마지막 목적지에 유의하십시오. 모든 IPv4 주소와 일치합니다.

+0

하지만 처음으로 PC를 켜고 인터넷에 연결하려고하면 어떻게됩니까? eth가 인터넷에 액세스 할 수 있는지 여부는 알 수 없습니다. 인터페이스를 반복하며 성공하면 정보를 라우팅 테이블에 저장합니까? 감사. –

+1

@UriH 사용자 또는 라우팅 프로토콜에서 어떤 형태의 구성을 기대합니다. 패킷을 무작위로 라우팅하려고하지는 않습니다. – cnicutar

+0

고마워, 나는 가서 기본 경로를 제거하고 eth1을 다시 시작하여 기본 경로가 추가되었음을 확인했다. 라우터 옵션이 포함 된 DHCP 요청 때문에 가정했다. –

관련 문제