更新: netctl
profiles を使用しているため、/etc/network/interfaces
は存在しません。
2つのネットワークアダプターでArchLinuxを実行するVirtualBoxインスタンスを設定しました。 Adapter 1
(eth0
)はNAT(10.0.2.0/24
)にアタッチされ、Adapter 2
(eth1
)はホストのみのネットワーク(192.168.56.0/24
)にあります。私はudev
ルールを使用して古い方法を使用していますこれらのアダプターのeth0
およびeth1
の名前(ただし、enp***
の名前にも問題が存在していました)。
ログオンすると、次のようになります。
$ ip route default via 192.168.56.1 dev eth1 default via 10.0.2.2 dev eth0 proto dhcp src 10.0.2.15 metric 202 10.0.2.0/24 dev eth0 proto dhcp scope link src 10.0.2.15 metric 202 192.168.56.0/24 dev eth1 proto kernel scope link src 192.168.56.31
その結果
$ ping google.com ping:google.com:名前またはサービスが不明です
私が理解しているように、これは192.168.56.1
(ホストのみのインターフェース)がNATインターフェースよりも低いメトリックで追加されているためです。
次に手動で行う場合:
$ Sudo ip route delete default $ ip route default via 10.0.2.2 dev eth0 proto dhcp src 10.0.2.15 metric 202 10.0.2.0/24 dev eth0 proto dhcp scope link src 10.0.2.15 metric 202 192.168.56.0/24 dev eth1 proto kernel scope link src 192.168.56.31
私は得る
$ ping google.com PING google.com(172.217.12.174)56(84)バイトのデータ。 64バイト.... 1e100.net(172.217.12.174)から:icmp_seq = 1 ttl = 52 time = 11.9 ms .... 1e100.net(172.217.12.174)から64バイト:icmp_seq = 2 ttl = 52 time = 11.7 ms ^ C --- google.com ping統計--- 2パケット送信、2受信、0%パケット損失、時間3ms rtt min/avg/max/mdev = 11.698/11.782/11.867 /0.137ミリ秒
したがって、送信トラフィックがeth0
/10.0.2.0/24
(ホストのみのネットワーク)ではなくeth1
/192.168.56.0/24
(ホストへのNATインターフェース)経由でルーティングされるようにするにはどうすればよいですか。
質問は、VirtualBoxに接線的にのみ関連しています(メトリックを変更できるVirtualBox設定があれば、気にしません)。
1)systemdがdefault via 192.168.56.1 dev eth1
ルートを追加しないようにする方法があるはずだと思います。または2)より低いメトリックのdefault via 10.0.2.2 dev eth0
ルートを追加します。これにより、インスタンスを起動するたびにデフォルトルートを手動で削除する必要がなくなります。
まだ検討していない別の回避策があるかもしれません。これまでのところ、名前をいじって、静的IPとDHCPは役に立ちませんでした。
ゲストOSはArchLinuxです。
@ Bobのアドバイス に続いて、ホストオンリーネットワークの静的IPプロファイルがゲートウェイを指定していることが問題であることに気付きました。私はそれを削除し、すべてが思い通りに機能しました。
2つの netctl プロファイルは次のとおりです。
Description='Host only connection'
Interface=eth1
Connection=ethernet
IP=static
Address=('192.168.56.31/24')
DNS=('192.168.1.1')
そして
Description='Internet connection via NAT'
Interface=eth0
Connection=ethernet
IP=dhcp
これは次の結果になります:
$ ip route default via 10.0.2.2 dev eth0 proto dhcp src 10.0.2.15 metric 202 10.0.2.0/24 dev eth0 proto dhcp scope link src 10.0.2.15 metric 202 192.168.56.0/24 dev eth1 protoカーネルスコープリンクsrc 192.168.56.31
それは完璧かもしれないし、そうでないかもしれませんが、私にとってはうまくいきます。
/etc/network/interfaces
ファイルに対応するインターフェースに次の行を追加します。
post-up route del default via 192.168.56.1 dev eth1
インターフェースの起動時にルートdefault via 192.168.56.1 dev eth1
を削除します。