라우팅 테이블에 접촉한 다음 접촉되면 종료되도록 계속 감시하는 VPN 클라이언트가 있습니다. 이는 노트북과 같은 엔드포인트에 필요한 일종의 설정입니다.
소형 PC를 VPN 엔드포인트로 사용하고 이를 통해 LAN(192.168.0.0/24)의 다른 시스템으로 라우팅하고 싶습니다.
라우팅 테이블을 건드릴 수 없고 모든 패킷이 VPN 장치를 통해 강제로 전송되므로 패킷을 192.168.0.0 네트워크로 다시 장치로 POSTROUTE하는 데 도움이 될 수 있다고 tun0
생각했습니다 .iptables
eth1
하지만 이것이 어떻게 작동할지 잘 모르겠습니다. 일단 종료되면 eth1
IPtoMAC이 이미 대상 네트워크에 있기 때문에 해결해야 하고, 패킷이 이미 해결되었는지 아니면 도달할 때까지 발생하지 않을지 모르기 때문입니다. 아이페이스.
힌트가 있나요?
답변1
더 많은 정보를 제공하지 않으셨기 때문에 최선의 답변이 무엇인지 잘 모르겠습니다.
따라서 라우팅 테이블을 수정할 수 없다는 점을 의도적으로 무시하면서 몇 가지 지침을 제공하려는 시도는 다음과 같습니다(내 제안을 읽는 이유를 이해하게 될 것입니다).
VPN 클라이언트 및어디local
커널의 FIB(forward information base)에 연결되므로 VPN에 의한 FIB 모니터링 또는 표현식 라우팅 테이블을 사용하는 작업이 및 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
.