PPPoE를 통해 인터넷 연결을 설정하기 위해 Linksys 라우터 ( / 24 서브넷 내부의 IP 192.168.1.1 )가 ADSL 모뎀 ( / 24 서브넷 내부의 IP 10.0.0.138 )에 연결되어 있습니다. 라우터에 연결된 PC 중 하나에서 모뎀의 웹 인터페이스에 액세스하려면 라우터에서 다음 명령을 실행해야합니다.
ip addr add 10.0.0.1/24 dev vlan1 brd +
iptables -I POSTROUTING -t nat -o vlan1 -d 10.0.0.138 -j MASQUERADE
내가 알기로는 라우터가 IP 10.0.0.138을 자체 192.168.1.0/24 서브넷의 일부가 아니기 때문에 외부 주소로 가정하기 때문에 이것이 필요합니다.
그러나이 두 줄은 정확히 무엇을하고 있습니까? 첫 번째는 vlan1 인터페이스 (기본적으로 라우터의 WAN 포트)에 두 번째 IP 주소를 할당하는 것 같습니다. 두 번째는 발신 IP 패킷의 소스 주소를 수정합니다. 그러나 기본적으로 홈 라우터가 정확히 무엇입니까? 를 사용하여 iptables -t nat -L
이미 규칙이 있음을 발견했습니다.
target prot opt source destination
MASQUERADE all -- anywhere anywhere
이제 두 번째 명령은
MASQUERADE all -- anywhere 10.0.0.138
이 표에 있지만, 이것은 위의 규칙의 더 구체적인 버전이 아니므로 중복되지 않습니까?
누군가 여기에 무슨 일이 일어나고 있는지에 대한 세부 사항을 설명 할 수 있다면 좋을 것입니다!
출력 ip route
:
87.186.225.71 dev ppp0 프로토 커널 범위 링크 src [my public IP] 10.0.0.0/24 dev vlan1 프로토 커널 범위 링크 src 10.0.0.1 192.168.1.0/24 dev br0 프로토 커널 범위 링크 src 192.168.1.1 127.0.0.0/8 개발 범위 링크 87.186.225.71 dev ppp0을 통한 기본값
출력 ip addr
:
1 : Lo : MTU 16436 큐 디스크 Noqueue 링크 / 루프백 00 : 00 : 00 : 00 : 00 : 00 brd 00 : 00 : 00 : 00 : 00 : 00 inet 127.0.0.1/8 brd 127.255.255.255 범위 호스트 lo 2 : eth0 : mtu 1500 qdisc pfifo_fast qlen 1000 링크 / 에테르 00 : 13 : 10 : 2f : fe : 48 brd ff : ff : ff : ff : ff : ff 3 : eth1 : mtu 1500 qdisc pfifo_fast qlen 1000 링크 / 에테르 00 : 13 : 10 : 2f : fe : 4a brd ff : ff : ff : ff : ff : ff 4 : vlan0 : MTU 1500 큐 디스크 Noqueue 링크 / 에테르 00 : 13 : 10 : 2f : fe : 48 brd ff : ff : ff : ff : ff : ff 5 : vlan1 : mtu 1500 qdisc noqueue 링크 / 에테르 00 : 13 : 10 : 2f : fe : 49 brd ff : ff : ff : ff : ff : ff inet 10.0.0.1/24 brd 10.0.0.255 범위 글로벌 VLAN1 6 : BR0 : MTU 1500 큐 디스크 Noqueue 링크 / 에테르 00 : 13 : 10 : 2f : fe : 48 brd ff : ff : ff : ff : ff : ff inet 192.168.1.1/24 brd 192.168.1.255 스코프 글로벌 br0 ... 23 : ppp0 : mtu 1492 qdisc pfifo_fast qlen 3 링크 / ppp inet [내 공개 IP] 피어 87.186.225.71/32 brd [내 공개 IP] 범위 글로벌 ppp0
모뎀이
—
BatchyX
10/24
LAN 포트를 통해 라우팅 된 서브넷 만으로 구성 되어있을 수 있으므로의 소스 주소로 라우터에 액세스 192.168.1.0/24
하려고하면 응답을 해당 WAN 포트로 라우팅하거나 패킷을 버릴 수 있습니다. 인터넷에 액세스하는 것을 제외하고, 라우터는 이미 10/24
범위 내에있는 주소를 가지고 있기 때문에 조금 이상합니다. 이 MASQUERADE
규칙은 언뜻보기에는 불필요 해 보이지만 iptables -L
큰 차이를 만들 수있는 몇 가지 옵션을 숨기는 것으로 알려져 있습니다.
나는 어느 쪽도 포함하지 않는 수정 된 토마토 펌웨어를 실행하는거야
—
ph4nt0m
routel
도 iptables-save
죄송합니다. 10.0.0.0/24
PPPoE가 IP 계층 아래에 있으므로 IP를 사용하지 않기 때문에 라우터 에 인터넷에 액세스 할 수 있는 모뎀 범위 의 IP가 이미 있다고 생각 하지 않습니다. 설명하려고하는 이 링크 를 찾았습니다 . 아직 확실하지 않은 것은 현재 여러 개의 IP ( 및 ) 가 있으므로 MASQERADE
규칙에 의해 어떤 IP가 발신 패킷으로 복사되는지 입니다. vlan1
192.168.1.1
10.0.0.1
분명히
—
BatchyX
MASQUERADE
서브넷에 다음 홉의 주소가 포함 된 주소 또는 이와 유사한 주소를 선택하십시오 (원하는 소스 주소를 선택하지 않는 이유는 확실하지 않습니다). 그래서 의미 10.1
합니다 10/24
. 를 routel
사용할 수없는 경우 ip rule
및 의 출력을 표시하십시오 ip route
. 또한의 출력을 보여줍니다 iptables -t nat -S
및 iptables -S
교체iptables-save
불행히도,
—
ph4nt0m
ip rule
작동하지 않으며의 -S
주장을 iptables
알 수 없습니다. 펌웨어에는 iptables v1.3.8이 포함되어 있습니다. 아마 적어도 ip route
및 ip addr
어떤 도움이되지, 그래서 주요 포스트에 출력을 추가했다.
ip addr
,routel
하고iptables-save
.