ラベル Networking の投稿を表示しています。 すべての投稿を表示
ラベル Networking の投稿を表示しています。 すべての投稿を表示

2021年5月16日日曜日

NEC IX2215でPPPoEとMAP-EによるIPv4接続を共存させてみた

外へのインターネット接続を、いい加減PPPoE方式による接続から、MAP-E方式による接続に切り替えたいと思っていたところ、思わぬ形でNECのIX2215というルーターをゲットしましたので早速やってみました。

NECの公式の方にMAP-E方式で接続する場合の設定例もアップされているため、MAP-Eでのインターネットへの接続自体は割とあっさりと行けました。

しかし、MAP-E方式では、一つのグローバルIPアドレスのうち、一部のポートのみが割り当てられる仕様のため、ポート開放は行えないためにサーバー用途での利用は事実上厳しいので、そのあたりをクリアするためには従来のPPPoE方式も併用する必要が出てきます。
(PPPoE方式ではプロバイダにもよりますが、グローバルIPアドレスが1つ割り当てられ、自由にポート開放したりできるため)

最初は、今回買ったIX2215でMAP-E接続を行い、外界との通信は基本的にそちらに流れるようにして、一部の通信のみは今までのルーター側に流してPPPoE接続側を通るようにしようかとも考えておりましたが、IX2215の設定をあれこれ弄り回すうちに、これって両方のセッションを一台で共存させて振り分けられるのでは?と思ったので試してみました。

イメージとしては下記となります。

  • GigaEthernet0 (GE0)をFlets回線へ接続
  • GigaEthernet1 (GE1)は外部公開しないマシン用のネットワークとして、別のスイッチに接続
  • GigaEthernet2 (GE2)をポートベースVLANで分割し、ポート1から4を外部公開するサーバー用に、ポート5から8を内部用に設定
  • 外部公開するサーバーは、「10.168.0.0/24」のネットワークに設置し、このネットワーク範囲から外部へのアクセスをIPv4アクセスリストで認識し、PPPoE側へと流す。
    (interface: GigaEthernet2:1.0 / route-map: pppoe-route / access list: local-filter)
  • それ以外のネットワークから外部にアクセスする場合、すべてIPoE側に流れるようにデフォルトルートを設定する。
    (デフォルトルート: Tunnel0.0)

大雑把に言うと、特定のネットワーク範囲のマシンから外部に通信する場合のみPPPoE側に流し、それ以外はすべてIPoE側に流すという動作をするように設定します。

構成例は下記となります。

ip ufs-cache max-entries 20000
ip ufs-cache enable
ip route default Tunnel0.0
ip dhcp enable

ipv6 ufs-cache max-entries 10000
ipv6 ufs-cache enable
ipv6 dhcp enable

proxy-dns ip enable
proxy-dns ip request both

ipv6 access-list block-list deny ip src any dest any
ipv6 access-list dhcpv6-list permit udp src any sport any dest any dport eq 546
ipv6 access-list dhcpv6-list permit udp src any sport any dest any dport eq 547
ipv6 access-list icmpv6-list permit icmp src any dest any
ipv6 access-list tunnel-list permit 4 src any dest any
ipv6 access-list other-list permit ip src any dest any
ipv6 access-list dynamic cache 65535
ipv6 access-list dynamic dflt-list access other-list

ip access-list reject-outgoing deny udp src any sport eq 135 dest any dport any
ip access-list reject-outgoing deny udp src any sport any dest any dport eq 135
ip access-list reject-outgoing deny tcp src any sport eq 135 dest any dport any
ip access-list reject-outgoing deny tcp src any sport any dest any dport eq 135
ip access-list reject-outgoing deny udp src any sport eq 445 dest any dport any
ip access-list reject-outgoing deny udp src any sport any dest any dport eq 445
ip access-list reject-outgoing deny tcp src any sport eq 445 dest any dport any
ip access-list reject-outgoing deny tcp src any sport any dest any dport eq 445
ip access-list reject-outgoing deny ip src any dest 10.0.0.0/8
ip access-list reject-outgoing deny ip src any dest 172.16.0.0/12
ip access-list reject-outgoing deny ip src any dest 192.168.0.0/16
ip access-list reject-outgoing permit ip src any dest any

ip access-list local-filter deny ip src any dest 10.0.0.0/8
ip access-list local-filter deny ip src any dest 172.16.0.0/12
ip access-list local-filter deny ip src any dest 192.168.0.0/16
ip access-list local-filter permit ip src any dest any

