현재 네트워크를 중심으로 공용 네트워크를 전달합니다.

현재 네트워크를 중심으로 공용 네트워크를 전달합니다.

이 논의를 위해 저는 두 개의 네트워크 카드가 있는 최신 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나는 networkdnic init/setup을 선호하며, 이를 달성하려면 연결된 Linux 상자에서 가상 NIC 한두 개를 시작해야 한다는 것을 알고 있지만 세부 사항은 잘 모르겠습니다.

누구든지 이 문제를 해결하도록 도와줄 수 있나요? 나는 패킷 필터와 유사한 것들에 대해 매우 익숙하지 않습니다.

p.s. 이 질문의 제목이 거의 마음에 들지 않습니다. 누구든지 더 간결하고 설명적인 질문을 생각해 주시면 감사하겠습니다.

차이가 있다면 다음과 같이 할 수도 있습니다.

-----        \   router   /
box  \        \ ________ /
---- |        /          \
eth0 [========] wan port |
---- |        |          |
eth1 [========] lan port [=======\subnet
____ /        \ ________ /

... 게다가무선 네트워크 0인터넷의 기원. 그래서 리트윗하면 될 줄 알았는데(또는 브리지?)사이의 모든 트래픽무선 네트워크 0그리고이더넷 0대부분의 의도와 목적에 따라 일일 트래픽을 모두 라우팅할 때 이 두 가지를 완전히 무시하세요.이더넷 1. 나는 단지 내 목표를 달성하는 데 충분한 것을 정말로 이해하지 못하거나 다른 어떤 것도 iptables하지 못합니다. nftables도와주세요.

답변1

귀하가 설명하는 구성이 없기 때문에 반드시 대답이 보장되는 것은 아닙니다.

필요하다

  1. 호스팅된 서브넷 또는 Linux/호스트 컴퓨터("LMC")의 모든 인터넷 아웃바운드 트래픽은 SNAT 또는 MASQUERADE를 사용하여 wlan0을 통해 인터넷으로 전달됩니다.
  2. SNAT 또는 MASQUERADE(위)에서 생성된 연결 추적을 사용하여 인터넷 아웃바운드 트래픽의 일부로 모든 인터넷 인바운드 트래픽을 직접 전달합니다.
  3. LMC의 모든 서브넷 아웃바운드 트래픽은 직접 이동됩니다.
  4. 알려지지 않은 모든 인터넷 인바운드 트래픽은 "신뢰할 수 있는 방화벽" 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/라우팅해야 할 수도 있습니다.

관련 정보