DS-Lite AFTR을 설정하려고 합니다. B4에 대한 터널 연결의 주소가 겹치므로 iptables -t nat -A POSTROUTING -j MASQUERADE
RFC 6333에 설명된 대로 일반 NAT 테이블이 작동(시도)되지 않습니다 . 확장 NAT 테이블에는 B4에서 보낸 패킷의 소스 IPv6 주소도 포함됩니다. 이는 AFTR이 패킷을 전달하는 데 사용할 터널을 알고 있음을 의미합니다.
Linux에서 이 확장을 수행하는 방법은 무엇입니까?
저는 Debian 기반 시스템(Ubuntu 18.04)을 사용하고 있습니다.
AFTR을 사용하여 ip tunnel add dslite mode ip4ip6 local <IPv6 address of AFTR> remote <IPv6 address of B4>
각 터널 인터페이스의 주소가 192.0.0.1/29이고 B4의 터널 인터페이스에 192.0.0.2/29의 주소로 터널을 설정하고 있습니다.
참고: 이 주제에 대한 리소스가 부족하다는 점을 발견했습니다. 이는 유감스러운 일입니다. 이것이 바로 제가 여기에 묻는 이유입니다. 도움을 주시면 감사하겠습니다!
답변1
글쎄요, 이제 해냈습니다. 설정 과정을 안내해 드리겠습니다. 재부팅 후에도 구성의 일부가 유지되었습니다.
먼저 B4 2개, AFTR 1개로 테스트했고 모두 수동으로 시스템을 설정했습니다.
또한 AFTR에는 IPv6 주소가 있고 2000::1
첫 번째 B4에는 해당 주소가 2000::2
있고 두 번째 B4에는 해당 주소가 있다고 가정합니다 2000::3
. AFTR의 WAN 인터페이스 이름은 여기에서 지정됩니다 eth0
.
지금 시작해 보겠습니다.
먼저 AFTR과 B4에 터널을 수동으로 생성했습니다.
AFTR 소개:
root@AFTR:~# ip tunnel add dslite mode ip4ip6 local 2000::1 remote 2000::2
root@AFTR:~# ip tunnel add dslite2 mode ip4ip6 local 2000::1 remote 2000::3
root@AFTR:~# ip link set dslite up; ip link set dslite2 up
root@AFTR:~# ip a add 192.0.0.1/29 dev dslite; ip a add 192.0.0.1/29 dev dslite2
이제 B4에 터널을 구축할 수 있습니다. B4 1호:
root@B4-1:~# ip link set dslite up
root@B4-1:~# ip a add 192.0.0.2/29 dev dslite
root@B4-1:~# ip route add default via 192.0.0.1 dev dslite
B4 2호:
root@B4-2:~# ip link set dslite up
root@B4-2:~# ip a add 192.0.0.2/29 dev dslite
root@B4-2:~# ip route add default via 192.0.0.1 dev dslite
이제 터널이 구성되고 시작되었습니다. 그러나 NAT는 아직 AFTR에 구현되지 않았습니다.
root@AFTR:~# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE (eth0 is the Internet side network card)
root@AFTR:~# echo "1 dslite" >> /etc/iproute2/rt_tables
root@AFTR:~# ip route add default dev dslite table dslite
root@AFTR:~# iptables -t mangle -A PREROUTING -i dslite -j MARK --set-mark 1
root@AFTR:~# iptables -t mangle -A POSTROUTING -j CONNMARK --save-mark
root@AFTR:~# iptables -t mangle -I PREROUTING -j CONNMARK --restore-mark
root@AFTR:~# ip rule add fwmark 1 iif eth0 table dslite
root@AFTR:~# echo "2 dslite2" >> /etc/iproute2/rt_tables
root@AFTR:~# ip route add default dev dslite2 table dslite2
root@AFTR:~# iptables -t mangle -A PREROUTING -i dslite2 -j MARK --set-mark 2
root@AFTR:~# ip rule add fwmark 2 iif eth0 table dslite2
root@AFTR:~# sysctl -w net.ipv4.fwmark_reflect=1
이제 B4는 IPv4(물론 IPv6) 인터넷에 액세스할 수 있습니다. 하지만 그렇다고 해서 서로 연결될 수 있다는 의미는 아닙니다. 실험할 때 이 점을 잊지 마세요.
드디어 해결됐다...