スキップしてメイン コンテンツに移動

投稿

5月, 2020の投稿を表示しています

フレッツ光クロス:MAP-E ROUTER by Debian Box (iptables)

フレッツ光クロスがようやく開通したので、Debianにてrouterを構成し接続してみました。なお、プロバイダーを選ぶにあたっては、IPoE方式がそれぞれ異なるため検討したところ、IPoEでは、MAP-Eでもv6plusとocnバーチャルコネクトがあり、前者がポート数240なのに対し、後者は約4倍のポート数が使えるようなネットの情報をみて、OCNバーチャルコネクトを選択しました。(プロバイダーとしてはぷららです。なおDS-LiteはCE側でのNATではないので今回は見送りました。)そこで、OCN バーチャルコネクトをDebian(iptables)で実現するとどうなるかと思い、ネットの情報を頼りにしつつ、設定した次第です。 実際に試した結果、とりあえず通信できていますが、MAP-Eは本来マッピングルールをマップサーバから取得するはずなので、今回のやり方が正解とはいえませんし、仕様変更されると通信できなくなる可能性があります。あくまでも参考程度ですが、本稿をUPしてみました。 2023/03/16追記: こちら にゲームコンソールNAT越え(Nintendo Switch ナットタイプ A判定)対応版を投稿しました。 2023/03/28追記:※1の記述および3行無効化によりNAT越え(Nintendo Switch ナットタイプ B判定)できるようになりました。 構成は以下の通りです。 ルーターがDebianで回線がOCNバーチャルコネクトであること以外はなにも特別なところはない構成です。 さて、いきなり設定ですが、まず、割り当てられたプレフィックスを確認します。 確認は、 dhclient -6 -d -P enp2s0 とします。出力の中に 前略 RCV: | | X-- IAPREFIX 2400:4050:5c71:af00::/56 後略 このようにプレフィックスが表示されるので、その確認したプレフィックスを書き留めておきます。これを こちらで 入力します。すると、 CE: 2400:4050:5c71:af00:99:f171:c600:2f00 IPv4 アドレス: 153.241.113.198 ポート番号:(1776-1791 2800-2815 3824-3839) 4848-4863 5872-5887 6896-

プライベートAS番号にてBGPを走らせる:その5ー3点間でのシンプルな接続

BGPの設定は非常に奥が深いので、まずは、シンプルに三点間の接続でもフルメッシュではない構成についてupしてみました。構成は以下の通りです。 この構成の場合、sv247は一応はトランジットASということになります。ですので、構成が上手くできていればsv30とsv52との間でsv247を経由して通信できる構成です。 1. GREトンネルによりsv247-sv52間を接続 1-1. sv247側でのgre2 #/etc/network/interfaces.d/gre1 auto gre2 iface gre2 inet6 manual up ip link add name gre2 type ip6gre \ local 2001:a:b:c::247 \ remote 2001:f:f:f::52 \ hoplimit 255 dev ens3 up ip -6 addr add fd00:2::247/96 dev gre2 up ip link set gre2 up 1-2. sv52側でのgre1 #/etc/network/interfaces.d/gre1 auto gre1 iface gre1 inet6 manual up ip link add name gre1 type ip6gre \ local 2001:f:f:f::52 \ remote 2001:a:b:c::247 \ hoplimit 255 dev ens3 up ip -6 addr add fd00:2::30/96 dev gre1 up ip link set gre1 up 続いてピアを張ります。 2. SV247側 root@sv247:~# vtysh Hello, this is FRRouting (version 6.0.2). Copyright 1996-2005 Kunihiro Ishiguro, et al. sv247# conf t sv247(config)# router bgp 4200010247 sv247(config-router)# neighbor fd00:2::52 remote-as 420001005

プライベートAS番号にてBGPを走らせる:その4ーIPv6経路の広報

二点間のピアリングを、GREトンネル経由で張れたので、続いて経路の広報を行います。構成は前回と同じです。 SV30以下に、/116のIPv6サブネットが二つ接続されているとし、これらを広報します。なお、デフォルトではIPv4を広報しない設定にしておきます。 1. SV30側の設定 root@sv30:/etc/quagga# vtysh Hello, this is Quagga (version 1.2.4). Copyright 1996-2005 Kunihiro Ishiguro, et al. sv30# conf t sv30(config)# router bgp 4200010030 sv30(config-router)# no bgp default ipv4-unicast sv30(config-router)# address-family ipv6 sv30(config-router-af)# network 2001:aaaa:bbbb:cccc::abcd:1000/116 sv30(config-router-af)# network 2001:aaaa:bbbb:cccc::abcd:2000/116 sv30(config-router-af)# neighbor fd00:1::247 activate sv30(config-router-af)# end sv30# write mem 2. sv247側の設定 root@sv247:~# vtysh Hello, this is Quagga (version 1.2.4). Copyright 1996-2005 Kunihiro Ishiguro, et al. sv247# conf t sv247(config)# router bgp 4200010247 sv247(config-router)# no bgp default ipv4-unicast sv247(config-router)# address-family ipv6 sv247(config-router-af)# neighbor fd00:1::30 activate sv247(config-router-af)# end sv247# write mem 3.

