라우팅 테이블에 접촉한 후 계속 모니터링하고 접촉하면 종료되는 VPN 클라이언트가 있습니다. 이는 노트북과 같은 엔드포인트에 필요한 설정입니다.
소형 PC를 VPN 엔드포인트로 사용하고 이를 통해 LAN(192.168.0.0/24)의 다른 컴퓨터를 라우팅하고 싶습니다.
라우팅 테이블을 건드릴 수 없고 모든 패킷이 VPN 장치를 통해 강제로 전송되므로 192.168.0.0 네트워크에서 장치로 패킷을 POSTROUTE하는 데 도움이 될 것이라고 tun0
생각했습니다 .iptables
eth1
eth1
그러나 일단 종료 되면 IPtoMAC가 이미 대상 네트워크에 있으므로 IPtoMAC을 해결해야 하고 패킷이 도착하기 전에 이미 구문 분석되었는지 여부를 알 수 없기 때문에 이것이 어떻게 작동할지 잘 모르겠습니다. .
어떤 팁이 있나요?
답변1
더 이상 정보를 제공하지 않으셨기 때문에 최선의 답변이 무엇인지 잘 모르겠습니다.
그래서 나는 라우팅 테이블을 수정할 수 없다는 점을 의도적으로 무시하면서 몇 가지 지침을 제공하려고 했습니다. (내 조언을 읽고 나면 그 이유를 이해하게 될 것입니다.)
VPN 클라이언트 및어디이는 커널의 FIB(Forwarding Information Base)에 연결되며 VPN의 FIB 모니터링 또는 표현식 라우팅 테이블 사용은 local
및 main
규칙 테이블에서만 발생하므로 운이 좋을 수도 있습니다. 다음 명령을 사용하여 라우팅 규칙을 확인할 수 있습니다.
ip rule show
규칙 테이블 항목인 "lookup" 레이블 뒤에 오는 각 문자열에 대해 다음을 사용하여 FIB에서 해당 라우팅 정보를 쿼리할 수 있습니다.
ip route show table <name>
운이 좋으면 요구 사항에 맞는 규칙을 만들고 규칙 조회 테이블에서 우선 순위를 지정할 수 있습니다. 예를 들어(당신이 먼저 시작할 수 있도록 뭔가를 만들었습니다) main
일부 프로세스보다 우선순위가 높은 새 규칙을 추가해 보겠습니다.
ip rule add from 192.168.1.0/24 to 10.10.212.1/30 iif eth0 oif eth2 lookup 888 pref 12000
ip rule show
0: from all lookup local
12000: from 192.168.1.0/24 to 10.10.212.1/30 iif eth0 oif eth2 lookup 888
32766: from all lookup main
32767: from all lookup default
표준 Linux(이 문서에서는 Ubuntu) 시스템에서는 일반적으로 호출할 때만 표시되는 세 가지 기본 규칙 테이블 local
, main
및 을 볼 수 있습니다 .default
main
netstat -rn
이제 조회 테이블 888의 FIB 항목을 새 라우팅 항목으로 채우려고 합니다.
ip route add default via 10.37.129.4 dev eth2 table 888
테이블 888의 라우팅 항목이 어떻게 보이는지 살펴보겠습니다.
ip route show table 888
default via 10.37.129.4 dev eth2
나는 당신이 이미 이해해야한다고 생각합니다. 이제 특정 라우팅 요구 사항과 관련하여 정확히 무엇을 달성하려는지 명확하지 않습니다. 규칙 테이블을 사용할 때 경로 캐시를 플러시해야 합니다.
ip route flush cache
iproute2 아키텍처를 사용하면 기본적으로 거의 모든 FIB 항목을 필터링하고 수정할 수 있습니다. 아래 표시된 것처럼 fwmarks 및/또는 u32 분류자를 기반으로 만들 수도 있습니다.정책 라우팅 북):
tc filter add dev eth1 parent ffff: protocol ip prio 1 u32 \
match ip src 10.1.1.0/24 classid :1
ip rule add fwmark 1 table 1 prio 15000 realms 3/4
ip route add default via 192.168.1.1 table 1 src 192.168.1.254
ip route flush cache
규칙 테이블 항목의 혼란을 위해 몇 년 전에 시스템을 원래 라우팅 규칙 상태로 복원하는 작은 bash 조각을 준비했습니다.
: ${KEEP:="local main default"}
while read prio rule; do
continue=0
for keep in ${KEEP}; do
if [ "${rule//lookup ${keep}/}" != "${rule}" ]; then
continue=1
fi
done
if [ ${continue} -eq 0 ]; then
ip rule del prio ${prio%%:*} ${rule//all/0/0}
fi
done < <(ip rule show)
놀랍게도, 존재한 지 10년이 넘은 후에도 iproute2
여전히 정경 너머의 우주가 있다는 것을 아는 사람은 소수에 불과한 것 같습니다."부서진"ifconfig
또는 와 같은 도구 netstat
.