route-map pppoe-route permit 10
  match ip address access-list local-filter
  set default interface GigaEthernet0.1
  set interface GigaEthernet0.1

ip dhcp profile dhcpv4-sv
  dns-server 10.168.6.1
  

ipv6 dhcp client-profile dhcpv6-cl
  information-request
  option-request dns-servers

ipv6 dhcp server-profile dhcpv6-sv
  dns-server dhcp

ppp profile ppp_profile
  authentication myname hoge@fuga.com
  authentication password hoge@fuga.com password

interface GigaEthernet0.0
  no ip address
  ipv6 enable
  ipv6 address autoconfig receive-default
  ipv6 dhcp client dhcpv6-cl
  ipv6 filter dhcpv6-list 1 in
  ipv6 filter icmpv6-list 2 in
  ipv6 filter tunnel-list 3 in
  ipv6 filter block-list 100 in
  ipv6 filter dhcpv6-list 1 out
  ipv6 filter icmpv6-list 2 out
  ipv6 filter tunnel-list 3 out
  ipv6 filter dflt-list 100 out
  no shutdown

interface GigaEthernet0.1
  ppp binding ppp_profile
  ip address ipcp
  ip napt enable
  ip tcp adjust-mss auto
  no shutdown
  ip napt service http 10.168.0.80 none tcp 80
  ip napt service softether 10.168.0.30 none tcp 5555
  ip filter reject-outgoing 1 out

interface GigaEthernet1.0
  ip address 10.168.7.254/24
  no shutdown

device GigaEthernet2
  vlan-group 1 port 1 2 3 4
  vlan-group 2 port 5 6 7 8

interface GigaEthernet2:1.0
  ip address 10.168.0.254/24
  ip policy route-map pppoe-route
  no shutdown

interface GigaEthernet2:2.0
  ip address 10.168.6.1/24
  no shutdown

interface Tunnel0.0
  tunnel mode map-e
  ip address map-e
  ip tcp adjust-mss auto
  ip napt enable
  ip filter reject-outgoing 1 out
  no shutdown

ハマりやすいところとしては、GigaEthernet2:1.0からの通信をIPv4アクセスリストなしですべてroute-mapで処理してしまうと、外部公開するサーバーと内部のマシンがルーターを介して一切通信できなくなってしまいます。
そのため、アクセスリストでプライベートIPアドレスの範囲を検出して、route-map適用除外を行ってやる必要があります。

また、アクセスリストの最後に「ip access-list local-filter permit ip src any dest any」を書かないと、すべてのパケットがroute-map適用除外になってしまい、MAP-E側に流れてしまうのでこれまた失敗となってしまいます。

結果的にこのようになり、安定して稼働しております。

上記の設定に更に追加で、ポートベースVLANの上にタグVLANも乗っけて動くように構成してあります。

IX2105やIX2106など、ポート数が少ない機種で試す場合はインターフェース名などを適宜変更すれば動くかもしれません。




2014年4月30日水曜日

SoftEtherでVPNを構築した際に、ローカル側ネットワークにアクセスできなくなる問題を回避してみる (3)

前回と前々回の記事

SoftEtherでVPNを構築した際に、ローカル側ネットワークにアクセスできなくなる問題を回避してみる (1)
SoftEtherでVPNを構築した際に、ローカル側ネットワークにアクセスできなくなる問題を回避してみる (2)

までで、VPNを構築した際にローカル側ネットワークにアクセスできなくなる場合があること、およびそれの回避方法についてまで書きました。

前回の記事までで、この現象は

「VPNセッションを張った際に、DHCPによって自動的にIPアドレスやデフォルトゲートウェイの情報が割り振られることによって、VPN Server側のルータを経由して通信するように設定されてしまうこと」

が原因であると書き、それの対策にはDHCPの通信をブロックしてしまえば良いと書きました。


しかし、このような手法を取った場合、VPNクライアントはIPアドレスを手動で入力しないと通信できない状態になります。

今回は、VPNクライアント用のDHCPサーバを設置して、VPNクライアントに自動的にIPアドレスが割り当てられるように設定します。

2014年4月18日金曜日

恒久的なルーティング情報 / スタティックルートを追加する (CentOS / RedHat系、IPv4)

CentOSなどのRedHat系Linuxでルーティング情報を設定するには、routeコマンドを使用する。
routeコマンド使用例:


route add -net (宛先ネットワークアドレス) netmask (ネットマスク) gw (ルータアドレス)

route add -net (宛先ネットワークアドレス)/{プレフィックス} gw {ルータアドレス}

入力例:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.254

