이 논의를 위해 저는 두 개의 네트워크 카드가 있는 최신 Always-On Linux 상자를 가지고 있습니다.
- 무선 네트워크 0
- 이더넷 0
내가 원하는 구성의 대략적인 다이어그램은 다음과 같습니다.
(----------------------------)
| linux/main computer |
| |
----------- / ~ ~ ~ ~ ~ \ ------- -------|
| internet |-- ~ wifi ~ --| wifi0 |------------| eth0 |======)
----------- \ ~ ~ ~ ~ ~ / ------- -------| |
| | |
(----------------------------) |
\ subnet / |
\ wifi / |
------------ |
| dd-wrt |=================================================)
| router |====\ subnet
| |====\ subnet
------------
이더넷 0내가 신뢰하고 모든 일반 트래픽에 선호해야 하는 네트워크 인터페이스 카드인 사전 구성된 방화벽 게이트웨이가 있는 라우터에 연결됩니다.
문제는 내가 신뢰하는 방화벽 게이트웨이가 더 이상 게이트웨이가 아니라는 것입니다. 인터넷에 연결되어 있지 않습니다.
대신 내 인터넷 액세스는 다음에서 제공됩니다.무선 네트워크 0. 나는 벽을 원한다무선 네트워크 0, 모든 트래픽을 신뢰할 수 있는 게이트웨이로 전달이더넷 0, 내 라우터/게이트웨이에서 주로 관리되는 내 로컬 서브넷을 유지할 수 있습니다.
그래서 기본적으로 구성 방법을 찾고 있습니다.무선 네트워크 0들어오는 모든 트래픽을 수락하고 즉시 통과시킵니다.이더넷 0내 라우터로. 로컬 서브넷에 바인딩되지 않은 모든 나가는 트래픽이 직접 통과하기를 원합니다.무선 네트워크 0하지만 모든 서브넷 트래픽은 내 로컬 라우터에서 처리됩니다.모두나가는 트래픽 - 내 라우터 또는 인터넷에 연결된 컴퓨터에서냇같은 주소에서 오는 것 같네요.
iptables
이는 가능해야 하며 현재 패키지에 포함된 도구 및/또는 도구만 사용하여 이를 수행하고 싶습니다 . iproute2
나는 networkd
nic init/setup을 선호하며, 이를 달성하려면 연결된 Linux 상자에서 가상 NIC 한두 개를 시작해야 한다는 것을 알고 있지만 세부 사항은 잘 모르겠습니다.
누구든지 이 문제를 해결하도록 도와줄 수 있나요? 나는 패킷 필터와 유사한 것들에 대해 매우 익숙하지 않습니다.
p.s. 이 질문의 제목이 거의 마음에 들지 않습니다. 누구든지 더 간결하고 설명적인 질문을 생각해 주시면 감사하겠습니다.
차이가 있다면 다음과 같이 할 수도 있습니다.
----- \ router /
box \ \ ________ /
---- | / \
eth0 [========] wan port |
---- | | |
eth1 [========] lan port [=======\subnet
____ / \ ________ /
... 게다가무선 네트워크 0인터넷의 기원. 그래서 리트윗하면 될 줄 알았는데(또는 브리지?)사이의 모든 트래픽무선 네트워크 0그리고이더넷 0대부분의 의도와 목적에 따라 일일 트래픽을 모두 라우팅할 때 이 두 가지를 완전히 무시하세요.이더넷 1. 나는 단지 내 목표를 달성하는 데 충분한 것을 정말로 이해하지 못하거나 다른 어떤 것도 iptables
하지 못합니다. nftables
도와주세요.
답변1
귀하가 설명하는 구성이 없기 때문에 반드시 대답이 보장되는 것은 아닙니다.
필요하다
- 호스팅된 서브넷 또는 Linux/호스트 컴퓨터("LMC")의 모든 인터넷 아웃바운드 트래픽은 SNAT 또는 MASQUERADE를 사용하여 wlan0을 통해 인터넷으로 전달됩니다.
- SNAT 또는 MASQUERADE(위)에서 생성된 연결 추적을 사용하여 인터넷 아웃바운드 트래픽의 일부로 모든 인터넷 인바운드 트래픽을 직접 전달합니다.
- LMC의 모든 서브넷 아웃바운드 트래픽은 직접 이동됩니다.
- 알려지지 않은 모든 인터넷 인바운드 트래픽은 "신뢰할 수 있는 방화벽" DD-WRT(192.168.1.253에 있다고 가정)로 라우팅됩니다.
나는 우리가 이것을 할 수 있을 것이라고 믿는다 iptables
.
# Shortcuts
filter() { iptables -t filter "$@"; }
nat() { iptables -t nat "$@"; }
# Set the policy for INPUT and FORWARDING to DROP, OUTPUT to ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Empty all chains (erase all rules)
iptables -Z
# Enable forwarding
echo 1> net.ipv4.ip_forward
# SNAT outbound traffic on wlan0 (we will use MASQUERADE)
nat -A POSTROUTING -o wlan0 -j MASQUERADE
# Accept return traffic for our own outbound connections
filter -A INPUT -i wlan0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Forward all unknown inbound traffic to DD-WRT box, eg 192.168.1.253
nat -A PREROUTING -i wlan0 -j DNAT --to-destination 192.168.1.253
이제 "LMC"가 DD-WRT에 도달하는 방법을 알고 DD-WRT의 기본 경로가 "LMC"가 되도록 라우팅 테이블을 설정하십시오. 실제로 네트워크의 모든 항목에는 기본 경로로 "LMC"가 있어야 합니다. "LMC" 자체에는 ISP 업스트림이 기본 경로로 있어야 합니다.
특정 정보가 필요한 경우 몇 가지(예시) IP 주소 및 게이트웨이를 제공하십시오.
경고 한마디: 귀하의 질문에 명시된 대로 이것이 가능한지 확실하지 않습니다. DD-WRT를 통해 모든 트래픽("LMC"의 아웃바운드 트래픽 포함)을 NAT/라우팅해야 할 수도 있습니다.