ドッキングウィンドウ
記事のディレクトリ
1 Linuxカーネルの実装の名前空間を作成します。
1.1 IP netnsコマンド
腹腔netnsは、ネットワーク名前空間でさまざまな操作を実行するコマンドを使用することができます。インストールパッケージからIP netns iprouteのコマンドは、一般的なシステムがない場合は、自分でインストールしてください、デフォルトでインストールされます。
注:あなたは、ネットワーク設定、IP netnsコマンドを変更する権限をSUDO必要が。
IPによって完成される関連の操作は、ネットワーク名前空間コマンドをnetnsは、ip netnsヘルプを介してコマンドのヘルプ情報を表示することができます。
[root@localhost ~]# ip netns help
Usage: ip netns list
ip netns add NAME
ip netns set NAME NETNSID
ip [-all] netns delete [NAME]
ip netns identify [PID]
ip netns pids NAME
ip [-all] netns exec [NAME] cmd ...
ip netns monitor
ip netns list-id
デフォルトでは、Linuxシステムには、ネットワークの名前空間ではありませんので、IP netns listコマンドは、すべての情報を返しません。
ネットワークの名前空間を作成する1.2
コマンドによってNS0と呼ばれる名前空間を作成します。
[root@localhost ~]# ip netns list
[root@localhost ~]# ip netns add ns0
[root@localhost ~]# ip netns list
ns0
新しく作成されたネットワークの名前空間には、中には/ var /実行/ netns /ディレクトリに表示されます。同じ名前の名前空間がすでに存在する場合、コマンドは、名前空間のファイル「は/ var /実行/ netns / NS0」を作成することはできませんを報告します:ファイルがエラーが存在します。
[root@localhost ~]# ls /var/run/netns/
ns0
[root@localhost ~]# ip netns add ns0
Cannot create namespace file "/var/run/netns/ns0": File exists
各ネットワークの名前空間について、それはそうでネットワーク関連のリソースと独自の個別のネットワークカード、ルーティングテーブル、ARPテーブル、iptablesのとがあります。
1.3オペレーティング・ネットワークの名前空間
IP IP netnsのexecコマンドはサブコマンドは、ネットワークの名前空間に対応するコマンドを実行することができます提供します。
ネットワーク名前空間の新規作成されたカード情報を見ます
[root@localhost ~]# ip netns exec ns0 ip addr
1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
あなたはデフォルトLOのループバック・アダプタを作成するネットワークのネームスペースが新しく作成され、見ることができ、カードはこの時点で閉じられています。この場合、ネットワークが到達不能であることが要求されます、ループバックアダプタLOにpingを実行してみてください
[root@localhost ~]# ip netns exec ns0 ping 127.0.0.1
connect: Network is unreachable
Loのループバックアダプタは、次のコマンドで有効になっています。
[root@localhost ~]# ip netns exec ns0 ip link set lo up
[root@localhost ~]# ip netns exec ns0 ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.047 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.073 ms
1.4転送機器
我々は、異なるネットワーク間で名前空間(例えばのvethなどの)デバイスを転送することができます。デバイスは、ネットワークの名前空間に属し、そのネットワークの名前空間内に移転した後、デバイスを表示されない可能性があるため。
前記、VETH転送装置に属するデバイス、及び多くの他のデバイス(例えば、LO、VXLAN、PPP、ブリッジなど)に転送されません。
1.5のvethペア
vethペア名が仮想イーサネットペアであり、同一のおよびその逆のうち他端から着信データパケットの一端からすべてのポート、ポートのペアです。
VETH対が異なるネットワークネームスペースへの直接通信に導入され、それを使用することは、直接2つのネットワークの名前空間に接続することができます。
1.6のvethペアを作成します
[root@localhost ~]# ip link add type veth
[root@localhost ~]# ip a
10: veth0@veth1: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 32:c4:23:dd:a7:1c brd ff:ff:ff:ff:ff:ff
11: veth1@veth0: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether a2:52:52:cd:54:62 brd ff:ff:ff:ff:ff:ff
あなたは、システムがのvethペアのペアを追加しました。この時間を見ることができ、これのvethペアは、「有効でない」状態になって、アップ接続するためにveth0とveth1つの仮想ネットワークカードになります。
1.7ネットワークの名前空間との間の通信を実装
ここでは、二つの異なるネットワーク間での名前空間のvethペア通信を使用しています。ちょうど今、私たちは、ネットワークの名前空間という名前NS0を作成し、その後、以下の情報ネットワークの名前空間を作成し、NS1という名前
[root@localhost ~]# ip netns add ns1
[root@localhost ~]# ip netns list
ns1
ns0
その後、我々はNS0に追加veth0ます、NS1に追加veth1ます
[root@localhost ~]# ip link set veth0 netns ns0
[root@localhost ~]# ip link set veth1 netns ns1
その後、我々はこののvethペア設定のIPアドレスであったし、それらを有効にします
[root@localhost ~]# ip netns exec ns0 ip link set veth0 up
[root@localhost ~]# ip netns exec ns0 ip addr add 10.0.0.1/24 dev veth0
[root@localhost ~]# ip netns exec ns1 ip link set lo up
[root@localhost ~]# ip netns exec ns1 ip link set veth1 up
[root@localhost ~]# ip netns exec ns1 ip addr add 10.0.0.2/24 dev veth1
このペアのvethのステータスを確認
[root@localhost ~]# ip netns exec ns0 ip a
10: veth0@if11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 32:c4:23:dd:a7:1c brd ff:ff:ff:ff:ff:ff link-netnsid 1
inet 10.0.0.1/24 scope global veth0
valid_lft forever preferred_lft forever
inet6 fe80::30c4:23ff:fedd:a71c/64 scope link
valid_lft forever preferred_lft forever
[root@localhost ~]# ip netns exec ns1 ip a
11: veth1@if10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether a2:52:52:cd:54:62 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 10.0.0.2/24 scope global veth1
valid_lft forever preferred_lft forever
inet6 fe80::a052:52ff:fecd:5462/64 scope link
valid_lft forever preferred_lft forever
上記からわかるように、我々は成功したのvethペアを有効にし、それぞれのvethデバイスの対応するIPアドレスが割り当てられています。私たちは、NS1でのアドレスNS0 IPアクセスしようとしました:
[root@localhost ~]# ip netns exec ns1 ping 10.0.0.1
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.072 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.082 ms
我々は2つの異なるネットワーク名前空間間のネットワークの相互作用のペア実装を成功VETH、見ることができます。
1.8のveth機器名の変更
[root@localhost ~]# ip netns exec ns0 ip link set veth0 down
[root@localhost ~]# ip netns exec ns0 ip link set dev veth0 name eth0
[root@localhost ~]# ip netns exec ns0 ifconfig -a
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.1 netmask 255.255.255.0 broadcast 0.0.0.0
inet6 fe80::30c4:23ff:fedd:a71c prefixlen 64 scopeid 0x20<link>
ether 32:c4:23:dd:a7:1c txqueuelen 1000 (Ethernet)
RX packets 12 bytes 928 (928.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 20 bytes 1576 (1.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost ~]# ip netns exec ns0 ip link set eth0 up
2 4ネットワークモード構成
2.1ブリッジモードの設定
[root@localhost ~]# docker run -it --name t1 --rm busybox
/ # ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:0A:00:00:02
inet addr:10.0.0.2 Bcast:10.0.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6 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:508 (508.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 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)
/ # exit
[root@localhost ~]# docker container ls -a
# 在创建容器时添加--network bridge与不加--network选项效果是一致的
[root@localhost ~]# docker run -it --name t1 --network bridge --rm busybox
/ # ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:0A:00:00:02
inet addr:10.0.0.2 Bcast:10.0.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6 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:508 (508.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 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)
/ # exit
2.2なしモードの設定
[root@localhost ~]# docker run -it --name t1 --network none --rm busybox
/ # ifconfig -a
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 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)
/ # exit
2.3コンテナ設定モード
第一の容器を開始
[root@localhost ~]# docker run -it --name b1 --rm busybox
/ # ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:0A:00:00:02
inet addr:10.0.0.2 Bcast:10.0.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6 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:508 (508.0 B) TX bytes:0 (0.0 B)
第2の容器を開始
[root@localhost ~]# docker run -it --name b2 --rm busybox
/ # ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:0A:00:00:03
inet addr:10.0.0.3 Bcast:10.0.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6 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:508 (508.0 B) TX bytes:0 (0.0 B)
、名前付きb2が10.0.0.3である血管のIPアドレスを見ることができ、かつ第一の容器のIPアドレスは、我々が道第2の容器を変更するために開始する場合は、この時点でネットワークを共有しない、同じではありませんIPおよびコンテナは、すなわちIPを共有し、B1、B2のIP同じ容器名前を付けることができますが、ファイルシステムを共有しません。
[root@localhost ~]# docker run -it --name b2 --rm --network container:b1 busybox
/ # ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:0A:00:00:02
inet addr:10.0.0.2 Bcast:10.0.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8 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:648 (648.0 B) TX bytes:0 (0.0 B)
この時点では、B1、コンテナ上のディレクトリを作成します
/ # mkdir /tmp/data
/ # ls /tmp
data
/のtmpディレクトリをチェックすると、ファイルシステムが孤立の状態であるため、このディレクトリを見つけることができませんでしたB2コンテナ、それが唯一の共有ネットワークです。
B2コンテナにサイトを展開
/ # echo 'hello world' > /tmp/index.html
/ # ls /tmp
index.html
/ # httpd -h /tmp
/ # netstat -antl
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 :::80 :::* LISTEN
このサイトにアクセスするには、ローカルアドレスとB1の容器で
/ # wget -O - -q 127.0.0.1:80
hello world
したがって、容器モードでコンテナとの間の関係は、単一のホスト上の2つの異なるプロセスと等価です
2.4ホストモードの設定
スタートモードのホスト容器を示すことにより、
[root@localhost ~]# docker run -it --name b2 --rm --network host busybox
/ # ifconfig
docker0 Link encap:Ethernet HWaddr 02:42:06:25:98:91
inet addr:10.0.0.1 Bcast:10.0.255.255 Mask:255.255.0.0
inet6 addr: fe80::42:6ff:fe25:9891/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:55 errors:0 dropped:0 overruns:0 frame:0
TX packets:82 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:8339 (8.1 KiB) TX bytes:7577 (7.3 KiB)
ens33 Link encap:Ethernet HWaddr 00:0C:29:01:78:90
inet addr:192.168.10.144 Bcast:192.168.10.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe01:7890/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:55301 errors:0 dropped:0 overruns:0 frame:0
TX packets:26269 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:63769938 (60.8 MiB) TX bytes:2672449 (2.5 MiB)
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:65536 Metric:1
RX packets:42 errors:0 dropped:0 overruns:0 frame:0
TX packets:42 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4249 (4.1 KiB) TX bytes:4249 (4.1 KiB)
vethffa4d46 Link encap:Ethernet HWaddr 06:4F:68:16:6E:B0
inet6 addr: fe80::44f:68ff:fe16:6eb0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:648 (648.0 B)
この時点で、私たちは、このコンテナにHTTPサイトを開始した場合、私たちすることができます直接ブラウザに直接アクセスIPホスト、この容器のサイト。
コンテナの共通操作3
3.1ビューのホスト名コンテナ
[root@localhost ~]# docker run -it --name t1 --network bridge --rm busybox
/ # hostname
7769d784c6da
3.2ホスト名コンテナが開始に注入した場合
[root@localhost ~]# docker run -it --name t1 --network bridge --hostname wangqing --rm busybox
/ # hostname
wangqing
/ # cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
10.0.0.2 wangqing # 注入主机名时会自动创建主机名到IP的映射关系
/ # cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.10.2 # DNS也会自动配置为宿主机的DNS
/ # ping www.baidu.com
PING www.baidu.com (182.61.200.7): 56 data bytes
64 bytes from 182.61.200.7: seq=0 ttl=127 time=26.073 ms
64 bytes from 182.61.200.7: seq=1 ttl=127 time=26.378 ms
手動でコンテナを使用するように指定するDNS 3.3
[root@localhost ~]# docker run -it --name t1 --network bridge --hostname wangqing --dns 114.114.114.114 --rm busybox
/ # cat /etc/resolv.conf
search localdomain
nameserver 114.114.114.114
/ # nslookup -type=a www.baidu.com
Server: 114.114.114.114
Address: 114.114.114.114:53
Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com
Name: www.a.shifen.com
Address: 182.61.200.6
Name: www.a.shifen.com
Address: 182.61.200.7
IPアドレスへのマッピングホスト名注入3.4手動への/ etc / hostsファイル
[root@localhost ~]# docker run -it --name t1 --network bridge --hostname wangqing --add-host www.a.com:1.1.1.1 --rm busybox
/ # cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
1.1.1.1 www.a.com
10.0.0.2 wangqing
3.5オープンコンテナ港
実行ドッキングウィンドウの実行が-pオプションを持っている場合は、アプリケーションコンテナポートは、外部のホストは、ホストアプリケーションの目的にアクセスするために、容器内のポートを介してアクセスすることができるようにすることを実現するために、ホストにマップすることができます。
-pオプションを複数回使用することができ、それが露出させることができるコンテナ港は本当にリスニングでなければなりません。
フォーマットを使用する-pオプション:
動的ポートは、特定の結果がドッカーportコマンドを使用してマッピングすることができ、ランダムポートを指します。
root@localhost ~]# docker run --name web --rm -p 80 nginx
常にフロントエンドを占有します上記のコマンドを実行した後、我々はのホストにマップされているコンテナ港80を見て何のポートに接続されている新しいターミナルをオープンしました
[root@localhost ~]# docker port web
80/tcp -> 0.0.0.0:32769
このように、80ポートのコンテナは、ホスト上の32769ポートにさらされ、そして今回はコンテナ港へのアクセスは、このサイトを参照してくださいかどうかを確認するためにホスト上で訪問されます
[root@localhost ~]# curl http://127.0.0.1:32769
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
コンテナが自動的にルールを削除除去されるとiptablesのファイアウォール・ルールを自動的に、容器の構成で生成されます。
ランダム指定されたIPポートをマッピングするポートへの容器
[root@localhost ~]# docker run --name web --rm -p 192.168.10.144::80 nginx
別の端末の場合、ポートマッピングを参照してください。
[root@localhost ~]# docker port web
80/tcp -> 192.168.10.144:32768
容器は、ホストポート、指定ポートにマッピングされました
[root@localhost ~]# docker run --name web --rm -p 80:80 nginx
別の端末の場合、ポートマッピングを参照してください。
[root@localhost ~]# docker port web
80/tcp -> 0.0.0.0:80
3.6カスタム属性情報ネットワークブリッジdocker0
公式文書関連する構成
ブリッジdocker0定義されたネットワーク属性情報からは、設定ファイルの/etc/docker/daemon.jsonを変更する必要があります
{
"bip": "192.168.1.5/24",
"fixed-cidr": "192.168.1.5/25",
"fixed-cidr-v6": "2001:db8::/64",
"mtu": 1500,
"default-gateway": "10.20.1.1",
"default-gateway-v6": "2001:db8:abcd::89",
"dns": ["10.20.1.2","10.20.1.3"]
}
コアオプション、すなわち意味IPブリッジ、BIP、独自のIPアドレスdocker0ブリッジを指定するために使用され、他のオプションは、このアドレスによって計算することができます。
3.7ドッキングウィンドウのリモート接続
C / Sデーモンdockerdは、それは、あなたがTCPソケットを使用したい場合は、設定ファイルの/etc/docker/daemon.jsonを変更する必要があり、アドレスのみのUnixソケットのデフォルトフォーマット(/var/run/docker.sock)をリッスン以下を追加し、ドッキングウィンドウのサービスを再起動します。
"hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
クライアントが直接dockerdに伝達され、上の「-H | -host」オプションは、上のホスト制御ドッキングウィンドウコンテナを指定します
docker -H 192.168.10.145:2375 ps
3.8ドッキングウィンドウのカスタムブリッジを作成します。
docker0は異なる、追加のカスタムブリッジを作成します。
[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
413997d70707 bridge bridge local
0a04824fc9b6 host host local
4dcb8fbdb599 none null local
[root@localhost ~]# docker network create -d bridge --subnet "192.168.2.0/24" --gateway "192.168.2.1" br0
b340ce91fb7c569935ca495f1dc30b8c37204b2a8296c56a29253a067f5dedc9
[root@localhost ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
b340ce91fb7c br0 bridge local
413997d70707 bridge bridge local
0a04824fc9b6 host host local
4dcb8fbdb599 none null local
コンテナを作成するために、新しく作成されたカスタムブリッジを使用します。
[root@localhost ~]# docker run -it --name b1 --network br0 busybox
/ # ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:C0:A8:02:02
inet addr:192.168.2.2 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11 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:926 (926.0 B) TX bytes:0 (0.0 B)
その後、コンテナを作成し、デフォルトのブリッジブリッジを使用します。
[root@localhost ~]# docker run --name b2 -it busybox
/ # ls
bin dev etc home proc root sys tmp usr var
/ # ifconfig
eth0 Link encap:Ethernet HWaddr 02:42:0A:00:00:02
inet addr:10.0.0.2 Bcast:10.0.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6 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:508 (508.0 B) TX bytes:0 (0.0 B)
想像して、この時間B1とB2は、相互に通信することができますか?あなたはどのようにこの通信を実現することができない場合は?