8
18
2018
UPnP/OpenHome Music Server の自作(その5)
APU2C4をルータとして機能させる(テスト編)
ネットワークオーディオセグメントにPCを繋いで実験してみる
実験君
IPパケット転送処理が有効になったところで、先ずは実際に APU2C4 のネットワークオーディオ側のインタフェース “eth1″ にPCをつないで、家庭内LAN側(”eth0″ )と”eth1” 間で IPルーティングが行えるかどうか試して見ることにしよう.
実験環境の概要
テスト用PCはIPを固定で設定している
今回の実験環境は一般的な家庭環境と類似しているとは言えないが、一般家庭に導入されているブロードバンドルータが行っていることとほぼ同じような環境になっているはずだ.LAN内にDNSサーバやDHCPサーバが単独でたてられているだけなので、LAN側の構成は気にする必要はない.
テスト用のPCには、予め IPアドレス: 192.168.10.101(255.255.255.0)、デフォルトルート: 192.168.10.254、DNSサーバ: 192.168.100.11 を設定してある.デフォルトルートは当然ながら APU2C4の “eth1″ (192.168.10.254) である.LAN側の”eth0” はDHCPサーバにより、今回は192.168.100.161が割り当てられている.APU2C4自体はLAN側のDHCPサーバから、デフォルトルート:192.168.100.254、DNSサーバ: 192.168.100.11, 192.168.100.20 が設定されている.
[root@jukebox2 ~]# nmcli device show eth0
GENERAL.DEVICE: eth0
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0D:B9:42:E9:40
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: eth0
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveCo
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 192.168.100.161/24
IP4.GATEWAY: 192.168.100.254
IP4.ROUTE[1]: dst = 0.0.0.0/0, nh = 192.168.100.254, m
IP4.ROUTE[2]: dst = 192.168.100.0/24, nh = 0.0.0.0, mt
IP4.DNS[1]: 192.168.100.11
IP4.DNS[2]: 192.168.100.20
IP4.DOMAIN[1]: home.yoko
IP6.GATEWAY: --
[root@jukebox2 ~]#
この状態でテスト用PCから、APU2C4の “eth1″ (192.168.10.254)とLAN側の”eth0” (192.168.100.161)とLAN内のDNSサーバ(192.168.100.11)、Synology NAS(192.168.100.20)、iMac(192.168.100.77)、インターネットルータ IX-2215(192.168.100.254)などにpingを打ってみる.
MB13W:~ yasuaki$ ifconfig
lo0: flags=8049 mtu 16384
inet 127.0.0.1 netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
gif0: flags=8010 mtu 1280
stf0: flags=0<> mtu 1280
fw0: flags=8863 mtu 2030
lladdr 00:16:cb:ff:fe:d5:59:be
media: autoselect
status: inactive
en1: flags=8863 mtu 1500
ether 00:16:cb:b8:f4:80
media: autoselect ()
status: inactive
en0: flags=8863 mtu 1500
ether 00:16:cb:8f:24:6c
inet6 fe80::216:cbff:fe8f:246c%en0 prefixlen 64 scopeid 0x6
inet 192.168.10.101 netmask 0xffffff00 broadcast 192.168.10.255
media: autoselect (1000baseT )
status: active
MB13W:~ yasuaki$ netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.10.254 UGSc 2 2 en0
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 0 0 lo0
169.254 link#6 UCS 0 0 en0
192.168.10 link#6 UCS 3 0 en0
192.168.10.11 link#6 UHRLWI 6 104 en0
192.168.10.101 127.0.0.1 UHS 0 0 lo0
192.168.10.254 0:d:b9:42:e9:41 UHLWI 3 3 en0 1166
MB13W:~ yasuaki$ ping 192.168.10.254 <== APU2C4の"eth1"
PING 192.168.10.254 (192.168.10.254): 56 data bytes
64 bytes from 192.168.10.254: icmp_seq=0 ttl=64 time=0.299 ms
64 bytes from 192.168.10.254: icmp_seq=1 ttl=64 time=0.231 ms
64 bytes from 192.168.10.254: icmp_seq=2 ttl=64 time=0.249 ms
^C
--- 192.168.10.254 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.231/0.260/0.299/0.029 ms
MB13W:~ yasuaki$ ping 192.168.100.161 <== APU2C4の"eth0"
PING 192.168.100.161 (192.168.100.161): 56 data bytes
64 bytes from 192.168.100.161: icmp_seq=0 ttl=64 time=0.294 ms
64 bytes from 192.168.100.161: icmp_seq=1 ttl=64 time=0.243 ms
^C
--- 192.168.100.161 ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.243/0.268/0.294/0.026 ms
^C
MB13W:~ yasuaki$ ping 192.168.20.254 <== APU2C4の"eth2"
PING 192.168.20.254 (192.168.20.254): 56 data bytes
64 bytes from 192.168.20.254: icmp_seq=0 ttl=64 time=0.369 ms
64 bytes from 192.168.20.254: icmp_seq=1 ttl=64 time=0.251 ms
^C
--- 192.168.20.254 ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.251/0.310/0.369/0.059 ms
MB13W:~ yasuaki$ ping 192.168.100.11
PING 192.168.100.11 (192.168.100.11): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
^C
--- 192.168.100.11 ping statistics ---
4 packets transmitted, 0 packets received, 100.0% packet loss
MB13W:~ yasuaki$ ping 192.168.100.20
PING 192.168.100.20 (192.168.100.20): 56 data bytes
Request timeout for icmp_seq 0
^C
--- 192.168.100.20 ping statistics ---
2 packets transmitted, 0 packets received, 100.0% packet loss
MB13W:~ yasuaki$ ping 192.168.100.254
PING 192.168.100.254 (192.168.100.254): 56 data bytes
Request timeout for icmp_seq 0
^C
--- 192.168.100.254 ping statistics ---
2 packets transmitted, 0 packets received, 100.0% packet loss
MB13W:~ yasuaki$ ping 192.168.100.77
PING 192.168.100.77 (192.168.100.77): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
^C
--- 192.168.100.77 ping statistics ---
3 packets transmitted, 0 packets received, 100.0% packet loss
MB13W:~ yasuaki$
テストPCから送ったpingの応答が帰ってきたのは、何れもAPU2C4の3つのインターフェースに割り当てられたIPアドレスのみである.他のIPアドレスは全く反応がない.とりあえず、APU2C4の他のインタフェースにはpingが通っているので、Linuxカーネルのパケット転送はきちんと行われていることは確認できたことになる.
この結果をどう見れば良いだろうか?ネットワークの知識を持っている人であれば、このような現象が起きた原因は考えるまでも無くわかることなのだが、一般のPCオタク程度のスキルではこの問題を解決することは難しいだろう.
結論から言えば、APU2C4以外の機器はテストPCのIPアドレスに対して返答しようとしても、テストPCが存在するネットワークに関する情報を何も持ち合わせていないので返答できないのである.正確に言えば、一応応答パケットは送り返してはいるのだが、テストPCのIPアドレスに対する送り先(Next Hop)情報がないので、とりあえずデフォルトルート側のルータIX-2215(この場合は 192.168.100.254)に送り返しているのである.
勿論、ルータIX-2215にもテストPCのネットワークルート情報が存在しないので、ここでパケットのは立ち往生してしまう.プライベートIPアドレスなのでインターネット側にも出て行けないので、ここで一定時間後に消滅してしまうことになる.
この問題を解決するには大きく分けて2つの方法があり、一つは各PCやネットワーク機器がテストPCのネットワークに関するルーティング情報を持つことで、もう一つはデフォルトルータ先のルータにテストPCのネットワークに関するルーティング情報を登録する方法だ.
先ずは、iMac(192.168.100.77)にテストPCのネットワーク(192.168.10.0/24)のルーティング情報を登録してみることにしよう.勿論、ルーティング情報を登録していない状態では、iMac側からもテストPCへはpingが通らない.
iMac27:~ yasuaki$ ping 192.168.10.101
PING 192.168.10.101 (192.168.10.101): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
^C
--- 192.168.10.101 ping statistics ---
3 packets transmitted, 0 packets received, 100.0% packet loss
iMac27:~ yasuaki$
iMac27:~ yasuaki$ sudo route add 192.168.10.0/24 192.168.100.161
add net 192.168.10.0: gateway 192.168.100.161
iMac27:~ yasuaki$ netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.100.254 UGSc 44 0 en0
default 192.168.101.254 UGScI 0 0 vlan0
default 192.168.200.1 UGScI 0 0 vlan2
default 192.168.102.254 UGScI 0 0 vlan1
default 192.168.201.254 UGScI 0 0 vlan3
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 2 832612 lo0
169.254 link#7 UCS 0 0 en0
169.254 link#14 UCSI 0 0 vlan0
169.254 link#15 UCSI 0 0 vlan2
169.254 link#16 UCSI 0 0 vlan1
169.254 link#17 UCSI 0 0 vlan3
192.168.10 192.168.100.161 UGSc 0 0 en0 <==追加されたルーティング情報
192.168.100 link#7 UCS 6 0 en0
192.168.100.11 98:5a:eb:df:be:26 UHLWIi 21 19256 en0 803
192.168.100.77/32 link#7 UCS 0 0 en0
192.168.100.153 88:1f:a1:2a:ca:bf UHLWI 0 0 en0 1158
192.168.100.159 0:16:cb:b8:f4:80 UHLWIi 1 14288 en0 3
192.168.100.161 link#7 UHLWIi 1 0 en0
192.168.100.199 link#7 UHLWI 0 2 en0
192.168.100.254/32 link#7 UCS 1 0 en0
192.168.100.254 0:60:b9:e3:db:81 UHLWIir 2 0 en0 1133
192.168.101 link#14 UCS 1 0 vlan0
192.168.101.1 44.3.a7.1.7d.24 UHLWIi 1 1 vlan0 102
192.168.101.151/32 link#14 UCS 0 0 vlan0
192.168.101.254/32 link#14 UCS 1 0 vlan0
192.168.101.254 link#14 UHLWIir 1 0 vlan0
192.168.102 link#16 UCS 1 0 vlan1
192.168.102.1 44.3.a7.1.7d.25 UHLWIi 1 1 vlan1 102
...
iMac27:~ yasuaki$ ping 192.168.10.101 <== iMac側からテストPCへping
PING 192.168.10.101 (192.168.10.101): 56 data bytes
64 bytes from 192.168.10.101: icmp_seq=0 ttl=63 time=1.123 ms
64 bytes from 192.168.10.101: icmp_seq=1 ttl=63 time=0.693 ms
64 bytes from 192.168.10.101: icmp_seq=2 ttl=63 time=0.679 ms
^C
--- 192.168.10.101 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.679/0.832/1.123/0.206 ms
今度は、テストPC側からiMacへpingを送ってみる.
MB13W:~ yasuaki$ ping 192.168.100.77
PING 192.168.100.77 (192.168.100.77): 56 data bytes
64 bytes from 192.168.100.77: icmp_seq=0 ttl=64 time=2.393 ms
64 bytes from 192.168.100.77: icmp_seq=1 ttl=64 time=8.279 ms
64 bytes from 192.168.100.77: icmp_seq=2 ttl=64 time=24.579 ms
^C
--- 192.168.100.77 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 2.393/11.750/24.579/9.384 ms
MB13W:~ yasuaki$
^C
--- 192.168.100.77 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.659/0.735/0.770/0.039 ms
MB13W:~ yasuaki$ ping 192.168.100.11
PING 192.168.100.11 (192.168.100.11): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
^C
--- 192.168.100.11 ping statistics ---
3 packets transmitted, 0 packets received, 100.0% packet loss
MB13W:~ yasuaki$
iMacからはpingの応答が帰ってくるようにはなったが、他は相変わらず応答がない.
この結果からわかるように、通信相手毎に自分宛のルーティング情報を設定して貰わなければならないのでとても面倒だ.通信相手が複数有る場合は非現実的な方法で有ることが理解できるだろう.
もう一つのデフォルトルータ側でテストPCのネットワークへのルーティング情報を登録してみるとどうなるのか見て見よう.
iMac27:~ yasuaki$ ssh -l xxxxx 192.168.201.254 <== IX-2215の管理コンソールへsshでログイン
xxxxxx@192.168.201.254's password:
NEC Portable Internetwork Core Operating System Software
Copyright Notices:
Copyright (c) NEC Corporation 2001-2017. All rights reserved.
Copyright (c) 1985-1998 OpenROUTE Networks, Inc.
Copyright (c) 1984-1987, 1989 J. Noel Chiappa.
IP Routing Table - 7 entries, 1 hidden, 2040 frees
Entries: 5 Connected, 2 Static, 0 RIP, 0 OSPF, 0 BGP
Codes: C - Connected, S - Static, R - RIP, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, B - BGP
* - Candidate default, s - Summary
Timers: Age
S* 0.0.0.0/0 [1/1] is directly connected, Tunnel0.0, 6d5h31m50s
10.0.0.0/8 is subnetted, 1 subnets
S 10.11.12.0/24 [1/1] via 192.168.100.1, GigaEthernet2:1.1, 6d5h31m50s
C 192.168.100.0/24 [0/1] is directly connected, GigaEthernet2:1.1, 6d6h36m2s
C 192.168.101.0/24 [0/1] is directly connected, GigaEthernet2:1.2, 6d6h36m2s
C 192.168.102.0/24 [0/1] is directly connected, GigaEthernet2:1.3, 6d6h36m2s
C 192.168.200.0/24 [0/1] is directly connected, GigaEthernet2:1.4, 6d6h36m2s
C 192.168.201.0/24 [0/1] is directly connected, GigaEthernet2:1.5, 6d6h36m2s
ix2215# ping 192.168.10.101 <== テストPCへping
PING 192.168.100.254 > 192.168.10.101 56 data bytes
--- 192.168.10.101 ping statistics ---
5 packets transmitted, 0 packets received, 100% packet loss
ix2215#
ix2215# config t <== 設定モードへ
Enter configuration commands, one per line. End with CNTL/Z.
ix2215(config)# ip route 192.168.10.0/24 192.168.100.161 <== ルーティング情報登録
ix2215(config)# exit
ix2215# show ip route
IP Routing Table - 8 entries, 1 hidden, 2039 frees
Entries: 5 Connected, 3 Static, 0 RIP, 0 OSPF, 0 BGP
Codes: C - Connected, S - Static, R - RIP, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, B - BGP
* - Candidate default, s - Summary
Timers: Age
S* 0.0.0.0/0 [1/1] is directly connected, Tunnel0.0, 6d5h36m14s
10.0.0.0/8 is subnetted, 1 subnets
S 10.11.12.0/24 [1/1] via 192.168.100.1, GigaEthernet2:1.1, 6d5h36m14s
S 192.168.10.0/24 [1/1] via 192.168.100.161, GigaEthernet2:1.1, 0:00:12
C 192.168.100.0/24 [0/1] is directly connected, GigaEthernet2:1.1, 6d6h40m26s
C 192.168.101.0/24 [0/1] is directly connected, GigaEthernet2:1.2, 6d6h40m26s
C 192.168.102.0/24 [0/1] is directly connected, GigaEthernet2:1.3, 6d6h40m26s
C 192.168.200.0/24 [0/1] is directly connected, GigaEthernet2:1.4, 6d6h40m26s
C 192.168.201.0/24 [0/1] is directly connected, GigaEthernet2:1.5, 6d6h40m26s
ix2215#
ix2215# ping 192.168.10.101 <== テストPCへping
PING 192.168.100.254 > 192.168.10.101 56 data bytes
64 bytes from 192.168.10.101: icmp_seq=0 ttl=63 time=0.719 ms
64 bytes from 192.168.10.101: icmp_seq=1 ttl=63 time=0.472 ms
64 bytes from 192.168.10.101: icmp_seq=2 ttl=63 time=0.536 ms
64 bytes from 192.168.10.101: icmp_seq=3 ttl=63 time=0.477 ms
64 bytes from 192.168.10.101: icmp_seq=4 ttl=63 time=0.483 ms
--- 192.168.10.101 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip (ms) min/avg/max = 0.472/0.537/0.719
ix2215#
試しに、テストPC側から個別にルーティング情報を登録していない DNS(192.168.100.11), Synology NAS(192.168.100.20)へpingしてみよう.
MB13W:~ yasuaki$ ping 192.168.100.11
PING 192.168.100.11 (192.168.100.11): 56 data bytes
64 bytes from 192.168.100.11: icmp_seq=0 ttl=62 time=0.960 ms
64 bytes from 192.168.100.11: icmp_seq=1 ttl=62 time=0.816 ms
64 bytes from 192.168.100.11: icmp_seq=2 ttl=62 time=0.836 ms
^C
--- 192.168.100.11 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.816/0.871/0.960/0.064 ms
MB13W:~ yasuaki$ ping 192.168.100.20
PING 192.168.100.20 (192.168.100.20): 56 data bytes
64 bytes from 192.168.100.20: icmp_seq=0 ttl=62 time=0.547 ms
64 bytes from 192.168.100.20: icmp_seq=1 ttl=62 time=0.535 ms
^C
--- 192.168.100.20 ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.535/0.541/0.547/0.006 ms
MB13W:~ yasuaki$ ping 192.168.100.254
PING 192.168.100.254 (192.168.100.254): 56 data bytes
64 bytes from 192.168.100.254: icmp_seq=0 ttl=63 time=0.417 ms
64 bytes from 192.168.100.254: icmp_seq=1 ttl=63 time=0.442 ms
^C
--- 192.168.100.254 ping statistics ---
2 packets transmitted, 2 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.417/0.429/0.442/0.012 ms
MB13W:~ yasuaki$
今度は、DNSやSynology NASからもpingの応答があることが確認できる.この場合、DNSやSynology NASはこれまでと同じようにテストPCへの応答パケットをデフォルトルート側へ投げているだけなのだが、デフォルトルータ側で宛先をテストPC側のネットワークへのNext Hopである、APU2C4のLAN側("eth0": 192.168.100.161)へリダイレクトしているので、きちんとテストPCへ応答パケットが届くのだ.
IX-2215では 192.168.10.0/24 宛のICMPメッセージが届くと、ICMPメッセージを送ってきた送信元に対して、ICMPリダイレクトメッセージを返す.ICMPメッセージを送った送信元は、このメッセージを受けて再度ICMPメッセージを送指定されたリダイレクト先に送り直すという操作が行われる.試しに192.168.10.0/24 の静的経路情報を削除した後、192.168.10.101にpingを打ってみると、下記の様にICMPリダイレクトメッセージがルータ(IX-2215)から送り返されている様子が確認できるだろう.(この例では APU2C4のLAN側のIPアドレスは192.168.100.13 に変えてある)
iMac27:~ yasuaki$ sudo route delete 192.168.10.0/24
Password:
delete net 192.168.10.0
iMac27:~ yasuaki$ ping 192.168.10.101
PING 192.168.10.101 (192.168.10.101): 56 data bytes
92 bytes from gw.home.yoko (192.168.100.254): Redirect Host(New addr: 192.168.100.13)
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 0054 bf0e 0 0000 3f 01 cc97 192.168.100.77 192.168.10.101
64 bytes from 192.168.10.101: icmp_seq=0 ttl=63 time=0.707 ms
92 bytes from gw.home.yoko (192.168.100.254): Redirect Host(New addr: 192.168.100.13)
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 0054 0a76 0 0000 40 01 8030 192.168.100.77 192.168.10.101
64 bytes from 192.168.10.101: icmp_seq=1 ttl=63 time=0.704 ms
92 bytes from gw.home.yoko (192.168.100.254): Redirect Host(New addr: 192.168.100.13)
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 0054 4679 0 0000 40 01 442d 192.168.100.77 192.168.10.101
64 bytes from 192.168.10.101: icmp_seq=2 ttl=63 time=0.656 ms
92 bytes from gw.home.yoko (192.168.100.254): Redirect Host(New addr: 192.168.100.13)
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 0054 28bd 0 0000 40 01 61e9 192.168.100.77 192.168.10.101
64 bytes from 192.168.10.101: icmp_seq=3 ttl=63 time=0.701 ms
92 bytes from gw.home.yoko (192.168.100.254): Redirect Host(New addr: 192.168.100.13)
Vr HL TOS Len ID Flg off TTL Pro cks Src Dst
4 5 00 0054 46df 0 0000 40 01 43c7 192.168.100.77 192.168.10.101
64 bytes from 192.168.10.101: icmp_seq=4 ttl=63 time=0.667 ms
^C
--- 192.168.10.101 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.656/0.687/0.707/0.021 ms
iMac27:~ yasuaki$ netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.100.254 UGSc 58 8 en0
default 192.168.101.254 UGScI 0 0 vlan0
default 192.168.200.1 UGScI 0 0 vlan2
default 192.168.102.254 UGScI 0 0 vlan1
default 192.168.201.254 UGScI 0 0 vlan3
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 2 1092156 lo0
169.254 link#7 UCS 0 0 en0
169.254 link#14 UCSI 0 0 vlan0
169.254 link#15 UCSI 0 0 vlan2
169.254 link#16 UCSI 0 0 vlan1
169.254 link#17 UCSI 0 0 vlan3
192.168.100 link#7 UCS 9 0 en0
192.168.100.11 98:5a:eb:df:be:26 UHLWIi 22 3642 en0 1000
192.168.100.13 0:d:b9:47:1c:18 UHLWI 0 0 en0 1152
192.168.100.77/32 link#7 UCS 1 0 en0
...
この実験では IX-2215 という業務用のルータに対しての静的な経路情報設定なので、コマンドで簡単に設定できたが、家庭用のブロードバンドルータでこの静的経路設定(static route)を行える機種は限られているかもしれない.参考までに、手元にあった "NEC Aterm WR9500N" の管理画面での静的ルート設定場所を示す.
NEC Aterm WR9500Nでの静的経路情報登録画面
NEC Aterm WR9500NでのDHCP固定IP設定画面
今回は、APU2C4のLAN側("eth0")をDHCPでIPアドレスを取得する設定としたが、この方法ではAPU2C4のLAN側のIPアドレスが変わる度に、デフォルトルータのルーティング情報を手動で毎回書き換えなければならないのでとても不便だ.DHCPのリース情報に従って、IPアドレスに変更があった場合に、デフォルトルータ側のルーティング情報を自動的に書き換える仕組みを導入することも可能だが、かなりのスキルが必要なので、一般のユーザでは実装不可能だろう.
自分家のLAN側のIPアドレスを一部固定で運用できるのであれば、APU2C4のLAN側("eth0")は固定IPで運用することを薦める.DHCPのアドレス割り当て範囲を192.168.1.101-192.168.1.200 などのように絞ることができる場合が多いので、割り当て外のアドレスを固定IPとして割り振れば良い.ブロードバンドルータのDHCPサーバ機能には、クライアントのMACアドレスに紐付けて常に固定IPでアドレスを払い出す仕組みが備わっている物もあるので、その機能を利用するのも一つの手だろう.
最後に、テストPCから家庭内LAN側にある Synology NAS とAPU2C4のNAS上のボリュームが NFSマウントできることを確認してみることにする.今回はコマンドラインで NFSマウントすることにする.
MB13W:~ yasuaki$ sudo mkdir /tmp/mnt
MB13W:~ yasuaki$ sudo mkdir /tmp/mnt/nas
MB13W:~ yasuaki$ sudo mkdir /tmp/mnt/synology
MB13W:~ yasuaki$ sudo mount -t nfs 192.168.100.20:/volume2/NASData2T /tmp/mnt/synology
MB13W:~ yasuaki$ sudo mount -t nfs 192.168.10.254:/home/music/Music /tmp/mnt/nas
MB13W:~ yasuaki$ sudo mount -t nfs 192.168.10.254:/home/music /tmp/mnt/nas
MB13W:~ yasuaki$ df -m
Filesystem 1M-blocks Used Available Capacity Mounted on
/dev/disk0s2 38103 9460 28393 25% /
devfs 0 0 0 100% /dev
/dev/disk0s3 83544 3391 80153 5% /Volumes/Home
map -hosts 0 0 0 100% /net
map auto_home 0 0 0 100% /home
192.168.100.20:/volume2/NASData2T 2013265 429309 1583956 22% /private/tmp/mnt/synology
192.168.10.254:/home/music 483392 224444 258433 47% /private/tmp/mnt/nas
MB13W:~ yasuaki$
テストPC上で Synology NASとAPU2C4上の音楽用NASの両方がマウントできることを確認
今回は家庭内LANとオーディオ用ネットワークとをIPルーティングによって双方向通信を行ってみたが、次回はNAT/NAPTを上手く利用して、もう少しスマートにオーディオ用ネットワークを運用する方法について検討しようと思う.