web-dev-qa-db-ja.com

kvmとネットワークブリッジでのネットワークインターフェース/ dhcpの問題ubuntu

12.10を実行しているubuntuシステムがあります

KVMを使用していて、nat転送を使用している仮想マシンのブリッジを構成しました。接続が定期的にドロップアウトする問題が発生している場合があります。接続が数日間維持される場合もあります。分。

問題を解決するためにブリッジを無効にしましたが、それでも発生します。手動のdhcpリリースを実行して更新しようとしましたが、これは時々機能します。新しいIPが取得され、再び離れてしまいますが、ifconfigを実行してもIPが更新されないことに気付きました。またはkvm接続設定で。

/ etc/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

#auto br0
#iface br0 inet dhcp
#    bridge_ports eth0
#    bridge_stp off
#    bridge_fd 0
#    bridge_maxwait 0

ifconfig

eth0      Link encap:Ethernet  HWaddr 38:60:77:aa:aa:aa  
      inet addr:10.0.0.137  Bcast:10.0.0.255  Mask:255.255.255.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:52068 errors:0 dropped:0 overruns:0 frame:0
      TX packets:10900 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:12322071 (12.3 MB)  TX bytes:2494188 (2.4 MB)

lo        Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      UP LOOPBACK RUNNING  MTU:16436  Metric:1
      RX packets:2651 errors:0 dropped:0 overruns:0 frame:0
      TX packets:2651 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:402096 (402.0 KB)  TX bytes:402096 (402.0 KB)

virbr0    Link encap:Ethernet  HWaddr f6:94:09:8f:7b:b5  
      inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
      UP BROADCAST MULTICAST  MTU:1500  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Sudo dhcpclient -r -v

Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/virbr0/f6:94:09:8f:7b:b5
Sending on   LPF/virbr0/f6:94:09:8f:7b:b5
Listening on LPF/eth0/38:60:77:aa:aa:aa
Sending on   LPF/eth0/38:60:77:aa:aa:aa
Sending on   Socket/fallback
DHCPRELEASE on eth0 to 10.0.0.254 port 67

Sudo dhcpclient -v

Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/virbr0/f6:94:09:8f:7b:b5
Sending on   LPF/virbr0/f6:94:09:8f:7b:b5
Sending on   Socket/fallback
DHCPDISCOVER on virbr0 to 255.255.255.255 port 67 interval 3
DHCPDISCOVER on virbr0 to 255.255.255.255 port 67 interval 5
DHCPDISCOVER on virbr0 to 255.255.255.255 port 67 interval 9
DHCPDISCOVER on virbr0 to 255.255.255.255 port 67 interval 15

現時点では、この状態から回復する唯一の方法は、ネットワークケーブルを抜いて再起動することです。

