OpenVPN 클라이언트를 실행하는 라우터(192.168.1.1)에 연결된 192.168.1.5의 Debian Jessie 상자가 있습니다(실제로는 Pi를 사용하는 Pi입니다).이 설정. 유일한 차이점은 Pi의 eth0 IP가 라우터로 인해 정적이라는 것입니다. 즉, Pi는 라우터의 DHCP를 사용하고 있습니다.
LAN 클라이언트가 192.168.1.5를 게이트웨이로 사용하도록 설정되면 의도한 대로 VPN에 있게 됩니다.
나에게 필요한 것은 192.168.1.128/25 내의 LAN 클라이언트가 모든 트래픽을 192.168.1.5로 리디렉션하도록 하는 것입니다.IP가 라우터의 DHCP에 의해 설정될 때게이트웨이는 192.168.1.1이 됩니다. 다시 말해서,192.168.1.128/25 내의 클라이언트는 게이트웨이가 192.168.1.5인 것처럼 작동해야 합니다.
이 작업을 수행하기 위해 라우터에 필요한 설정 iptables
및/또는 설정은 무엇입니까?route add
(라우터는 Tomato 3.4-138을 실행합니다)? 라우터 설정은 다음과 같습니다.
iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
WANPREROUTING all -- 0.0.0.0/0 wan_ip
upnp all -- 0.0.0.0/0 wan_ip
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 0.0.0.0/0 0.0.0.0/0
SNAT all -- 192.168.1.0/24 192.168.1.0/24 to:192.168.1.1
SNAT all -- 172.16.1.0/24 172.16.1.0/24 to:172.16.1.1
Chain WANPREROUTING (1 references)
target prot opt source destination
DNAT icmp -- 0.0.0.0/0 0.0.0.0/0 to:192.168.1.1
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 to:192.168.1.1:443
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:2222 to:192.168.1.5:22
DNAT all -- 0.0.0.0/0 0.0.0.0/0 to:192.168.1.4
Chain pupnp (0 references)
target prot opt source destination
Chain upnp (1 references)
target prot opt source destination
DNAT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:55355 to:192.168.1.130:55355
DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:55355 to:192.168.1.130:55355
DNAT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:5353 to:192.168.1.48:5353
DNAT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:4500 to:192.168.1.48:4500
iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
DROP all -- anywhere anywhere state INVALID
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
shlimit tcp -- anywhere anywhere tcp dpt:ssh state NEW
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:https
Chain FORWARD (policy DROP)
target prot opt source destination
all -- anywhere anywhere account: network/netmask: 192.168.1.0/255.255.255.0 name: lan
all -- anywhere anywhere account: network/netmask: 172.16.1.0/255.255.255.0 name: lan1
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
DROP all -- anywhere anywhere state INVALID
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
DROP all -- anywhere anywhere
DROP all -- anywhere anywhere
wanin all -- anywhere anywhere
wanout all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
upnp all -- anywhere anywhere
ACCEPT all -- anywhere SIP-Device
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain shlimit (1 references)
target prot opt source destination
all -- anywhere anywhere recent: SET name: shlimit side: source
DROP all -- anywhere anywhere recent: UPDATE seconds: 60 hit_count: 4 name: shlimit side: source
Chain upnp (1 references)
target prot opt source destination
ACCEPT udp -- anywhere client-1 udp dpt:55355
ACCEPT tcp -- anywhere client-1 tcp dpt:55355
ACCEPT udp -- anywhere client-2 udp dpt:mdns
ACCEPT udp -- anywhere client-2 udp dpt:4500
Chain wanin (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere *Pi* tcp dpt:ssh
Chain wanout (1 references)
target prot opt source destination
노선
(라우터는 WAN 모뎀 뒤에 위치)
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
modem.ip.0.1 * 255.255.255.255 UH 0 0 0 vlan2
192.168.1.0 * 255.255.255.0 U 0 0 0 br0
172.16.1.0 * 255.255.255.0 U 0 0 0 br1
modem.ip.0.0 * 255.255.224.0 U 0 0 0 vlan2
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default modem.ip.0.1 0.0.0.0 UG 0 0 0 vlan2
답변1
라우터와 RaspPi를 모두 동일한 LAN 세그먼트에 연결할 수는 없으며 RaspPi가 다른 클라이언트가 LAN으로 보내는 패킷을 다시 쓸 것이라고 예상할 수는 없습니다. 이것은 FAQ인 것 같습니다. 사람들은 ARP 스푸핑 등을 시도합니다. 그러나 네트워킹은 이런 방식으로 작동하도록 고안되지 않았습니다.
깨끗한 해결책은 모든 것을 넣는 것입니다뒤에RaspPi:
Router --- [eth0] RaspPi [eth1] --- Switch +--- Client1
+--- Client2
+--- Client3
기본적으로 RaspPi를 두 번째 라우터로 작동하려고 합니다. 이는 두 번째 LAN 인터페이스가 필요하다는 것을 의미합니다. 라우터에 DHCP 서버를 설치하고 VPN의 RaspPi에서 NAT를 활성화하면 서브넷을 처리할 수 없으며 모든 설정이 완료됩니다.
대안은 VPN을 활성화하는 것입니다~에라우터 자체(루트 액세스 권한을 얻거나 OpenWRT 등을 플래시할 수 있는 경우)
또 다른 대안은 라우터에서 DHCP 서버를 비활성화하는 것입니다. 그런 다음 RaspPi와 라우터를 동일한 LAN 세그먼트에 연결할 수 있으며 RaspPi에는 LAN 인터페이스가 하나만 필요합니다.