2012年5月7日月曜日

Linuxルーターを構築する(rp-pppoe設定編)

こんにちは。サイオステクノロジーの小川です。

本日は Linux ルーターの構築方法のご紹介をします。

Linux ルーターを構築するメリットとしては、CPU やメモリ、NIC などを自分で選択できることや、ルーターで使用するコンピュータを他のサーバ用途で使用できることがあげられます。また、ルーターへの負荷の問題などを考慮した場合に、Linux を使用した方が制限のある市販のルーターと比べ、柔軟に対応ができることが考えられます。

まずはじめに、プロバイダと PPPoE で通信を行うために rp-pppoe の設定を行いました。OS は CentOS 5 系と 6 系を使用しています。RPM パッケージからインストールした場合とソースコードからインストール場合を試したので、設定方法を下記に記載します。なお、本記事では NIC を 2 枚刺した PC 環境で設定を行っています。


  • CentOS 5 系の設定

  • 1. rp-pppoe をインストールする。
    # yum install rp-pppoe

    2. adsl-setup を実行し、PPPoE クライアントの設定を行う。
    # adsl-setup

    3. PPPoE 通信で使用するデバイス名を入力する。今回はデバイス名を ppp0 とするためそのまま ENTER を押す。
    Welcome to the ADSL client setup.  First, I will run some checks on
    your system to make sure the PPPoE client is installed properly...
    
    The following DSL config was found on your system:
    
      Device:      Name:
      ppp0         DSLppp0
    
    Please enter the device if you want to configure the present DSL config
    (default ppp0) or enter 'n' if you want to create a new one: 
    
    4. PPPoE 通信で使用するプロバイダから提供された認証 ID を入力する。
    Welcome to the ADSL client setup.  First, I will run some checks on
    your system to make sure the PPPoE client is installed properly...
    
    LOGIN NAME
    
    Enter your Login Name (default root):xxxxxxxx@xxxxxxxx.ne.jp
    

    5. モデムに繋いでいる NIC のデバイス名を入力する。
    INTERFACE
    
    Enter the Ethernet interface connected to the ADSL modem
    For Solaris, this is likely to be something like /dev/hme0.
    For Linux, it will be ethX, where 'X' is a number.
    (default eth0): eth1
    
    6. 通信が自動的に切断されるまでのアイドル時間の秒数を指定できる。今回は自動的に切断しない設定とするため、そのまま ENTER を押す。
    Do you want the link to come up on demand, or stay up continuously?
    If you want it to come up on demand, enter the idle time in seconds
    after which the link should be dropped.  If you want the link to
    stay up permanently, enter 'no' (two letters, lower-case.)
    NOTE: Demand-activated links do not interact well with dynamic IP
    addresses.  You may have some problems with demand-activated links.
    Enter the demand value (default no):
    

    7. 今回はプロバイダから自動的に提供される DNS サーバの IP アドレスを使用するので、「server」と入力する。
    DNS
    
    Please enter the IP address of your ISP's primary DNS server.
    If your ISP claims that 'the server will provide dynamic DNS addresses',
    enter 'server' (all lower-case) here.
    If you just press enter, I will assume you know what you are
    doing and not modify your DNS setup.
    Enter the DNS information here: server
    

    8. PPPoE 通信で使用する認証 ID のパスワードを入力する。
    PASSWORD
    
    Please enter your Password:
    Please re-enter your Password:
    

    9. 一般ユーザーが DSL 接続の許可をさせるかどうかを問われるので、ここでは「no」と入力する。
    USERCTRL
    
    Please enter 'yes' (three letters, lower-case.) if you want to allow
    normal user to start or stop DSL connection (default yes): no
    

    10. ファイアウォールの設定を行う。今回は自分でルールを設定するため「0」を指定している。
    FIREWALLING
    
    Please choose the firewall rules to use.  Note that these rules are
    very basic.  You are strongly encouraged to use a more sophisticated
    firewall setup; however, these will provide basic security.  If you
    are running any servers on your machine, you must choose 'NONE' and
    set up firewalling yourself.  Otherwise, the firewall rules will deny
    access to all standard servers like Web, e-mail, ftp, etc.  If you
    are using SSH, the rules will block outgoing SSH connections which
    allocate a privileged source port.
    
    The firewall choices are:
    0 - NONE: This script will not set any firewall rules.  You are responsible
              for ensuring the security of your machine.  You are STRONGLY
              recommended to use some kind of firewall rules.
    1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation
    2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway
                    for a LAN
    Choose a type of firewall (0-2): 0
    

    11. PC 起動時に PPPoE 通信を行う場合は「yes」を入力する。
    Start this connection at boot time
    
    Do you want to start this connection at boot time?
    Please enter no or yes (default no):yes
    

    12. 設定した内容が表示されるので、問題がなければ「y」を入力する。
    ** Summary of what you entered **
    
    Ethernet Interface: eth1
    User name:          xxxxxxxx@xxxxxxxx.ne.jp
    Activate-on-demand: No
    DNS addresses:      Supplied by ISP's server
    Firewalling:        MASQUERADE
    User Control:       no
    Accept these settings and adjust configuration files (y/n)? y
    

    13. 設定が完了する。
    Adjusting /etc/sysconfig/network-scripts/ifcfg-ppp0
    Adjusting /etc/ppp/chap-secrets and /etc/ppp/pap-secrets
      (But first backing it up to /etc/ppp/chap-secrets.bak)
      (But first backing it up to /etc/ppp/pap-secrets.bak)
    
    Congratulations, it should be all set up!
    
    Type '/sbin/ifup ppp0' to bring up your xDSL link and '/sbin/ifdown ppp0'
    to bring it down.
    Type '/sbin/adsl-status /etc/sysconfig/network-scripts/ifcfg-ppp0'
    to see the link status.
    


  • CentOS 6 系の設定

  • 1. rp-pppoe をインストールする。
    # yum install rp-pppoe

    2. rp-pppoe の設定ファイルを /etc/ppp にコピーする。
    # cp /usr/share/doc/rp-pppoe-3.10/configs/pppoe.conf /etc/ppp/

    3. pppoe.conf ファイルを編集する。
    # vim /etc/ppp/pppoe.conf
    「ETH=」にモデムと繋いでいるデバイス名を入力する。「USER=」に PPPoE 通信で使用するプロバイダから提供された認証 ID を入力する。
    ETH=eth1
    USER=認証IDを入力
    

    4. chap-secrets ファイルを編集する。
    # vim /etc/ppp/chap-secrets
    chap 認証で使用するプロバイダから提供された認証 ID とパスワードを下記の形式で入力する。
    # Secrets for authentication using CHAP
    # client        server  secret                  IP addresses
    "認証IDを入力"        *       "パスワードを入力"
    

    5. pppoe-start コマンドを実行し、PPPoE 通信を開始する。
    # pppoe-start
    下記のメッセージが表示されれば接続は完了。
    ... Connected!
    

  • ソースコードからインストールする方法

  • 1. ソースファイルをダウンロードする。
    # wget http://www.roaringpenguin.com/files/download/rp-pppoe-3.10.tar.gz

    2. 任意の場所にパッケージを解凍する。
    # tar xvf rp-pppoe-3.10.tar.gz -C /opt/

    3. rp-pppoe のディレクトリに移動し、go スクリプトを実行する。
    # cd /opt/rp-pppoe-3.10
    # ./go

    4. セットアップが開始する。設定の内容は CentOS 5 系で紹介した内容と同様となる。
    Welcome to the Roaring Penguin PPPoE client setup.  First, I will run
    some checks on your system to make sure the PPPoE client is installed
    properly...
    
    Looks good!  Now, please enter some information:
    

    5. pppoe-start コマンドを実行し、PPPoE 通信を開始する。
    # pppoe-start
    下記のメッセージが表示されれば接続は完了。
    ... Connected!
    

    以上で設定は完了です。

    最後に設定した PC の IP アドレスの確認と外部ネットワークに接続できるかどうかを確認してみてください。

    ○ IP アドレスを確認する。
    # ifconfig ppp0
    ppp0      Link encap:Point-to-Point Protocol 
              inet addr:xxx.xxx.xxx.254  P-t-P:xxx.xxx.xxx.170  Mask:255.255.255.255
              UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1454  Metric:1
              RX packets:3 errors:0 dropped:0 overruns:0 frame:0
              TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:3
              RX bytes:54 (54.0 b)  TX bytes:54 (54.0 b)
    

    ○ 外部ネットワークと通信ができるか確認を行う。試しに google.com に ping してみる。
    # ping google.com
    PING google.com (74.125.235.168) 56(84) bytes of data.
    64 bytes from nrt19s12-in-f8.1e100.net (74.125.235.168): icmp_seq=1 ttl=55 time=7.95 ms
    64 bytes from nrt19s12-in-f8.1e100.net (74.125.235.168): icmp_seq=2 ttl=55 time=8.11 ms
    64 bytes from nrt19s12-in-f8.1e100.net (74.125.235.168): icmp_seq=3 ttl=55 time=8.27 ms
    
    --- google.com ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2000ms
    rtt min/avg/max/mdev = 7.954/8.112/8.273/0.166 ms 
    

    次回は IP マスカレードとパケットフィルタリングの設定を行います。

    0 件のコメント:

    コメントを投稿