[〜#〜]更新[〜#〜]

接続が切断されたとき、最初にアドレスを削除せずにSudo dhclient -vを実行することに成功しました。

dhclient -v

Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/virbr0/96:a2:d6:f5:30:fc
Sending on   LPF/virbr0/96:a2:d6:f5:30:fc
Listening on LPF/eth0/38:60:77:aa:aa:aa
Sending on   LPF/eth0/38:60:77:aa:aa:aa
Sending on   Socket/fallback
DHCPDISCOVER on virbr0 to 255.255.255.255 port 67 interval 3
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3
DHCPREQUEST of 10.0.0.129 on eth0 to 255.255.255.255 port 67
DHCPOFFER of 10.0.0.129 from 10.0.0.254
DHCPACK of 10.0.0.129 from 10.0.0.254
bound to 10.0.0.129 -- renewal in 5716 seconds.

ここでは、リースされていることがわかります10.0.0.129ですが、ifconfigにはまだ10.0.0.137が表示されます

eth0      Link encap:Ethernet  HWaddr 38:60:77:82:a8:61  
      inet addr:10.0.0.137  Bcast:10.0.0.255  Mask:255.255.255.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:312183 errors:0 dropped:0 overruns:0 frame:0
      TX packets:85529 errors:0 dropped:1 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:80808972 (80.8 MB)  TX bytes:20479979 (20.4 MB)

lo        Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      UP LOOPBACK RUNNING  MTU:16436  Metric:1
      RX packets:3910 errors:0 dropped:0 overruns:0 frame:0
      TX packets:3910 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:461047 (461.0 KB)  TX bytes:461047 (461.0 KB)

virbr0    Link encap:Ethernet  HWaddr 96:a2:d6:f5:30:fc  
      inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
      UP BROADCAST MULTICAST  MTU:1500  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
1
Alex Edwards

誰も明白な答えに言及していないことに本当に驚いています-

DHCPを削除し、静的IPアドレスを使用します。 NAT ETCを続行できます。DHCPプールからIPを割り当てないでください。ただし、同じサブネット内で、すべてが確実かつ予測どおりに機能するはずです。

静的IPアドレスを有効にするために必要なのは変更だけです

 auto eth0 
 iface eth0 inet dhcp 

 auto eth0 
 address X.X.X.X 
 iface eth0 inet static 
 netmask 255.255.255.0 
 gateway X.X.X.Y 

ゲートウェイがKVMによって割り当てられたアドレスであることを確認します(/ sbin/route -nを実行すると、デフォルトゲートウェイが表示されます-使用するIPアドレスです)。

1
davidgo

ブリッジを使用してVMをeth0と同じネットワークに接続している場合は、通常、NATを実行する必要はありません。次の5つの手順のみを実行する必要があります。

  • 適切なブリッジインターフェイスを使用するようにハイパーバイザーを構成します。 KVMはカーネルによって提供されるものです。ハイパーバイザーはそれを使用して仮想マシンを実装できます。ハイパーバイザーが_virbr0_を使用するように設定されているが、_br0_を構成した場合、もちろん問題が発生します。_virbr0_はハイパーバイザーが自動的に設定するもののようです。したがって、この時点では、VMがそのインターフェイスを使用していることを確認するだけで済み(すでに完了していると思います)、_eth0_が追加されました(つまり、_Sudo brctl addif virbr0 eth0_)
  • 関連するすべてのリンクがアップしていることを確認します(つまり、_Sudo ip link set dev eth0 up; Sudo ip link set dev virbr0 up_)。 _iproute2_パッケージからipを優先します。 _net-tools_パッケージのifconfigは長い間非推奨ですが、非常に基本的なものでも機能するはずです。
  • カーネルでIP転送を有効にします(つまり、_sysctl net.ipv4.ip_forward=1_)
  • ブリッジトラフィックを許可するようにファイアウォールを設定します。 VMに任意のトラフィックを送信する人を特に気にしない、または心配していない場合は、次の手順を実行して、トラフィックの通過を許可できます。

    • ブリッジされたトラフィックがiptablesに表示される場合(つまり、_net.bridge.bridge-nf-call-iptables_ = 1):
      • テーブルフィルターのiptablesFORWARDチェーン(_iptables -F FORWARD_)をフラッシュします。
      • ポリシーをACCEPT(_iptables -P FORWARD ACCEPT_)に設定します。
      • 他のテーブルでフィルタリングを行っていないことを確認してください(目的ではないため、フィルタリングを行わないでください)。
    • ブリッジされたトラフィックがarptablesに表示される場合(つまり、_net.bridge.bridge-nf-call-arptables_ = 1)、テーブルIN(実際には唯一のテーブル)のOUTチェーンとfilterチェーンに対して上記と同様のことを行う必要があります。
    • 繰り返しますが、ebtablesに対して同様のことを行います。特定のsysctlが設定されているかどうかを確認する必要はありません。これは、ブリッジされたトラフィックに常に関連しています。

    システムに構成がある可能性は非常に低いため、最後の2つの詳細は省略しました。システムにインストールされていない場合もあります。その場合は、これらの手順をスキップできます。

  • ARPプロキシ でないことを確認してください。あなたはおそらくそれを必要とせず(例えば、この質問とはまったく関係のない何かのために)、おそらくそれをしていないので、_Sudo sysctl net.ipv4.conf.all.proxy_arp=0_だけです。ブリッジングを行う場合は、このような単純な例でARPをプロキシするべきではありません。

私の知る限り、「NAT転送」のようなものはありません。単純なIP転送を意味していましたか(イーサネットブリッジングと同じではありません)?ポートフォワーディングのことですか? bootps(67)ポートとbootpc(68)ポート(それぞれDHCPサーバーとクライアントで使用)を転送し、他のすべてをNATするだけでは、非常に奇妙な設定であり、デバッグが困難になります。

0
pilona

当てずっぽう:

ethXは何もDHCPすることを想定していません。

Proxmoxに基づくマシンから、ifconfigの結果(vmbr0がeth1(gbitであるため、唯一の実際の接続されたNIC)にブリッジする)は次のようになります。

eth0      Link encap:Ethernet  HWaddr 00:30:67:4f:48:57  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:27 Base address:0x4000 

eth1      Link encap:Ethernet  HWaddr 54:e6:fc:80:06:9b  
          inet6 addr: fe80::56e6:fcff:fe80:69b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:209503 errors:0 dropped:0 overruns:0 frame:0
          TX packets:22361 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:46807271 (44.6 MiB)  TX bytes:1558940 (1.4 MiB)
          Interrupt:16 Base address:0x8000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:24031 errors:0 dropped:0 overruns:0 frame:0
          TX packets:24031 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2462584 (2.3 MiB)  TX bytes:2462584 (2.3 MiB)

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet6 addr: fe80::1/128 Scope:Link
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:3 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

vmbr0     Link encap:Ethernet  HWaddr 54:e6:fc:80:06:9b  
          inet addr:192.168.1.4  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::56e6:fcff:fe80:69b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:196981 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10585 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:43275844 (41.2 MiB)  TX bytes:784636 (766.2 KiB)

私がこれまでに得た最高のもの。

0
killermist

暗闇の中での別のショット:

networkmanagerでIPv6制御を無効にしようとすることができます:メソッド: "自動"からメソッド "無視"に設定します

それは私に一度この種の問題を解決しました。

それがうまくいかない場合は、の出力を調べる必要があります

tail -f /var/log/syslog

接続が失われて再接続している間

networkmanagerのtcpdumpを調べることで、別のヒントを得ることができます。

0
rubo77