ppp0을 통한 인터넷 라우팅 활성화

ppp0을 통한 인터넷 라우팅 활성화

내 서버에는 eth1기본 게이트웨이로 인터페이스되는 Debian 8.0.0-64가 실행되고 있습니다. eth0내부 네트워크를 가리킵니다.

root@server:/home/user# ifconfig
eth0      Link encap:Ethernet  HWaddr 06:46:7e:88:72:d7  
          inet addr:10.168.118.205  Bcast:10.168.118.255  Mask:255.255.255.192
          inet6 addr: fe80::446:7eff:fe88:72d7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:161 errors:0 dropped:0 overruns:0 frame:0
          TX packets:203 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:15215 (14.8 KiB)  TX bytes:79027 (77.1 KiB)

eth1      Link encap:Ethernet  HWaddr 06:70:65:5f:e9:89  
          inet addr:167.41.133.218  Bcast:167.41.133.223  Mask:255.255.255.240
          inet6 addr: fe80::470:65ff:fe5f:e989/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:697 errors:0 dropped:0 overruns:0 frame:0
          TX packets:282 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:46420 (45.3 KiB)  TX bytes:33486 (32.7 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:706 errors:0 dropped:0 overruns:0 frame:0
          TX packets:706 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:86847 (84.8 KiB)  TX bytes:86847 (84.8 KiB)

아래 지침에 따라 VPN(TotalVPN) 연결을 설정했습니다. http://pptpclient.sourceforge.net/howto-debian.phtml#configure_by_hand

pon amsterdam실제로 터널을 열 수 있습니다 .

root@server:/home/user# pon amsterdam

root@server:/home/user# ifconfig
ppp0      Link encap:Point-to-Point Protocol  
          inet addr:10.126.0.29  P-t-P:10.126.0.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1496  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:60 (60.0 B)  TX bytes:66 (66.0 B)

여태까지는 그런대로 잘됐다. 이제 예를 들어 터널을 통해 google.com()을 기본 인터페이스( ) ping -I ppp0 google.com로 사용할 가능성을 잃지 않고 ping 할 수 있기를 원합니다 . 특별한 요구 사항이 있는 경우(예: 사용할 인터페이스를 정의하여) 트래픽(인터넷으로 향하는)이 터널을 통과할 수 있도록 인터페이스를 어떻게 설정합니까?eth1ping google.comrouteppp0

다음은 몇 가지 정보입니다(VPN 연결 이름은 입니다 amsterdam).

root@server:/home/user# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         167.41.133.209  0.0.0.0         UG    0      0        0 eth1
10.0.0.0        10.168.118.193  255.0.0.0       UG    0      0        0 eth0
10.168.118.192  0.0.0.0         255.255.255.192 U     0      0        0 eth0
161.26.0.0      10.168.118.193  255.255.0.0     UG    0      0        0 eth0
167.41.133.208  0.0.0.0         255.255.255.240 U     0      0        0 eth1

root@server:/home/user# pon amsterdam

root@server:/home/user# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0           0.0.0.0         UG    0      0        0 eth1
10.0.0.0        10.168.118.193  255.0.0.0       UG    0      0        0 eth0
10.126.0.1      0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
10.168.118.192  0.0.0.0         255.255.255.192 U     0      0        0 eth0
45.32.239.20    167.41.133.209  255.255.255.255 UGH   0      0        0 eth1
161.26.0.0      10.168.118.193  255.255.0.0     UG    0      0        0 eth0
167.41.133.208  0.0.0.0         255.255.255.240 U     0      0        0 eth1

root@server:/home/user# poff amsterdam

root@server:/home/user# route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         167.41.133.209  0.0.0.0         UG    0      0        0 eth1
10.0.0.0        10.168.118.193  255.0.0.0       UG    0      0        0 eth0
10.168.118.192  0.0.0.0         255.255.255.192 U     0      0        0 eth0
45.32.239.20    167.41.133.209  255.255.255.255 UGH   0      0        0 eth1
161.26.0.0      10.168.118.193  255.255.0.0     UG    0      0        0 eth0
167.41.133.208  0.0.0.0         255.255.255.240 U     0      0        0 eth1

root@server:/home/user# 

두 가지 해결책을 찾았습니다. 첫 번째 보기에서는 작동하지만 실제로는 작동하지 않습니다(이유는 모르겠습니다).

  1. route add default metric 10 gw $PPP_REMOTE $PPP_IFNAMEup 스크립트를 추가 하거나
  2. defaultroutepptp 구성에 추가

두 경우 모두 curl --interface ppp0 ifconfig.coas를 호출 root하면 VPN 연결의 IP 주소가 반환되지만 루트가 아닌 다른 사용자처럼 명령을 실행할 수는 없습니다. 일반 사용자라면 명령이 curl --interface eth1 ifconfig.co제대로 작동합니다.root

답변1

내가 이루고 싶은 것을 이루기 위해서는 다음과 같은 일을 해야 합니다.

1단계: 데비안 프로젝트의 PPTP 클라이언트 프로그램 설치

2단계: PPTP 연결 설정

3단계: 연결 테스트

4단계: 라우팅 추가

5단계: 최종 검사

처음 세 단계에서는 주로 다음 단계를 따릅니다.http://pptpclient.sourceforge.net/howto-debian.phtml. 그러다가 이런 좋은 글을 발견했습니다(https://www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System), 두 개의 기본 게이트웨이를 추가하는 방법을 설명합니다. 두 번째 게이트웨이 접근 방식의 주요 아이디어는두 번째 라우팅 테이블in /etc/iproute2/rt_tables(내 경우에는 이름을 ppp)으로 지정했습니다. 이 작업이 완료되면 이 새 테이블에 경로가 추가되고 규칙이 정의됩니다.

ip route add 10.10.0.0/24 dev eth1 src 10.10.0.10 table ppp
ip route add default via 10.10.0.1 dev eth1 table ppp

ip rule add from 10.10.0.10/32 table ppp
ip rule add to 10.10.0.10/32 table ppp

테스트 후 VPN 연결이 설정될 때마다 경로가 추가되고 제거되도록 스크립트를 추가했습니다.

IP-업 스크립트

#!/bin/sh

if [ "$PPP_IPPARAM" = "amsterdam" ] ; then

  /sbin/ip route add $PPP_LOCAL/24 dev $PPP_IFACE src $PPP_LOCAL table ppp
  /sbin/ip route add default via $PPP_REMOTE dev $PPP_IFACE table ppp

  /sbin/ip rule add from $PPP_LOCAL/32 table ppp
  /sbin/ip rule add to $PPP_LOCAL/32 table ppp
fi

IP 다운 스크립트

#!/bin/sh

if [ "$PPP_IPPARAM" = "amsterdam" ] ; then

  /sbin/ip route del $PPP_LOCAL/24 dev $PPP_IFACE src $PPP_LOCAL table ppp
  /sbin/ip route del default via $PPP_REMOTE dev $PPP_IFACE table ppp

  /sbin/ip rule del from $PPP_LOCAL/32 table ppp
  /sbin/ip rule del to $PPP_LOCAL/32 table ppp
fi

이는 훌륭하게 작동하며 필요한 경우 두 번째 게이트웨이를 선택할 수 있습니다.

답변2

route최신 버전을 사용하여 ip route경로를 설정할 수 있습니다 .

ip route

기존 경로를 표시하고

ip route del default via 167.41.133.218
ip route add default via 10.126.0.29

기본 경로를 통해 eth1경로로 교체ppp0

"특별히 요청한 경우"가 질문입니다. 프로그램을 통하지 않고 목적지 주소를 통해 경로를 설정합니다. 따라서 을 통해 연락하려는 주소를 알고 있는 경우 ppp0해당 주소를 기본이 아닌 경로로 설정할 수 있습니다.

또는 다음을 사용할 수 있습니다.네트워크 네임스페이스일부 프로그램에서는 다른 네트워크 구성을 사용할 수 있지만 설정하기가 쉽지 않고 문제가 있습니다(예: 다른 해결.conf 필요).

답변3

ppp0-vpn에서 인터넷에 액세스하는 간단한 bash 스크립트

## Instruction to Use
- Once you are connected to ppp0-VPN
- Run this bash script. Command shared below
> chmod +x router-ppp0toint.sh
> ./router-ppp0toint.sh

라우터-ppp0toint.sh

#!/bin/bash

IP=$(ifconfig ppp0 | grep inet | cut -d: -f2 |awk '{print $2}') #IP assigned post connected to ppp0 VPN

echo $IP  #echos ppp0 IP

route del -net 0.0.0.0 gw $IP dev ppp0 

route add -net 172.16.0.0 gw $IP netmask 255.255.0.0 dev ppp0 #add static route

route add -net 192.168.0.0 gw $IP netmask 255.255.0.0 dev ppp0

ppp0-vpn의 인터넷용 Github-Bash 스크립트

관련 정보