나는 리눅스 박스를 가지고 있습니다. 두 개의 인터페이스(eth0, eth1)가 있습니다.
eth0은 위쪽 연결이고 eth1은 아래쪽 연결입니다.
eth0, eth1은 각 스위치(s/w0, s/w1)에 연결되어 있습니다.
s/w0은 인터넷에 연결되어 있고 s/w1은 노트북에 연결되어 있습니다.
나는 eth0, eth1이 브리지처럼 양방향으로 전달되기를 원합니다.
하지만 brctl을 사용하지 말고 iptable만 사용하세요.
따라서 iptables 규칙 세트가 정확하다면 노트북은 인터넷을 사용할 수 있어야 합니다.
이 규칙을 시도했지만 작동하지 않습니다.
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
도움을 주시면 감사하겠습니다.
편집하다.
내 네트워크는 아래와 같습니다.
internet - router - switch0 - eth0:linuxBox:eth1 - switch1 - laptop
아래와 같이 brctl을 사용하여 브리징을 하면 노트북에서 인터넷을 사용할 수 있습니다.
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
brctl stp br0 off
ifconfig br0 up
내 목표는 brctl을 대체할 iptables 규칙을 만드는 것입니다.
답변1
원하는 것을 지정해야합니다. 브리지는 NAT를 지원하지 않으며 브리지가 작동하면 인터넷이 이더넷처럼 작동하지 않습니다.
Nat을 사용하여 인터넷 게이트웨이를 갖고 Linux 상자의 IP 라우팅 테이블을 기반으로 패킷을 전달하려는 경우 iptables 라우팅이 꽤 좋아 보입니다. 머신에서 IP 전달이 활성화되어 있고 랩탑의 기본 게이트웨이가 Linux 머신의 eth1 주소로 설정되어 있는지 확인하기만 하면 됩니다.
따라서 업데이트 후에는 브리지가 필요하지 않습니다. 게이트웨이이면 충분합니다.
1. Linux 상자의 인터페이스가 다른 서브넷에 있는지 확인하십시오. 또는 게이트웨이 인터넷 라우터의 라우팅 테이블에 eth0에 기본 경로가 있고 로컬 네트워크(예: 노트북이 있는 곳)에 대한 기타 트래픽이 eth1로 전송되는지 확인하세요.
2. IP가 eth1과 동일한 네트워크에 있고 기본 라우터가 인터페이스 주소(eth1인 경우)로 설정되어 있는 랩톱에 고정 IP를 구성합니다. 또는 동일한 목적을 달성하기 위해 Linux 시스템에서 DHCP 서버를 구성하십시오.
3. Linux 시스템에서 IP 전달이 활성화되어 있는지 확인하십시오.
답변2
당신은 시도 할 수 있습니다
iptables –t nat –A POSTROUTING –o eth0 –j MASQUERADE
iptables –A FORWARD –i eth0 –o eth1 –m state --state RELATED,ESTABLISHED –j ACCEPT
iptables –A FORWARD –i eth1 –o eth0 –j ACCEPT
그런 다음 IP 테이블 규칙을 저장하십시오.
iptables-save
iptables-save > /etc/sysconfig/iptables
systemctl restart iptables.service
그런 다음 iptables 파일을 열고 규칙을 편집하여 이러한 규칙을 거부 규칙 위로 이동합니다.
iptables –A FORWARD –i eth0 –o eth1 –m state --state RELATED,ESTABLISHED –j ACCEPT
iptables –A FORWARD –i eth1 –o eth0 –j ACCEPT
A FORWARD -o vibr0 -j REJECT --reject-with icmp-port-unreachable
A FORWARD -i vibr0 -j REJECT --reject-with icmp-port-unreachable