FreeBSD 11で10GbE ネットワークカードを使うでFreeBSDでQLE3440-SR(QLogic NetXtreme II/BCM 57840)という10GbE ネットワークカードを使う話を書きました。
http://www.sakashita-net.jp/2017/07/freebsd-1110gbe.html
このネットワークインターフェイスに複数のアドレスを設定しようとしたときに、少し困ったのでそのようすを紹介します。
以前の1GbEのネットワークインターフェイス(bge0)では/etc/rc.confに以下にように設定して、うまくいっていました。
ifconfig_bge0="inet 172.40.0.10 netmask 255.255.0.0"これと同じように10GbEのネットワークインターフェイス(bxe0)でも設定してみました。
ifconfig_bge0_aliases="\
inet 172.40.0.11 netmask 255.255.0.0 \
inet 172.40.0.12 netmask 255.255.0.0 \
inet 172.40.0.13 netmask 255.255.0.0"
defaultrouter="172.40.0.1"
ifconfig_bxe0="inet 172.40.0.10 netmask 255.255.0.0"すると、172.40.0.11〜172.40.0.13のアドレスだけが設定され、172.40.0.10は設定されません。そこで、以下のようにするとうまくいきます。
ifconfig_bxe0_aliases="\
inet 172.40.0.11 netmask 255.255.0.0 \
inet 172.40.0.12 netmask 255.255.0.0 \
inet 172.40.0.13 netmask 255.255.0.0"
defaultrouter="172.40.0.1"
ifconfig_bxe0_aliases="\rc.confファイルの眺めていると、原因がわかりました。この設定の先で、
inet 172.40.0.10 netmask 255.255.0.0 \
inet 172.40.0.11 netmask 255.255.0.0 \
inet 172.40.0.12 netmask 255.255.0.0 \
inet 172.40.0.13 netmask 255.255.0.0"
defaultrouter="172.40.0.1"
ifconfig_bxe0_ipv6="inet6 accept_rtadv"と書くべきところを
ifconfig_bxe0="inet6 accept_rtadv"と書いてしまっていました(_ipv6が抜けてしまっていた)。そのため、最初に書いた
ifconfig_bxe0="inet 172.40.0.10 netmask 255.255.0.0"の設定が失われてしまうようです。
FreeBSDのrc.confは、書きやすい反面、間違ったことを書いた場合の原因究明が難しく感じます。