EBUG第27回会合の勉強会「FreeBSDを使ってIPv6を使い込む」で出されたお題

これが可能かどうかを以下の環境で検証した。 OuterGW, InnerGW, ClientはいずれもOpenBSD 4.3。

                             Intenret
                                |
                                :
                                :
                                |
                            [OuterGW (+DNS)]
                                |em1 172.31.0.1
                                |
Segment A                       |              172.31.0.1/24
----------------------+---------+---------------------------
                      |                  2001:3e0:434:4::/64
                      |
                      |ne0 172.31.0.125
                  [InnerGW]
                      |ne1 192.168.64.1
                      |
Segment B             |                      192.168.64.0/24
-----------+----------+-------------------------------------
           |                             2001:3e0:434:4::/64
           |                                        (= Seg.A)
           |fxp0 192.168.64.2
        [Client]

InnerGWの設定

IPv4はIPパケットを転送し、IPv6パケットはしないようにする。

# sysctl -w net.inet.ip.fowarding=1
# sysctl -w net.inet6.ip6.fowarding=0

経路の設定

# route add -inet  default 173.31.0.1
# route add -inet6 default (OuterGWのem1側リンクローカルアドレス)

bridgeの設定

# ifconfig bridge0 create
# brconfig add ne0
# brconfig add ne1
# brconfig up

これで、ne0 <-> ne1間がブリッジ接続され、Segment-A/B間をIPv6パケットが行き来 できるようになった。

NATの設定
... pfを用いてNATを設定する。

---pf.conf---
int_if="ne1"

nat on $ext_if inet from !($ext_if) to any -> ($ext_if)

pass all

このあと、

# pfctl -f /etc/pf.conf
# pfctl -e

Clientの設定

# ifconfig fxp0 inet6 2001:3e0:434:4 eui64   <-グローバルアドレスを付けてみる
# route add -inet  default 192.168.64.1
# route add -inet6 default (OuterGWのem1側リンクローカルアドレス
                            = InnterGWの設定と同じ)
# vi /etc/resolv.conf  <- (OuterGWのem1側リンクローカルアドレスを追加)

確認

この状態で、Clientにログインし、状況を観察する。


Front page   New Page list Search Recent changes   Help   RSS of recent changes