route add -net 192.168.1.0/24 gw 192.168.0.254

これらのうち、どちらかの形式を入力します。
Windowsのrouteコマンドと違って、プレフィックス表記が使えます。

しかし、routeコマンドで登録したスタティックルートは、マシンを再起動すると設定が消えます。

設定を消さないためには、以下の設定を行う必要があります。

2014年4月16日水曜日

SoftEtherでVPNを構築した際に、ローカル側ネットワークにアクセスできなくなる問題を回避してみる (2)

前回の記事

SoftEtherでVPNを構築した際に、ローカル側ネットワークにアクセスできなくなる問題を回避してみる (1)

において、VPNを構築した際にローカル側ネットワークにアクセスできなくなる問題が発生する場合があることについて記載しました。

この現象の原因は、VPNセッションを張った際にDHCPによって自動的にIPアドレスやデフォルトゲートウェイの情報が割り振られることによって、VPN Server側のルータを経由して通信するように設定されてしまうことが原因であると前回書きました。
つまり、VPN Server上を通過するDHCPの通信を遮断できれば、この問題は発生しないことになります。
今回は、SoftEtherの機能を用いてこの機能を実現してみます。

2014年4月10日木曜日

SoftEtherでVPNを構築した際に、ローカル側ネットワークにアクセスできなくなる問題を回避してみる (1)

SoftEtherでVPNを構築する際に、既存のローカルネットワークにブリッジするか、あるいは仮想NAT機能を用いて構築することが多いと思います。


これらの手法でVPNを構築した場合、ほとんどの場合インターネットへのパケットは必ずVPNサーバを経由して通信されることになります。
以下にインターネットにパケットを送信する際の流れ方を示します。
実のことを言いますと、インターネットだけではなく、VPN接続元のクライアントPCが属しているネットワーク以外へのアクセスがVPNサーバ経由になります。

2014年1月20日月曜日

Windowsのファイル共有のユーザ権限設定あれこれ (匿名アクセスなど) (1)

Windowsでファイルサーバ的なものを構築する際、初期設定ではクライアントからアクセスする度にユーザ名とパスワードを求められる...はずです。

 
 
 
しかし、アクセスするユーザが限定されているなど、安全性が十分に確保されているような用途によっては、アクセス時にユーザ名とパスワードを求められない匿名アクセスを可能にして、サーバのアドレスを入力するだけでアクセス可能にしたいこともあると思います。
まずは、Windows共有で匿名アクセスを可能にする方法について説明します。

2014年1月3日金曜日

ESXi 5.5にe1001eドライバ (Intel 82579LMドライバ) を組み込む

メインサーバのディスクをSSDに交換したのを機会に、ESXi5.5をインストールしたが、相変わらずe1001eドライバがデフォルトで入っていなかったので、手動インストールしました.
e1001eドライバが入っていないと、intel 82579LMチップをESXiがネットワークアダプタとして認識することが出来ず、ネットワークアダプタとして使用することはできません. (パススルーなんかは可能)


結論から言うと、ESXi 5.0とかESXi 5.1と同じ方法でネット上に公開されているドライバを組み込んでやることで動かすことが出来るようになります.
コミュニティベースのツールで、e1001eドライバのパッケージを作成し、それをESXiのデータストアにアップロードした上で、ESXiのコンソールをSSHで操作してインストールしてしまうって方法です.


以下に詳細な方法を示します.

2013年9月9日月曜日

IPv4 to IPv6 HTTP-Proxyを構築してみる (1)

自宅内からインターネットに繋ぐ際に、IPv4とIPv6が混在しているせいでどっちかがもう片方に影響して宅内LANのDNSが引けなくなったりなどするのにうんざりしたので、宅内LANは原則IPv4にして、出入口でIPv6通信にすればいいんじゃないかと思ったので。

まあイメージ的にはこんなものになるんじゃないかと思われます。

クライアント機(IPv4接続)から要求されたサイトが、IPv6接続できるサイトであればIPv6でアクセスした結果を返し、IPv4でのみしか接続できないサイトはIPv4での結果を返すように動かす予定です。

とりあえず、仮想サーバを新たに作成してCentOSを入れるところまでは作業してあります。

つづく (たぶん)

2013年8月18日日曜日

恒久的なルーティング情報 / スタティックルートを追加する (Windows、IPv4)

Windows OSでルーティング情報を設定するには、routeコマンドを使用する。
何もオプションを付けずに設定するとOSの再起動で消えてしまうが、オプション -p を追加して設定すれば再起動後も設定が消えないようになる。