私はDebianを実行しているBeagleBone組み込みコンピュータを使用しています。
私は2つのネットワークインターフェースを持っています。
pppを使用して外の世界に接続する、USBを介したセルラーモデムへの接続。 ISPから動的IPアドレスを受け取ります。
他のローカルデバイスにのみ接続されているイーサネットインターフェース。このインターフェイスに静的IPアドレス192.168.1.40を割り当てました。これをrc.local内にコマンドで設定します。
ifconfig eth0 192.168.1.40 netmask 255.255.255.0
2つのインターフェイスがアクティブなときだけ、モデムを通して接続することに問題があります。これを解決するためには、デフォルトゲートウェイをモデムが以下のコマンドでスクリプトを実行することによって取得するアドレスに設定する必要があることに気付きました。
#!/bin/sh
IPADD=&(/sbin/ifconfig ppp0 | grep 'inet' | cut -d: -f2 | awk '{ print $2}')
route add default gw $IPADD
ログイン後にスクリプトを手動で実行すると、これは非常に便利です。それから私は2つのインタフェースを通して通信することができます。
しかし、起動時にこのスクリプトを正しく実行させ、デフォルトゲートウェイアドレスを自動的に割り当てることはできません。
rc.localから実行し、/etc/rc5.dまたは/etc/rc3.dにスクリプトを配置し、/root/.bashrcまたは/user/.bashrcから実行して、すべてを試しました。スクリプトを実行する1分前にcrontabを使用してスクリプトをループで実行します。何も動作しません。
私がログインした後、どうやらデフォルトゲートウェイがイーサネットインターフェースを持っていることから上書きされるようです。
誰もがこれを解決する方法を知っていますか?このデフォルトゲートウェイアドレスは、起動時に自動的に割り当てられる必要があります。私は何日も試しています。
イーサネットケーブルが差し込まれていない場合、またはイーサネットインタフェースを停止している場合は、まったく問題ありません。 2つのインタフェースがアクティブなときだけ、私はこの問題を抱えています。
ip route add default via $IPADD
ゲートウェイ付きの通常のバージョンです。 ip route add default dev ppp0
デバイス専用バージョンです。スクリプトを少し単純化します。 (ポイントツーポイントインターフェイスにはMACレイヤがないため、ゲートウェイアドレスは実際には違います。 中古 とにかく何のためにも。