ppp on Debian GNU/Linux Sarge な PC & ISDN用のTA(ターミナルアダプタ) を利用してプロバイダへ接続しようとしたら失敗した。プロバイダからDHCPにてIPアドレスを付与してもらったのに、なぜか接続先のプロバイダのIPアドレス P-t-P (Point to Point) から先へ行けない。P-t-P には ping が届く。

[DebianPC(ppp0)] ---> [P-t-P] ---> X

ifconfig の結果は問題ないように見える。
装備は、eth0 という NIC と、ppp0 という TAへのインターフェース。
eth0 : Network Interface Card (192.168.0.1)
ppp0 : Network Interface to TA (XXX.XXX.XXX.XXX)


# ifconfig
eth0      Link encap:Ethernet  HWaddr XX:XX:XX:XX:XX:XX
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:391 errors:0 dropped:0 overruns:0 frame:0
          TX packets:276 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:23820 (23.2 KiB)  TX bytes:20505 (20.0 KiB)
          Interrupt:5 Base address:0xd800
 
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:20 errors:0 dropped:0 overruns:0 frame:0
          TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1380 (1.3 KiB)  TX bytes:1380 (1.3 KiB)
 
ppp0      Link encap:Point-to-Point Protocol
          inet addr:XXX.XXX.XXX.XXX  P-t-P:XXX.XXX.XXX.XXX  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:5 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:166 (166.0 b)  TX bytes:112 (112.0 b)

/etc/network/interfaces を見ると、


# The loopback network interface
auto lo
iface lo inet loopback
 
# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.0.1
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1
ルーティングがまずいような気はしたが、P-t-P には ping が届くんだから、ルーティングの問題じゃないよなぁ、みたいに考えていたが…… ローカルがデフォルトゲートウェイってマズいの?

# route del default
# route add default ppp0

ってやれば、回避できそうな気もする。

でも、結局 /etc/network/interfaces を書きなおした。
固定IPのインターフェースには、address と netmask だけ書いておけば良かったっぽい。


# The loopback network interface
auto lo
iface lo inet loopback
 
# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.0.1
        netmask 255.255.255.0

ルーティングテーブルを表示してみる。


# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
# pon
# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
xxxxxxx.xxxxxxx *               255.255.255.255 UH    0      0        0 ppp0
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
default         xxxxxxx.xxxxxxx 0.0.0.0         UG    0      0        0 ppp0

まぁ、なんとかうまくいった感じ。

参考になったのは [debian-users:36658] Re: ルーター構築について に書かれていた /etc/network/interfaces の内容。下流の NIC には gateway 指定が無かった。

Linux PPP HOWTO: PPP サーバの設定 - 29.5 PPP のオプションファイルの設定 によると、

注意 - 私たちは(明示的に)経路を指定していません - 加えてデフォルトルートオプションも指定していません。なぜなら、(PPP サーバにとって)必要な機能は ppp クライアントからのパケットを LAN/Internet へ送りだし、 LAN/Internet からのパケットをクライアントへ送りだすことだけだからです。

とある。
あ、ここはプロバイダをやる人向けの文章か。

あとは、

# man route
# man interfaces

で、マニュアルを参照。

その他の参考になったページ:


コメント

づらねこにゃんが、ネットで無かったネットワークなどを接続しなかったよ。


tags: zlashdot Linux Debian

Posted by NI-Lab. (@nilab)