平衡点


2015/10/24

_ OpenBlocks AX3

昨年度末に買ったは良いが、まったく触れていなかった OpenBlocks AX3 にようやく火を入れた. 購入したのは「OpenBlocks AX3 イーサ4ポート J パッケージ」.

初期状態で起動し, シリアルコンソールで接続してみると, ほぼ「素」の Wheezy環境. 公式ドキュメントにある通り,

  • / は 128MB の RAM ディスク(initrd)
  • /.rw を 384MB の RAMディスク(tmpfs) として確保し,

/etc,/user 等をこの下に作成

  • Unionfs で /.rw/user 等を /usr に被せている

flashcfg で RAM ディスク(initrd)は上書き可能なので, 必要な設定をしたら initrd を更新しておき, システムは read-only で運用する, などとするのが良いのだろう.

想定している用途は「4 つある Gigabit Ethernet を使っての, 居室内のルーティングと職場 LAN 環境のモニタリング」であるわけだが, ちょっと設定したら, すぐに 384MB 使い切ってしまったので, そのうちメモリとディスクを追加すると思う.

_ 複数 NIC が存在する場合のルーティング

最近弄ってなかったから忘れてしまっていたので, メモ.

HW

  • HW: Openblocks AX3
  • OS: Debian 7.9 (wheezy)

ネットワーク環境

OpenBlocks AX3 をルータに.

  • eth0: global IP
  • eth1: 内部 LAN, 固定 IP
  • eth2: 居室 LAN, 固定 IP

図にすると以下の様な感じ, かな?

                    +--------+
                    |    |
         +----------内部LAN1---+gateway1+---内部LAN2,3,...
         |           |    |
     +------+-------+       +--------+
     |  eth1   |  +--------+
     |       |  |    |
居室LAN---+eth2   eth0+----+gateway0+---------The Internet
     |       |  |    |
     |  eth3   |  +--------+
     +------+-------+

AA ちゃんと出るのかしら? 駄目か.

やりたい事

  • 居室LAN内の計算機は eth2 から IP Masquarade で eth0 を経由して外へ出る
  • ただし, 内部LANへの接続の際には eth1 を経由する.
  • 内部LAN には VLAN 間通信が設定されているので, 内部LAN2, LAN3 への接続の際には LAN1 の gateway を経由して接続する

ルーティング

  • 先ず, eth0 は通常通りに設定する.
  • 次に eth1, eth2 に関しては gateway に関する設定行を書かない.

この時点で eth0, eth1, eth2 の機材との疎通を確認しておくと良い.

% route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         [gateway0]      UG    0      0        0 eth0
[内部LAN1]      0.0.0.0         255.255.255.0   U     0      0        0 eth2
[グローバルIP]  0.0.0.0         255.255.255.0   U     0      0        0 eth0
[居室LAN]       0.0.0.0         255.255.255.0   U     0      0        0 eth1

といった塩梅.

  • 最後に route を追加: 内部LAN2,3 の gateway として [gateway1] を指定してやれば良い

    % route add -net [内部LAN2] netmask 255.255.255.0 gw [gateway1] dev eth2
    % route add -net [内部LAN3] netmask 255.255.255.0 gw [gateway1] dev eth2
    % route add -net [内部LAN4] netmask 255.255.255.0 gw [gateway1] dev eth2

結果

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         [gateway0]      UG    0      0        0 eth0
[内部LAN1]      0.0.0.0         255.255.255.0   U     0      0        0 eth2
[内部LAN2]      [gateway1]      255.255.255.0   U     0      0        0 eth2
[内部LAN3]      [gateway1]      255.255.255.0   U     0      0        0 eth2
[グローバルIP]  0.0.0.0         255.255.255.0   U     0      0        0 eth0
[居室LAN]       0.0.0.0         255.255.255.0   U     0      0        0 eth1

DNS

グローバル側, 内部LAN, 居室LANそれぞれの名前解決をどうするか, ということで安直なのは dnsmasq を使うこと.

  • /etc/resolv.conf は常に 127.0.0.1 を見るようにしておく.

    nameserver 127.0.0.1
    search [居室LANのドメイン]
  • /etc/dnsmasq.d/local.conf なんてファイルを作成して, 以下を書き込んでおく.

    except-interface=eth0,eth2,eth3
    listen-address=127.0.0.1,[eth1のIP]
    bind-interfaces
    dhcp-range=eth1,[居室LAN DHCP start],[居室LAN DHCP end],12h
    no-dhcp-interface=eth0,eth2,eth3
    resolv-file=/etc/dnsmasq.resolv.conf
    strict-order
    server=/[内部LANドメイン]/[内部LANのDNS]
    server=/[内部LAN1逆引き]/[内部LANのDNS]
    server=/[内部LAN2逆引き]/[内部LANのDNS]
    server=/[内部LAN3逆引き]/[内部LANのDNS]
  • /etc/dnsmasq.resolv.conf にグローバル側の DNS を書いておく

    nameserver [DNS1]
    nameserver [DNS2]
  • /etc/hosts に居室LAN内の計算機をベタ書きしておく. DHCP レンジは使わないこと.

これによって

  • DNS, DHCP の受け付けは 居室LAN (eth1) からのみ.
  • 通常は global 側の DNS で名前解決:
  • 指定したドメイン等に関しては内部LANのDNSを使う

となる. また, DHCP での接続も OK

NAT/IP forward

net.ip4.ip_forward=1 にして iptables で NAT テーブルを書くだけで良い. POSTROUTING をアドレスによってデバイス(eth0, eth2)に割り振る, というのが違いかな?

最近は適当に ip forward の設定を書いた後で, iptables-persisitent (jessie 以降は netfilter-persistent) を実行して, 起動時に有効になるようにしている.

まとめ?

居室にはいま(プリンタ等も含め) 15 台ぐらい計算機があって, わりと結構な量の通信があるのだけれど, 特に問題無く動いている模様.

とりあえず.


連絡先など
最近の日記
  • 2024/10/09
    • 1. Mastodon でのメール通知, というか Exim4 と Apparmor
  • 2024/06/19
    • 1. WSL2 での gpg-agent, ssh-agent
  • 2024/06/18
    • 1. WSL で Windows 側のフォントを利用する
  • 2024/06/17
    • 1. WSLとWindowsの時刻同期
  • 2024/06/12
    • 1. wsl2 で systemd
    • 2. wslg の設定
一覧
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|02|03|04|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|09|10|
2016|02|03|
2017|01|02|03|05|06|07|09|11|12|
2018|03|06|07|10|11|12|
2019|01|02|03|04|05|07|10|12|
2020|01|02|03|04|05|08|09|10|11|12|
2021|01|02|03|05|06|07|08|09|11|12|
2022|01|02|03|04|05|06|08|10|11|12|
2023|02|03|04|06|08|09|11|12|
2024|01|02|03|04|05|06|10|
Back to Top ▲