FreeBSD: 인터페이스에 IP 별칭을 추가하면 기본 IP의 네트워크가 중단됩니다.

FreeBSD: 인터페이스에 IP 별칭을 추가하면 기본 IP의 네트워크가 중단됩니다.

내 FreeBSD 컴퓨터의 네트워크 카드에 별칭을 추가하려고 합니다(감옥을 사용하고 싶습니다). 버전 10.2-RELEASE-p7(일반 amd64 커널)을 실행합니다. 해당 머신은 Hyper-V 가상 머신에서 실행 중이었지만 물리적 머신에서도 동일한 상황이 발생했습니다. 유일한 차이점은 동일한 10.2 커널의 x86(32비트) 버전을 실행하고 있다는 점이었습니다.

네트워크 인터페이스 hn0의 고정 IP 주소는 192.168.0.51/24이고 기본 라우터는 192.168.0.1입니다. 별칭을 추가하기 전까지는 모든 것이 잘 작동합니다.

ifconfig hn0 inet 192.168.0.200/32 alias

ifconfig에 표시된 것처럼 hn0에 별칭이 생성됩니다.

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
    options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
    inet6 ::1 prefixlen 128
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
    inet 127.0.0.1 netmask 0xff000000
    nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
hn0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
    options=31b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,TSO4,TSO6>
    ether 00:15:5d:00:0f:00
    inet 192.168.0.51 netmask 0xffffff00 broadcast 192.168.0.255
    inet 192.168.0.200 netmask 0xffffffff broadcast 192.168.0.200
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

문제는 일단 별칭을 설정하면 서브넷 외부의 호스트에 액세스할 수 없다는 것입니다(호스트의 IP 주소를 사용하더라도). 예를 들어 Google 도메인 이름 서버는 다음과 같습니다.

ping 8.8.8.8
ping 8.8.8.8 (8.8.8.8): 56 data bytes

그러나 별칭을 소스로 사용하면 무엇이든 ping할 수 있습니다.

ping -S 192.168.0.200 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 192.168.0.200: 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=56 time=11.137 ms
...

감옥이 시작될 때 Jail(8)에 의해 별칭이 생성된 경우 별칭을 사용하는 감옥에는 네트워크 액세스 권한이 있지만 호스트에는 액세스할 수 없습니다. 별칭을 제거한 후 호스트의 기본 IP에서 네트워크 액세스를 다시 얻으려면 netif 서비스와 라우팅을 다시 시작해야 했습니다.

감옥이 실행 중일 때 IP 별칭을 사용하여 ssh로 접속하거나 핑할 수 있습니다.

외부 노드의 IP를 사용하여 ping을 수행할 수 없다는 사실을 토대로 라우팅에 문제가 있는 것으로 추측합니다. 내 상자가 DNS 서버에 액세스할 수 없기 때문에 이름 확인이 작동하지 않습니다. 별칭을 추가하기 전의 netstat -rn 출력은 다음과 같습니다.

Destination        Gateway            Flags      Netif Expire
default            192.168.0.1        UGS         hn0
127.0.0.1          link#1             UH          lo0
192.168.0.0/24     link#2             U           hn0
192.168.0.51       link#2             UHS         lo0

별칭을 만든 후:

Destination        Gateway            Flags      Netif Expire
default            192.168.0.1        UGS         hn0
127.0.0.1          link#1             UH          lo0
192.168.0.0/24     link#2             U           hn0
192.168.0.51       link#2             UHS         lo0
192.168.0.200      link#2             UHS         lo0
192.168.0.200/32   link#2             U           hn0

IPv6 값을 추가하여 IPv6를 비활성화했기 때문에 생략되었습니다.

ipv6_network_interfaces="none"
ipv6_activate_all_interfaces="NO"

/etc/rc.conf로

저는 네트워크 설정 전문가는 아니지만 감옥과 IP 별칭에 관해 찾을 수 있는 모든 것을 읽었지만 유용한 것을 찾지 못했습니다. 어쩌면 제가 사소한 것을 간과하고 있는 것일 수도 있지만 호스트 시스템의 네트워크 액세스를 방해하는 것이 무엇인지 모르겠습니다.

답변1

넷마스크가 너무 넓습니다. 시도해 보세요.

ifconfig hn0 inet 192.168.0.200/24 alias

별칭은 일반적으로 동일한 네트워크에 있어야 합니다.

관련 정보