멀티 홈 라우팅 - Linux : 트래픽이 다른 인터페이스에서 응답하도록 허용


1

나는 두 ISP에 연결했고 그들에게 내 자신의 IP 공간 (/ 24 IPv4)을 알렸다. 그래서 두 ISP 모두 내 서브넷을 내 라우터 (Linux 서버)로 라우팅한다.

두 개의 ISP가 Linux 라우터의 다른 인터페이스에 연결되어 있습니다. eth0eth1.

자, 시도 할 때 ping 주소는 요청 시간 초과입니다. 그러나,함으로써 tcpdump, 나는 원격 기계의 답장을 볼 수 있지만, 리눅스 라우터가 요청을 보내는 것과 같은 인터페이스는 아니다. (즉 보낸 사람 : eth0, 답장을 받았다. eth1 ) :

eth0 :

17:11:26.136885 IP tky01.jp.nat.moe > syr.edu: ICMP echo request, id 22910, seq 1, length 64
17:11:27.139627 IP tky01.jp.nat.moe > syr.edu: ICMP echo request, id 22910, seq 2, length 64
17:11:28.163632 IP tky01.jp.nat.moe > syr.edu: ICMP echo request, id 22910, seq 3, length 64
17:11:29.187715 IP tky01.jp.nat.moe > syr.edu: ICMP echo request, id 22910, seq 4, length 64
17:11:30.211766 IP tky01.jp.nat.moe > syr.edu: ICMP echo request, id 22910, seq 5, length 64

eth1 :

17:11:26.314683 IP syr.edu > tky01.jp.nat.moe: ICMP echo reply, id 22910, seq 1, length 64
17:11:27.317398 IP syr.edu > tky01.jp.nat.moe: ICMP echo reply, id 22910, seq 2, length 64
17:11:28.341461 IP syr.edu > tky01.jp.nat.moe: ICMP echo reply, id 22910, seq 3, length 64
17:11:29.365671 IP syr.edu > tky01.jp.nat.moe: ICMP echo reply, id 22910, seq 4, length 64
17:11:30.389885 IP syr.edu > tky01.jp.nat.moe: ICMP echo reply, id 22910, seq 5, length 64

정책 라우팅을 시도했습니다.

ip rule add from x.x.x.x/24 lookup isp2 # where x.x.x.x is my subnet.
ip route add default via y.y.y.y dev eth1 table isp2 # where y.y.y.y is ISP2's gateway

그건 그렇죠. ping 정상적으로 작동하지만, 이제는 모든 사용자가 ISP1 (eth0)을 사용하여 내 AS를 입력하도록 선택하면 아무 것도 연결할 수 없습니다.

리눅스로 하여금 그 둘 모두를 알게하려면 어떻게해야합니까? eth0eth1 요청에 응답 할 수 있습니까?

답변:


2

나는 그것을 알아 냈다. rp_filter 다른 경로의 답장을 허용하려면 사용 중지해야합니다.

for iface in eth{0,1}; do echo 0 > /proc/sys/net/ipv4/conf/$iface/rp_filter; done

영구적으로 설정하려면 net.ipv4.conf.<iface>.rp_filter = 0 sysctl에서.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.