
안녕하세요 슈퍼유저 여러분,
내 LAN의 토폴로지는 다음과 같습니다. 핏기 없는-모뎀-라우터-방화벽-Pi 라우터-방화벽-랜 기계.
저는 LAN: bob에서 테스트 머신을 사용합니다.
bob에서 인터넷 사이트에 액세스할 수 없습니다. "대상 호스트에 연결할 수 없습니다"라는 메시지가 나타납니다.
내 경로는 다음과 같습니다.
bob의 경로(익명화):
기본적으로파이 라우터-iface-내부-lan-eth0개발자 eth0 src밥입미터법 202
내부 LAN/24 dev eth0 proto dhcp 범위 링크 src밥입미터법 202
lan-beyond-pi-router(모뎀 + pi-iface-eth1)/24 경유파이 라우터 내부-lan-iface-eth0개발자 eth0
파이 라우터의 경로:
기본적으로파이-라우터-내부-iface-eth0개발자 eth0 src파이-라우터-내부-iface-eth0미터법 202
기본적으로파이 라우터-외부-iface-eth1개발자 eth1 src파이 라우터-외부-iface-eth1미터법 203
내부 LAN/24 dev eth0 proto dhcp 범위 링크 src파이-라우터-내부-iface-eth0미터법 202
lan-beyond-pi-라우터/24 dev eth1 proto dhcp 범위 링크 src파이 라우터-외부-iface-eth1미터법 203
필터와 NAT에는 ufw를 사용합니다. 이것은 내 생각이지만 완전히 확신할 수는 없습니다. 모뎀에서 경유 경로를 구성할 수 없기 때문에 Pi 라우터의 "외부"(eth1) 인터페이스(모뎀 측 인터페이스)에서 NAT를 활성화했습니다. 내 ufw 구성은 다음과 같습니다.
'#
'# 규칙.이전
'#
'# ufw 명령줄이 규칙을 추가하기 전에 실행되어야 하는 규칙입니다. 관습
'# 규칙은 다음 체인 중 하나에 추가되어야 합니다:
'# 입력 전 ufw
'# 출력 전 ufw
'# ufw-앞으로-앞으로
'#
'# nat 테이블 규칙
*낫
:포스트라우팅 수락 - [0:0]
'# eth0에서 eth1로 트래픽을 전달합니다.
-A 포스트라우팅 -s 10.0.0.0/24 -o eth1 -j 마스커레이드
'#개인적인 추가사항인데 잘 모르겠네요
-A 포스트라우팅 -s 192.168.0.0/24 -o eth0 -j 마스커레이드
'# 'COMMIT' 줄을 삭제하지 마세요. 그렇지 않으면 이러한 nat 테이블 규칙이 처리되지 않습니다.
저지르다
'# 이 필수 라인을 삭제하지 마십시오. 그렇지 않으면 오류가 발생합니다
*필터
:ufw-입력 전 - [0:0]
:ufw-출력 전 - [0:0]
:ufw-앞-앞으로 - [0:0]
:ufw-not-local - [0:0]
'# 필수 줄 끝
'# 루프백 시 모두 허용
-A 입력 전 ufw -i lo -j 수락
-A 출력 전 ufw -o lo -j 수락
'# 이미 연결되어 있는 패킷을 빠르게 처리합니다.
-입력 전 ufw -m conntrack --ctstate 관련, 설정됨 -j 수락
-A ufw-before-output -m conntrack --ctstate 관련, 설정됨 -j 수락
-A ufw-before-forward -m conntrack --ctstate 관련, 설정됨 -j 수락
'# 잘못된 패킷을 삭제합니다(로그 수준 중간 이상에 이를 기록합니다).
-A ufw-입력 전 -m conntrack --ctstate INVALID -j ufw-logging-deny
-A ufw-before-input -m conntrack --ctstate INVALID -j DROP
'# INPUT에 대한 ICMP 코드 확인
-A ufw-입력 전 -p icmp --icmp-type 대상에 연결할 수 없음 -j ACCEPT
-A ufw-입력 전 -p icmp --icmp-type 시간 초과 -j ACCEPT
-A ufw-입력 전 -p icmp --icmp-type 매개변수 문제 -j ACCEPT
-A ufw-입력 전 -p icmp --icmp-type 에코 요청 -j ACCEPT
'# OK FORWARD에 대한 icmp 코드 -A ufw-before-forward -p icmp --icmp-type Destination-unreachable -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type 시간 초과 -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type 매개변수-문제 -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type echo-request -j 수락
'# DHCP 클라이언트가 작동하도록 허용합니다.
-A ufw-입력 전 -p udp --sport 67 --dport 68 -j 수락
'#
'# ufw-로컬이 아님
'#
-입력 전 ufw -j ufw-not-local
'# 로컬이면 반환
-A ufw-not-local -m addrtype --dst-type LOCAL -j RETURN
'# 멀티캐스트인 경우 반환
-A ufw-not-local -m addrtype --dst-type MULTICAST -j RETURN
'# 방송되면 반환
-A ufw-not-local -m addrtype --dst-type BROADCAST -j RETURN
'# 로컬이 아닌 다른 모든 패킷은 삭제됩니다.
-A ufw-not-local -m 제한 --limit 3/min --limit-burst 10 -j ufw-logging-deny
-A ufw-not-local -j DROP
'# 서비스 검색을 위해 MULTICAST mDNS를 허용합니다(위의 MULTICAST 줄을 확인하세요).
'#은 주석 처리되지 않음) -A ufw-before-input -p udp -d 224.0.0.251 --dport 5353 -j ACCEPT
'# 서비스 검색을 위해 MULTICAST UPnP를 허용합니다(위의 MULTICAST 줄을 확인하세요).
'#은 주석 처리되지 않았습니다)
-A 입력 전 ufw -p udp -d 239.255.255.250 --dport 1900 -j 수락
저지르다
이제 bob에서 모뎀을 ping할 수 있지만 인터넷에 제대로 액세스할 수 없습니다. Thougb 인터넷 DNS가 작동합니다.
WAN 서버에 연결하려고 하면 "대상 호스트에 연결할 수 없습니다"라는 메시지가 나타납니다. 내 구성 어딘가에 문제가 있거나 뭔가 부족한 것 같습니다.
모뎀에서 뭔가를 구성해야 할 수도 있지만 지금은 그렇지 않습니다. 하지만 아니요, 테스트를 수행했을 때 동일한 스위치에 두 개의 iface가 있는 스위치에 Pi 라우터를 연결했는데 어느 시점에서 네트워크에 액세스할 수 있었고 모든 것이 작동했습니다. 이러한 테스트를 마친 후 Pi를 모뎀 옆의 최종 위치에 연결했습니다. 이제 머신 bob에서 WAN에 도달하는 경로는 스위치, 두 개의 CPL, 파이 라우터, 모뎀을 통과합니다.
귀하의 통찰력에 진심으로 감사드립니다 :-)
/cr!?ptal
답변1
파이 라우터에 새 경로를 추가했는데 작동합니다!
sudo ip 추가 경로 기본 경로모뎀 라우터 IP/24 dev eth1.
그리고:
sudo su
ufw 비활성화 && ufw 활성화
게다가 이 사용자 정의 경로를 지속되게 만들기 위해 /etc/dhcpcd.exit-hook에 추가했습니다.
미션 성공했어요 :-)