2014-10-30 6 views
-1

나는 네트워킹 분야의 초보자입니다. 내 웹 서버 네트워크 구성에 문제가 있습니다 (OS는 Centos 임). 동일한 서브넷, 동일한 게이트웨이가있는 2 개의 공용 IP를 실행하는 2 개의 NIC (eth0 + eth2 - 물리적으로)가 있습니다. 이 두 NIC에서 수신 대기하도록 nginx를 구성하면 모든 것이 올바르게 작동합니다. 하지만 트래픽을 모니터링 할 때 모든 트래픽은 eth0에서만 발생하며 eth2에서는 발생하지 않습니다. 제 질문은 : 트래픽이 NIC에 들어가고 해당 NIC로 나가도록 구성하려면 어떻게해야합니까? 이 내 이더넷 카드의 설정입니다 :라우팅 방법 동일한 게이트웨이에서 동일한 서브넷을 실행하는 2 개의 공개 IP가있는 Nics

DEVICE="eth0" 
ONBOOT=yes 
BOOTPROTO=static 
IPADDR=x.x.x.38 
PREFIX=27 
GATEWAY=x.x.x.x.33 
DNS1=8.8.8.8 
DNS2=8.8.4.4 
NAME="System eth0" 

DEVICE="eth2" 
ONBOOT=yes 
BOOTPROTO=static 
IPADDR=x.x.x.39 
PREFIX=27 
GATEWAY=x.x.x.33 
DNS1=8.8.8.8 
DNS2=8.8.4.4 
NAME="System eth2" 

이 내 경로 -n 결과

Kernel IP routing table 
Destination  Gateway   Genmask   Flags Metric Ref Use Iface 
10.14.8.0  0.0.0.0   255.255.255.0 U  0  0  0 eth1 
y.z.0.0   0.0.0.0   255.255.0.0  U  1002 0  0 eth0 
y.z.0.0   0.0.0.0   255.255.0.0  U  1003 0  0 eth1 
y.z.0.0   0.0.0.0   255.255.0.0  U  1004 0  0 eth2 
0.0.0.0   x.x.x.33  0.0.0.0   UG 0  0  0 eth0 

고급, 당신이 도움이 될 수 있습니다 덕분에 희망입니다!

답변

1

Linux에서 라우팅은 대상 주소 만보고 수행되므로 원본 주소와 상관없이 패킷의 대상에 도달하는 데 사용할 수있는 경로를 따라 패킷이 전달됩니다.

원하는 동작은 목적지 주소에 대한뿐만 아니라 소스 주소뿐만 아니라 따라 경로를 선택 필요 -이 가끔 소스에 민감한 또는 SADR (소스 주소에 의존 라우팅) 라우팅이라고합니다. Linux에서 소스에 민감한 라우팅을 구현하는 가장 휴대 가능한 방법은 ip ruleip route ... table ... 명령을 사용하여 여러 라우팅 테이블에 라우팅 규칙을 정의하는 것입니다.

이것은 아마도 문제도 NAT 해결할 수 Linux Advanced Routing and Traffic Control HOWTO

+0

감사합니다. jch,이 문서를 보겠습니다. – TuNH

+0

이 문서는 내가 필요한 것입니다. http://multipath-tcp.org/pmwiki.php/Users/ConfigureRouting – TuNH

0

의 섹션 4에서 자세히 설명한다.
다음 ifconfig 일단 tap0 10.10.10.1 넷 마스크 255.255.255.255
다음 ifconfig TAP1 10.10.10.2 넷 마스크 :
그런 다음 이러한 장치에 별도의 IP 주소를 할당 할 수 dev에 일단 tap0 모드 탭
의 IP tuntap이 dev에 TAP1 모드 탭을 추가
의 IP tuntap 255.255.255.255
그리고 마지막으로 -
의 iptables -t NAT -A PREROUTING -i eth0를 -j DNAT --to-대상 10.10.10.1
의 iptables -t NAT -A PREROUTING -i eth2를 특정 가상 장치로 들어오는 트래픽을 리디렉션 -j DNAT - 목적지 10.10.10.2
이 경우, 모든 트래픽은 그것이 나온 인터페이스로 명확하게 라우팅됩니다.