eth0 및 ppp0의 라우팅 테이블이 손상되었습니다.

eth0 및 ppp0의 라우팅 테이블이 손상되었습니다.

나는 사용했다이 가이드내 VPN 서버(pptp)에 연결하는 것은 많은 튜토리얼에서 작동하는 유일한 가이드입니다.

VPN 서버에 연결한 후 라우팅 테이블은 다음과 같습니다. 때로는 마지막 2개 행만 표시됩니다(매우 임의적입니다. 여기에는 이유가 있다고 확신합니다).

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     255.255.255.255 UGH   0      0        0 ppp0
192.168.0.1     0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

내 설정:(단순화를 위해 예제에서는 IP가 변경되었습니다.)

  • 192.168.1.20에서 실행되는 로컬 머신(centos)
  • 그러면 35.100.100.35(인터넷)의 외부 VPN(ubuntu)에 연결되며 내부 VPN 로컬 IP는 192.168.0.1입니다.
  • centos가 연결되면 인터페이스 ppp0이 IP 192.168.0.2로 추가됩니다.

하지만 192.168.0.2부터 192.168.0.1(VPN 서버)까지 모든 트래픽을 라우팅해야 합니다. 현재는 로컬 인터넷을 사용하고 있습니다.

나는 많은 변형을 시도했지만 제대로 얻을 수 없었습니다.

route add default ppp0예전에는 작동했지만 라우팅 테이블이 손상되어 더 이상 작동하지 않습니다.

라우팅 테이블은 어떤 모습이어야 합니까?

답변1

귀하의 질문

192.168.0.2도착하는 트래픽의 소스 주소가 이라고 가정하므로 별도의 라우팅 테이블을 사용하는 것이 좋습니다 35.100.100.35. 문제는 해당 주소 35.100.100.35가 라우팅 테이블에 나열되지 않아 기본값이 사용된다는 것입니다.

다음과 같은 간단한 방법으로 벗어날 수 있습니다.

ip route add 35.0.0.0/8 via 192.168.0.1 dev ppp0

이렇게 하면 컴퓨터가 주소에 응답하려고 할 때 인터페이스에서 응답 35합니다 .ppp0

다음은 더욱 강력하고 세련된 버전입니다.

참고: 라우팅 테이블에 대한 임시 변경 사항을 지우려면 컴퓨터를 다시 시작해야 합니다.


라우팅 규칙

충분히 간단한 라우팅 규칙은 특정 IP 또는 서브넷에서 들어오고 나가는 모든 트래픽이 다른 라우팅 테이블을 사용하도록 하는 것입니다.

ip rule add from [interface ip]/[netmask] tab [table number] priority [priority]
ip rule add to [interface ip]/[netmask] tab [table number] priority [priority]

192.168.0.2이 경우 (귀하의 ppp0장치 IP) 에 도착하는 트래픽이 걱정됩니다 . 파일에 다음을 추가하여 새 라우팅 테이블을 생성해야 합니다 /etc/iproute2/rt_tables. 구문은 [table number] [table name]. 나는 일반적으로 인터페이스 이름을 테이블 이름으로 사용하고 단순하게 유지합니다.

echo "168   ppp0" >> /etc/iproute2/rt_tables 

ip rule add from 192.168.0.2/32 tab 168 priority 101
ip rule add to 192.168.0.2/32 tab 168 priority 101

이렇게 하면 이 테이블의 모든 트래픽과 이에 응답하는 모든 트래픽이 192.168.0.2라우팅 테이블과 일치하게 됩니다.168


새로운 라우팅 테이블 사용

이제 해당 라우팅 테이블로 트래픽을 보냈지만 168비어 있으므로 여기에 기본 경로를 추가하기만 하면 됩니다.

ip route add default via 192.168.0.1 dev ppp0 table 168

168그러면 단순히 인터페이스를 사용하는 기본 경로가 테이블에 추가됩니다 ppp0.


그것은 어떻게 생겼나요?

라우팅 테이블은 아마도 다음과 같을 것입니다.

# ip route show
default dev eth0 proto static metric 1024
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.20
192.168.0.0/24 dev ppp0 proto kernel scope link src 192.168.0.2

이는 일반적으로 트래픽에 사용되는 표준 라우팅 테이블입니다. 여기서 라우팅의 경우 기본 경로는 처음에 정의한 경로일 것이며 마지막 두 경로는 인터페이스의 IP 주소를 기반으로 유추됩니다.

# ip rule show
0:       from all lookup local
101:     from 192.168.0.2 lookup ppp0
101:     from all to 192.168.0.2 lookup ppp0

라우팅 규칙은 "[우선순위]:[규칙]조회[테이블]" 형식으로 여기에 나열됩니다. 이 예에서는 로컬 라우팅 테이블의 일반적인 사용을 보여줍니다. 트래픽이 192.168.0.2로 오가는 경우 이름이 지정된 라우팅 테이블을 사용합니다 ppp0.

# ip route show table ppp0
default via 192.168.0.1 dev ppp0

ppp0여기에는 모든 트래픽을 전송해야 하는 라우팅 테이블이 표시됩니다 ppp0.


최종 결과

최종 결과는 트래픽이 ppp0인터페이스의 IP로 들어오거나 나갈 때 이름이 지정된 라우팅 테이블을 사용한다는 것 입니다 ppp0. 라우팅 테이블은 ppp0단순히 장치 외부로 모든 트래픽을 보냅니다 ppp0.

답변2

route add -net 192.168.0.0/24 gw 192.168.0.1 dev ppp0

관련 정보