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で接続またはpingできます。

外部ノードの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

エイリアスは通常同じネットワーク上になければなりません。

おすすめ記事