CentOS 6.5がインストールされたvmwareプレーヤーがあります。 CentOS 6.5ではlxcをインストールし、lxcではcentos 6.3をインストールしました。
vmwareプレーヤーはNATとブリッジをネットワークアダプタとして使用しています。
私のCentOS 6.5 IP:192.168.236.140、ゲートウェイ:192.168.236.2
Centos 6.5でルーティング
[root@agent1 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.236.0 0.0.0.0 255.255.255.0 U 1 0 0 eth1
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
0.0.0.0 192.168.236.2 0.0.0.0 UG 0 0 0 eth1
私のCentos 6.3のIPは192.168.122.9で、ゲートウェイは192.168.122.1です。
私のcentos 6.3 LXCマシンでルーティング
[root@agent1vm5 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
0.0.0.0 192.168.122.1 0.0.0.0 UG 0 0 0 eth0
これで問題は、LXC(192.168.236.140など)でCentOS 6.5システムをpingできることです。
[root@agent1vm5 ~]# ping -c 1 -t 1 192.168.236.140
PING 192.168.236.140 (192.168.236.140) 56(84) bytes of data.
64 bytes from 192.168.236.140: icmp_seq=1 ttl=64 time=0.037 ms
--- 192.168.236.140 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.037/0.037/0.037/0.000 ms
ただし、デフォルトのNATゲートウェイである192.168.236.2に対してpingを実行することはできません。
[root@agent1vm5 ~]# ping -c 1 -t 1 192.168.236.2
PING 192.168.236.2 (192.168.236.2) 56(84) bytes of data.
From 192.168.122.1 icmp_seq=1 Time to live exceeded
--- 192.168.236.2 ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms
では、192.168.122.1 で始まるのではなく、192.168.236.2 を通過するようにパスを設定するにはどうすればよいですか?
答え1
あなたの命令に従って
ping -c 1 -t 1 192.168.236.2
パケットが TTL 1 に送信されることを指定します。これは、エラーが発生する前に最大1つのネットワークホップを通過することを意味します。
ネットワーク構成では、CentOS 6.3ノードはアクセスしようとしているNATに直接接続されていません。 CentOS 6.5ノードはその間のどこかにあります。 TTLが1の状態で2ホップ離れたノードをpingしようとすると機能しません。
CentOS 6.5ノードは、TTLが1のパケットを受信した後にTTLが期限切れになったことを示すICMPエラーメッセージを再送信します。これは予想通り正確に機能します。