해당 네트워크에 액세스할 수 있는 게이트웨이에 터널을 통해 누락된 네트워크를 제공합니다.

해당 네트워크에 액세스할 수 있는 게이트웨이에 터널을 통해 누락된 네트워크를 제공합니다.

저는 터널링을 처음 접했기 때문에 개념을 오해했거나 초보자의 실수를 저질렀을 수 있습니다. 기존 인프라에 새 SLES15 호스트를 추가하려고 합니다. 로컬 호스트가 액세스할 수 없는 네트워크에 연결을 제공하려고 합니다. 게이트웨이를 통해. 설명을 위해 사진을 참조하세요.

장면을 설명해보세요

모든 호스트를 연결하는 bond0/network가 있습니다. / br0모든 호스트가 네트워크를 사용할 수 있는 것은 아니지만, 태그된 호스트만 네트워크를 사용할 수 있습니다.bond1br1그리고엑스(비슷한 유형의 호스트입니다.)

내 생각은 호스트에서 IPIP 터널을 구성하는 것입니다.그리고16특정한 방법으로16모든 bond1트래픽을 다음으로 전달bond0잠시 지나가 다트래픽이 다음으로 전달될 수 있습니다.엑스bond1(호스트 그룹의 대표자)를 사용합니다 . 반환된 트래픽은 다음에서 발생합니다.엑스도착하다bond1via는 via로 전달 되어야 합니다 .tun16bond016, 그 다음에.

첫 번째 단계로 터널 사이의 터널을 시도했습니다.16그리고이와 같은 설정(여러 노드 포함, 예:16마디각 노드에는 터널과 경로가 필요합니다. 그렇죠? ):

16:~ # ip tunnel add tun1 mode ipip remote 172.20.78.3 dev br0
16:~ # ip addr add 172.20.78.16 dev tun1
16:~ # ip link set up tun1
16:~ # ip route add 172.20.78.0/23 via 172.20.78.3 dev tun1 onlink
16:~ # ip route show
default via 172.20.17.254 dev br0
172.20.16.0/23 dev br0 proto kernel scope link src 172.20.16.16
172.20.78.0/23 via 172.20.78.3 dev tun1 onlink

03:~ # ip tunnel add tun116 mode ipip remote 172.20.16.16 dev bond0
03:~ # ip addr add 10.3.78.16 dev tun116
03:~ # ip link set up tun116
03:~ # ip route add 172.20.78.16 via 172.20.78.16 dev tun116 onlink
03:~ # ip route show
default via 172.20.17.254 dev bond0
10.2.2.0/23 dev bond2 proto kernel scope link src 10.2.2.3
172.20.16.0/23 dev bond0 proto kernel scope link src 172.20.16.3
172.20.78.0/23 dev bond1 proto kernel scope link src 172.20.78.3
172.20.78.16 via 172.20.78.16 dev tun116 onlink
224.0.0.0/4 dev bond0 scope link
03:~ # sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1

핑할 때~에서16나는 이것을 본다:

3:~ # tcpdump -n -p -i tun116
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun116, link-type RAW (Raw IP), capture size 262144 bytes
14:59:29.036354 IP 172.20.78.16 > 172.20.78.3: ICMP echo request, id 21175, seq 13310, length 64
14:59:29.036389 IP 172.20.78.3 > 172.20.78.16: ICMP echo reply, id 21175, seq 13310, length 64
14:59:29.036601 IP 172.20.78.16 > 172.20.78.3: ICMP echo request, id 21175, seq 13310, length 64
14:59:29.036623 IP 172.20.78.3 > 172.20.78.16: ICMP echo reply, id 21175, seq 13310, length 64
14:59:30.060360 IP 172.20.78.16 > 172.20.78.3: ICMP echo request, id 21175, seq 13311, length 64
...
^C
12 packets captured
12 packets received by filter
0 packets dropped by kernel

ping을 시도할 때16~에서,알겠어요:

h03:~ # ping 172.20.78.16
PING 172.20.78.16 (172.20.78.16) 56(84) bytes of data.
From 10.3.78.16 icmp_seq=2 Destination Host Unreachable
From 10.3.78.16 icmp_seq=3 Destination Host Unreachable
^C
--- 172.20.78.16 ping statistics ---
3 packets transmitted, 0 received, +2 errors, 100% packet loss, time 2023ms

16:~ # tcpdump -n -v -p  icmp
tcpdump: listening on br0, link-type EN10MB (Ethernet), capture size 262144 bytes
15:02:47.329812 IP (tos 0xc0, ttl 64, id 6681, offset 0, flags [none], proto ICMP (1), length 132)
    172.20.16.16 > 172.20.16.3: ICMP 172.20.16.16 protocol 4 port 84 unreachable, length 112
        IP (tos 0x0, ttl 64, id 37038, offset 0, flags [DF], proto IPIP (4), length 104)
    172.20.16.3 > 172.20.16.16: IP (tos 0x0, ttl 64, id 53094, offset 0, flags [DF], proto ICMP (1), length 84)
    10.3.78.16 > 172.20.78.16: ICMP echo request, id 12308, seq 1, length 64
15:02:48.331745 IP (tos 0xc0, ttl 64, id 6700, offset 0, flags [none], proto ICMP (1), length 132)
    172.20.16.16 > 172.20.16.3: ICMP 172.20.16.16 protocol 4 port 84 unreachable, length 112
        IP (tos 0x0, ttl 64, id 37051, offset 0, flags [DF], proto IPIP (4), length 104)
    172.20.16.3 > 172.20.16.16: IP (tos 0x0, ttl 64, id 53151, offset 0, flags [DF], proto ICMP (1), length 84)

그래서 패킷은 터널을 통과하지만 응답이 도착하지 않습니다(제 생각에는).

내가 뭔가를 잊어버린 걸까요, 아니면 뭔가 잘못한 걸까요?

관련 정보