プライベートAS番号にてBGPを走らせる:その3ー2点間でのピアリング

基本方針の通り、ROUTER-IDはPrivete IPv4あるいはPrivate IPv4アドレスとし、neighborはIPv6にてトンネル接続し、さらに、ピアリングを行います。構成は以下の通りです。 まずは、経路情報なしでピアリングだけ行います。なお、ピアリングを行う前に、 AS内で一意のROUTER-IDと32bitのプライベートAS番号を設定 しておいてください。 1. GREトンネルにより二点間を接続 1-1. sv247側でのgre1 #/etc/network/interfaces.d/gre1 auto gre1 iface gre1 inet6 manual up ip link add name gre1 type ip6gre \ local 2001:a:b:c::247 \ remote 2001:1:2:3::30 \ hoplimit 255 dev ens3 up ip -6 addr add fd00:1::247/96 dev gre1 up ip link set gre1 up 1-2. sv30側でのgre1 #/etc/network/interfaces.d/gre1 auto gre1 iface gre1 inet6 manual up ip link add name gre1 type ip6gre \ local 2001:1:2:3::30 \ remote 2001:a:b:c::247 \ hoplimit 255 dev ens3 up ip -6 addr add fd00:1::30/96 dev gre1 up ip link set gre1 up 2. SV247側 root@sv247:~# vtysh Hello, this is FRRouting (version 6.0.2). Copyright 1996-2005 Kunihiro Ishiguro, et al. sv247# conf t sv247(config)# router bgp 4200010247 sv247(config-router)# neighbor fd00:1::30 remote-a

プライベートAS番号にてBGPを走らせる:その2ー基本的な方針について

基本的な方針を検討するにあたり、現在のネットワークの構成についてですが、筆者の環境では前提としてローカルネットワークのIPv4 は、private addresで、IPv6はULAを使っています。また、IPv6については、VPSではGUAを使っている場合もありますし、ローカルネットワークのgatewayでもGUAは使っています。また、ローカルネットワークはIPv4をプロバイダ配布のルータがgatewayになっており、IPv4をそこでmasquaradeされます。また、ULAにてIPv6は運用していますが、gatewayではNETMAP(NPT)していますので、外部からはGUAにてアクセスはできます。こうやって書いているだけでもネットワークの設定は非常に面倒くさいことはわかっていただけると思いますが、そうはいってられないので、設定方針を決めていきたいと思います。 1.主に使うのはIPv6 IPv4を使う場合は、IPv4をIPv6でトンネルさせることが基本とします。こうすることでIPv6は基本的に生足のMTU1500が使えるということになります。 2.Router-IDについて Router-IDは、AS内で一意の32bit値でよいので、パブリックIPアドレスでもよいですし、プライベートアドレスをRouter-IDとしてもよいようです。 3. bgp neighborについて 前述のようにローカル、VPSともにGUAにて通信できるので、neighborは基本的にはIPv6でピアリングすることにします。 4. IPv4を使用する場合、IPIP6(ipv4 over ipv6)トンネルを使う ローカルネットワークのPrivate IPv4ネットワークとVPSのPrivate IPv4ネットワークを接続する際は、IPIP6トンネルを使います。こうすることで、高速な光回線をNativeIPv6を使いつつ、MTU値の減少を最小限にとどめることができると思います。

プライベートAS番号にてBGPを走らせる:その1ーインストールと初期設定

プライベートAS番号をつかって、VPSとローカル間でIPv6経路の自動設定をやってみました。 まず、使用するソフトですが、vyosのバックエンドでも使われている、frrを使用することにします。Debian 10/Busterでのインストールは以下の通りです。 apt-get install frr つづいてAS番号についてです。プライベートAS番号は、16bitのものと32bitのものがあります。前者は、64512 - 65534、後者は、4200000000 - 4294967294です。( Wikipedia ASN Tableより )今回は32bitのプライベートアドレスを使うことにしました。理由は、桁数が大きいので、420001xxxxのように規則を作ることで、わかりやすいためです。 1. frrの初期設定 インストール後、bgpを起動させるようにします。 # vi /etc/frr/daemons (前略) bgpd=yes (後略) デーモンを再起動させます。 /etc/init.d/frr restart この状態で、vtyshを実行します。起動できれば、初期設定は完了です。 root@svXX:~/# vtysh svXX# 2-1. frrの基本設定-telnet接続まで frrはquaggaとおなじくvtyshでもほとんどの作業はできますが、まずは、telnetでも接続できるようにしておきます。 root@svXX:~/# vtysh svXX# config terminal svXX(config)# service integrated-vtysh-config svXX(config)# service password-encryption svXX(config)# password P@ssW0rd svXX(config)# enable password P@ssW0rd svXX(config)# end svXX# write memory Note: this version of vtysh never writes vtysh.conf Building Configuration... Integrated configuration saved to /etc/frr/frr.conf