VLAN サブインターフェイスが /etc/network/interfaces ファイル内のブリッジの一部である場合、自動的に作成されます。

VLAN サブインターフェイスが /etc/network/interfaces ファイル内のブリッジの一部である場合、自動的に作成されます。

~によるとDebian ネットワークの設定文書「ブリッジに入れるためにVLANインターフェイスを作成する場合は、VLANインターフェイスを手動で定義する必要はありません。ブリッジを設定するだけで、ブリッジの作成時にVLANインターフェイスが自動的に作成されます。」.次の/etc/network/interfacesファイルがあります。

# The loopback network interface
auto lo
iface lo inet loopback


# mgmt network interface
auto eth0
iface eth0 inet static
        address 10.10.1.182
        netmask 255.255.255.192
        network 10.10.1.128
        broadcast 10.10.1.191
        gateway 10.10.1.190


# VLAN 100
auto br-VLAN-100
iface br-VLAN-100 inet manual
        bridge_ports eth1.100

# VLAN 200
auto br-VLAN-200
iface br-VLAN-200 inet manual
        bridge_ports eth1.200

# VLAN 300
auto br-VLAN-300
iface br-VLAN-300 inet manual
        bridge_ports eth1.300

# VLAN 400
auto br-VLAN-400
iface br-VLAN-400 inet manual
        bridge_ports eth1.400

# VLAN 500
auto br-VLAN-500
iface br-VLAN-500 inet manual
        bridge_ports eth1.500

ただし、システムの起動時にインターフェイスeth1.100、、、eth1.200およびeth1.300インターフェイスeth1.400は自動的に生成されません。これらのインターフェイスを手動で作成する必要がありますか?それともeth1.500ファイル/etc/network/interfacesにバグがありますか?

ベストアンサー1

vlanインターフェイスの設定に必要なバイナリを含むパッケージが見つからない可能性があります。

この問題を解決するには、次の手順を実行します。 apt-get install vlanパッケージbridge-utilsもインストールする必要があります。

長い説明:

vlan次のコマンドを使用して、パッケージ内のスクリプトを表示できます。

root@host:~# dpkg -L vlan
...snip...
/usr/share/doc/vlan/changelog.Debian.gz
/usr/share/doc/vlan/howto.html
/etc
/etc/network
/etc/network/if-post-down.d
/etc/network/if-post-down.d/vlan
/etc/network/if-pre-up.d
/etc/network/if-pre-up.d/vlan
...snip...

vlanパッケージは、te中にVLANインターフェイスを処理するためのいくつかのスクリプトを追加しますifup

eth*.*以下は、802.1q インターフェイスで調べて表示するコードの一部です。vim /etc/network/if-pre-up.d/vlan + 18

  eth*.*|bond*.*|wlan*.*|em*.*|p[0-9]*.*)
    vconfig set_name_type DEV_PLUS_VID_NO_PAD
    VLANID=`echo $IFACE|sed "s/eth[0-9][0-9]*\.0*//g;s/bond[0-9][0-9]*\.0*//g;s/wlan
[0-9][0-9]*\.0*//g;s/em[0-9][0-9]*\.0*//g;s/p[0-9][0-9]*\(p[0-9][0-9]*\)\?\(_[0-9][0
-9]*\)\?\.0*//g"`
    IF_VLAN_RAW_DEVICE=`echo $IFACE|sed "s/\(eth[0-9][0-9]*\)\..*/\1/;s/\(bond[0-9][0-9]*\)\..*/\1/;s/\(wlan[0-9][0-9]*\)\..*/\1/;s/\(em[0-9][0-9]*\)\..*/\1/;s/\(p[0-9][0-9]*\(p[0-9][0-9]*\)\?\(_[0-9][0-9]*\)\?\)\..*/\1/"`
  ;;

しかし、これはDebianが/etc/network/interfaces。 Bridge-utilsパッケージのスクリプト()を見て、dpkg -L bridge-utils興味のあるものを見つけることができます。vim /etc/network/if-pre-up.d/bridge +60

bridge_parse_ports $INTERFACES | while read i
do
  for port in $i
  do
    # We attach and configure each port of the bridge
    if [ "$MODE" = "start" ] && [ ! -d /sys/class/net/$IFACE/brif/$port ]; then
      if [ -x /etc/network/if-pre-up.d/vlan ]; then
        env IFACE=$port /etc/network/if-pre-up.d/vlan
      fi
      if [ "$IF_BRIDGE_HW" ]
      then
         ifconfig $port down; ifconfig $port hw ether $IF_BRIDGE_HW
      fi
      if [ -f /proc/sys/net/ipv6/conf/$port/disable_ipv6 ]
      then
        echo 1 > /proc/sys/net/ipv6/conf/$port/disable_ipv6
      fi
      brctl addif $IFACE $port && ifconfig $port 0.0.0.0 up

ポートがすでにブリッジのメンバーであるかどうかを検出し、を呼び出してVLANインターフェイスであるかどうかを検出しようとします/etc/network/if-pre-up.d/vlan

基本的に何が起こっているのかは、if [ -x /etc/network/if-pre-up.d/vlan ];式が評価されないことです。 」FILEが存在し、実行可能であれば真です。

おすすめ記事