web-dev-qa-db-ja.com

IPを取得するためにmacvlanインターフェースを構成する方法は?

私は4.4カーネルのubuntu16.04を使用しています。 macvlanインターフェースを立ち上げる方法を試していましたが、まだ成功していません。これらは、インターフェイスを作成して起動するために使用した手順です。

  1. ip link add mymacvlan1 link wlan0 type macvlan mode bridge
  2. ifconfig mymacvlan1 192.168.1.56 up
  3. route add default gw 192.168.1.1 mymacvlan1

3番目のコマンドを入力した瞬間、wifi接続がオフになります。何が起こっているのかわかりません。また、ステップ(1)の後、ifconfig mymacvlan1 upそしてdhclient mymacvlan1、それはただそこでフリーズします。 macvlanインターフェイスがDHCPからIPを自動的に取得するようにするにはどうすればよいですか?

助けていただければ幸いです。ありがとう!

5
soupybionics

Macvlanは、ワイヤレスインターフェイスで動作するようには構築されていません。その理由は、すべてのAPが、認証されなかったMACアドレスから発信されたフレームを拒否するのに対し、macvlanの要点は、物理インターフェイスとは異なる独自のMACアドレスを新しいサブインターフェイスに提供することです。したがって、macvlanインターフェイスでデフォルトゲートウェイを有効にしようとすると、wlan0インターフェイスで元のゲートウェイが自動的に破棄されるのは当然のことです(ルールを覚えておいてください:one default gateway per routing table only)、接続がないままになります。

この問題を回避するには、代わりに ipvlan を使用する必要があります。これは、物理インターフェイスのMACアドレスを使用します。 ここ 設定方法の詳細な例があります。私が思うに、この例はあなたにぴったりです。

Wi-Fiインターフェースがwlan0と呼ばれていると仮定して、次のように使用します。

ip link add link wlan0 ipvl0 type ipvlan mode l2
ip link set dev ipvl0 up
ip addr add 192.168.73.201/24 dev ipvl0

(私のLANは192.168.73.0/24です。必要に応じて変更して、ケースに合わせてください)。また、デフォルトゲートウェイを変更して、古い物理インターフェイスではなく、新しい仮想インターフェイスでアクセスできるようにすることもできます。

ip route del default
ip route add default via 192.168.73.1 dev ipvl0 src 192.168.73.201 metric 1

唯一の注目すべきコメントは、私がモードL2を使用したことです:ipvlansには3つの動作モードがありますL2、L3、L3S(一般的に2つのモードがあると言われていることを気にしないでください。L3に似ていますがの操作が可能なL3Sもありますiptables/conntrack)。 L2とL3の違いは、L2を使用すると、仮想インターフェイスを物理インターフェイスとブリッジできることです。つまり、物理インターフェイスと同じサブネットにアドレスを設定できますandL2トラフィックは正しく中継されます。代わりに、L3モードはL2トラフィックを中継しませんnotし、IPv4ルーターとして構成する必要があります:異なるサブネット、ルートを設定する必要があるなど。ほとんどの場合、価値よりも面倒です。

ちなみに、基盤となるワイヤレスインターフェースを持つことは、ほぼのみの合理的な使用法ですmacvlansの代わりにipvlansの場合。それ以外の場合は、macvlansに固執するだけです。

12
MariusMatutiae