IPv6 사용자 정의 루프백 주소 및 다른 호스트에서 핑

IPv6 사용자 정의 루프백 주소 및 다른 호스트에서 핑

호스트 A의 루프백 인터페이스에 사용자 지정 IPv6 주소를 추가하고 호스트 B에서 핑할 수 있습니까?

::ffff:5:4:3:2그러나 나는 이와 같은 것을 추가하려고 시도했지만 ip -6 route이 대상은 unreachable에 있지만 error 101호스트 A에서 ping할 수 있다고 말합니다. 예를 들어 이 주소를 에 설정하면 tap0경로에 도달할 수 있지만 호스트 B에서는 여전히 "ping할 수 없습니다". 루프백이 허용하는 주소, 사용자 정의에 연결할 수 없는 이유, 호스트 A에서 핑할 수 있는 이유, IPv6 활성화 방법 route_localnet을 이해할 수 없습니다.rp_filter

OS: ArchLinux, 커널 4.10.

IPv4에 대해 수행하는 방법을 알고 있지만 IPv6은 완전히 다르게 작동합니다.

답변1

예. IPv4를 사용하여 이를 수행할 수 있는 것과 마찬가지로 이를 라우팅이라고 합니다. 한 호스트에게 다른 호스트에 연결하는 방법을 알려주어야 합니다.

두 명의 호스트 A와 B가 있다고 가정해 보겠습니다.

호스트 A에는 기본 루프백 주소 ::1와 루프백 인터페이스의 사용자 정의 주소가 있습니다. (제 예에서는 사용자 정의 주소가 될 것입니다 fd56:dcaa:2099::1. 저는 이것을 고유한 로컬 주소에서 선택했습니다.ULA 주소 사용이와 같은 목적으로.)

호스트 A에는 이더넷 인터페이스도 있습니다. 이를 이라고 부르겠습니다 eth0. IPv6에서는 IPv6 링크 로컬 주소를 갖습니다. 다른 IPv6 주소가 있을 수 있습니다. 를 실행하여 이를 찾을 수 있습니다 ip -6 addr eth0. 내 시스템의 예는 다음과 같습니다.

$ ip -6 addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 2601:404:ce00:adc0:9d6c:9e16:a9a9:b03b/64 scope global temporary dynamic 
       valid_lft 593594sec preferred_lft 74600sec
    inet6 2601:404:ce00:adc0:bc87:129a:ed5d:814/64 scope global temporary deprecated dynamic 
       valid_lft 78769sec preferred_lft 0sec                                                                                                                                                                                      
    inet6 2601:404:ce00:adc0:1453:3734:6742:4500/64 scope global mngtmpaddr noprefixroute dynamic                                                                                                                                 
       valid_lft 2591820sec preferred_lft 604620sec                                                                                                                                                                               
    inet6 fe80::5520:a68f:5416:a68c/64 scope link                                                                                                                                                                                 
       valid_lft forever preferred_lft forever

해당 목록에는 4개의 서로 다른 주소가 있습니다(더 있을 수도 있음). 우리의 목적을 위해서는 그 뒤에 "scope link"라고 적힌 것이 필요합니다. 내 시스템에서(그리고 내 예에서도 마찬가지) 그것은 fe80::5520:a68f:5416:a68c.

호스트 B에는 인터페이스도 있습니다 eth0. 호스트 B가 호스트 A의 특수 루프백 주소에 도달하도록 허용하려면 호스트 B는 이를 어디서 찾을 수 있는지 알아야 합니다. 호스트 B의 라우팅 테이블에 항목을 추가하면 됩니다.

# ip route add fd56:dcaa:2099::1 via fe80::5520:a68f:5416:a68c dev eth0

우리가 하고 있는 일은 호스트 B의 커널에게 (인터페이스에 있는 호스트 A의 링크 로컬 주소 fd56:dcaa:2099::1)에서 (루프백 인터페이스에 있는 호스트 A의 특수 주소 ) 에 도달할 수 있지만 호스트 B는fe80::5520:a68f:5416:a68ceth0fe80::5520:a68f:5416:a68c호스트 B의 eth0상호 작용. (링크-로컬 주소에 대한 까다로운 점은 다음과 같습니다. 주소 자체는 지정된 네트워크 세그먼트의 컨텍스트에서만 의미가 있습니다. 자세한 내용은 OSI 네트워킹 모델을 연구하십시오.)

호스트 B의 라우팅 테이블에 해당 항목이 있으면 호스트 B에서 호스트 A의 사용자 정의 주소를 ping할 수 있어야 합니다. 이제 호스트 B는 호스트 A의 링크 로컬 주소를 해당 주소에 도달하기 위한 라우터로 사용하는 것을 알고 있기 때문입니다.

답변2

루프백 주소와 인터페이스는 단일 호스트에 사용되기 때문입니다. 다른 장치와 통신하기 위한 것이 아닙니다.

관련 정보