ThinkPad T480sのLTEモジュール(Fibocom L-850GL)をUSBモデムとして認識させる

 article  Comments Off on ThinkPad T480sのLTEモジュール(Fibocom L-850GL)をUSBモデムとして認識させる
Oct 222019
 

ThinkPad X1やT480sにはLTEモジュールとしてFibocom L850-GLが搭載できます。こちらWindowsでは問題なく使えるのですがLinuxでは使えません。

Fibocomのサイトに掲載されている仕様ではLinuxもサポートされているように書かれているのですが、これはUSBモードの場合のみのようでLinuxで認識されるPCIeインターフェースの状態では利用できないようです。
Solved: WWAN Fibocom L850-GL and Linux support – Lenovo Communityなどでも語られています。

使える方法がないものかいろいろ散策しておりましたら、「Linux drivers for XMM 7360 LTE #7」の情報を見つけまして、この中のコメントにPCIeからUSBモードにする処理を作成したとの情報を発見。
Tools for the Fibocom L850-GL / Intel XMM7360 LTE modem
ちょっと人柱覚悟でArch Linuxにて試してみましたので覚書です。

ちなみにモデムとしては認識されるようになったもののMobile Network接続はまだうまくできておりません。

まずacpi_callカーネルモジュールをインストールします。

$ sudo pacman -S acpi_call

次に先ほど紹介したgitリポジトリーをcloneします。

$ git clone https://github.com/abrasive/xmm7360.git

変更前にPCIとUSBのデバイスを見てみると、LTEモジュールはPCIで認識されていることがわかります。

$ lspci | grep -i modem
02:00.0 Wireless controller [0d40]: Intel Corporation XMM7360 LTE Advanced Modem (rev 01) $ lsusb | grep -i modem $

先ほどのGitHubからcloneしたxmm2usbを実行してみます。

$ cd xmm7360
$ sudo ./xmm2usb
Found XMM7360 modem at 0000:02:00.0 (_SB_.PCI0.RP04.PXSX) Parent port is at 0000:00:1c.3
Disabling PCIe link… Resetting modem…
OK!
$

PCIリンクを無効にしたとのメッセージ。再びlspciとlsusb実行してみます。

$ lspci | grep -i modem
02:00.0 Wireless controller [0d40]: Intel Corporation XMM7360 LTE Advanced Modem (rev ff)
$ lsusb | grep -i modem
Bus 001 Device 006: ID 8087:095a Intel Corp. MODEM + 2 CDC-ACM + 3 CDC-NCM + SS
$

USBにモデムが出現するようになりました。PCIにも出現していますが、(rev ff)となっています。

続けてGitHubのページにあるように、MBIM(Mobile Broadband Interfaceモード?)へのスイッチを実行します。

$ sudo screen /dev/ttyACM0
AT+GTUSBMODE?
AT+GTUSBMODE=7
AT+CFUN=15
$

そうするとlsusbでの出力が以下に変わりました。

$ lsusb | grep -i fibocom
Bus 001 Device 006: ID 2cb7:0007 Fibocom Wireless Inc. L850-GL

dmesgをみてもUSBモデムと認識されているようです。

[  162.799214] usb 1-6: new high-speed USB device number 5 using xhci_hcd
[  162.940604] usb 1-6: New USB device found, idVendor=8087, idProduct=07f5, bcdDevice= 0.00
[  162.940612] usb 1-6: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[  169.651754] usb 1-6: USB disconnect, device number 5
[  175.462630] usb 1-6: new high-speed USB device number 6 using xhci_hcd
[  175.620153] usb 1-6: New USB device found, idVendor=2cb7, idProduct=0007, bcdDevice= 3.33
[  175.620162] usb 1-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  175.620167] usb 1-6: Product: L850-GL
[  175.620172] usb 1-6: Manufacturer: Fibocom Wireless Inc.
[  175.620176] usb 1-6: SerialNumber: 004999010640000
[  175.738001] cdc_acm 1-6:1.2: ttyACM0: USB ACM device
[  175.738980] cdc_acm 1-6:1.4: ttyACM1: USB ACM device
[  175.739743] cdc_acm 1-6:1.6: ttyACM2: USB ACM device
[  175.740493] usbcore: registered new interface driver cdc_acm
[  175.740494] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[  175.742909] usbcore: registered new interface driver cdc_ncm
[  175.744812] usbcore: registered new interface driver cdc_wdm
[  175.793275] cdc_mbim 1-6:1.0: setting rx_max = 16384
[  175.794443] cdc_mbim 1-6:1.0: cdc-wdm0: USB WDM device
[  175.794574] cdc_mbim 1-6:1.0 wwan0: register 'cdc_mbim' at usb-0000:00:14.0-6, CDC MBIM, a2:a6:4d:05:3f:91
[  175.794616] usbcore: registered new interface driver cdc_mbim

ちなみに冒頭でも述べましたようにMobile Network接続には至っておりません。またPC再起動後は毎回xmm2usbコマンドの実行が必要です。

NetworkManager で resolv.conf の nameserver を設定

 article  Comments Off on NetworkManager で resolv.conf の nameserver を設定
Jul 142018
 

RHEL7/CentOS7系では、resolv.conf の設定は 通常 NetworkManager によっておこなわれます。
通常は ifcfg-* に記述された DNS の値もしくは DHCP サーバーから渡された DNS になると思います。

NetworkManager の設定で、更新後の nameserver を指定するようにしてみます。
こんな感じになります。

$ sudo vi /etc/NetworkManaer/conf.d/dns.conf
$ cat /etc/NetworkManaer/conf.d/dns.conf
[main]
dns=default

[global-dns]
searches=example.test

[global-dns-domain-*]
servers=127.0.0.1, 192.168.110.71

そうすると、NetworkManager 再起動後の resolv.conf 設定は以下になります。

$ cat /etc/resolv.conf
# Generated by NetworkManager
search example.test
nameserver 127.0.0.1
nameserver 192.168.110.71

Windows 10でWi-Fiのプロファイル名を変更する

 article  Comments Off on Windows 10でWi-Fiのプロファイル名を変更する
Feb 072018
 

WindowsでのWi-Fi接続プロファイル名はデフォルトでSSID名になるのでいつも変更するようにしています。
Windows 7の頃は右クリックでリネームのような操作ができたものの、Windows 10では同様の操作がおこなえませんでした。

レジストリを漁って直接変更も考えましたが、netshコマンドでプロファイルを再作成してみます。
プロファイル構成をエクスポート、削除、変更したプロファイル名の構成ファイルで再作成、という段取りになります。

エクスポートします。

>netsh wlan export profile name="旧プロファイル名"

インターフェイス プロファイル "旧プロファイル名" がファイル ".\ワイヤレス ネットワーク接続-旧プロファイル名.xml" に保存されました。

プロファイルを一旦削除します。

>netsh wlan delete profile name="旧プロファイル名"
プロファイル "旧プロファイル名" がインターフェイス "ワイヤレス ネットワーク接続" から削除されます。

エクスポートされた構成ファイルをコピーしてプロファイル名を変更します。

>copy "ワイヤレス ネットワーク接続-旧プロファイル名.xml" "ワイヤレス ネットワーク接続-新プロファイル名.xml"
>notepad "ワイヤレス ネットワーク接続-新プロファイル名.xml"

私のケースでは3行目に記載されていました。

<?xml version="1.0"?>
<WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">
	<name>旧プロファイル名</name>
	<SSIDConfig>
		<SSID>
~ 中略 ~
</WLANProfile>

変更した構成ファイルでプロファイルを作成します。

>netsh wlan add profile filename="ワイヤレス ネットワーク接続-新プロファイル名.xml"
プロファイル "新プロファイル名" がインターフェイス "ワイヤレス ネットワーク接続" に追加されます。

以上で完了です。

ちなみに上記手順での変更後のプロファイル名は、レジストリキー \HKLM\SOFTWARE\Microsoft\WcmSvc の CMPOL 記録されていましたが、こちらを直接変更してプロファイル名を変更できるかは定かではありません。

WinNAT定義の強制削除

 article  Comments Off on WinNAT定義の強制削除
Apr 222017
 

Hyver-V仮想マシン用に設定していたWinNATが動作しなくなりました。

PS C:\WINDOWS\system32> Get-NetNat


Name                             : MyNATnetwork
ExternalIPInterfaceAddressPrefix :
InternalIPInterfaceAddressPrefix : 192.168.0.0/24
IcmpQueryTimeout                 : 30
TcpEstablishedConnectionTimeout  : 1800
TcpTransientConnectionTimeout    : 120
TcpFilteringBehavior             : AddressDependentFiltering
UdpFilteringBehavior             : AddressDependentFiltering
UdpIdleSessionTimeout            : 120
UdpInboundRefresh                : False
Store                            : Local
Active                           : False



PS C:\WINDOWS\system32> 

最後のActive:Falseになっているのが怪しいのですが、Trueにしようと思ってもSet-NetNatコマンドレットにはそのようなオプションはありません。
作り直そうと思っても、削除時にエラーになってしまいます。

PS C:\WINDOWS\system32> Get-NetNat|Remove-NetNat

確認
この操作を実行しますか?
対象 MyNATnetwork の PolicyStore Local に対して操作 Delete を実行しています
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): Y
Remove-NetNat : 要求された操作がサポートされていません。
発生場所 行:1 文字:12
+ Get-NetNat|Remove-NetNat
+            ~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (MSFT_NetNat (In...yNATnetwork;0"):root/StandardCimv2/MSFT_NetNat) [Remove-NetNat]、CimException
    + FullyQualifiedErrorId : Windows System Error 50,Remove-NetNat

PS C:\WINDOWS\system32> 

なんとも方法がわからず途方に暮れていたら以下の記事に同じような事象がありました。
Set up a Hyper-V Virtual Switch using a NAT Network | Thomas Maurer
ちょっとコメントがつぶれていますが、以下のレジストリキーを削除したとのこと。
HKLM\System\CurrentControlSet\Control\NSI\{eb004a20-…..7759bc}\6\

今のままでは他に情報もないので、以下のキーをバックアップして削除してみたところ、Get-NetNatでエントリーが出現しなくなりました。
HKLM\SYSTEM\CurrentControlSet\Control\Nsi\{eb004a20-9b1a-11d4-9123-0050047759bc}\6

PS C:\WINDOWS\system32> Get-NetNat

うーん、これで大丈夫なのかわかりませんが、とりあえずNew-NetNatでの再作成は成功したので暫く経過観察します。

PS C:\WINDOWS\system32> New-NetNat -Name MyNATnetwork -InternalIPInterfaceAddressPrefix 192.168.0.0/24


Name                             : MyNATnetwork
ExternalIPInterfaceAddressPrefix :
InternalIPInterfaceAddressPrefix : 192.168.0.0/24
IcmpQueryTimeout                 : 30
TcpEstablishedConnectionTimeout  : 1800
TcpTransientConnectionTimeout    : 120
TcpFilteringBehavior             : AddressDependentFiltering
UdpFilteringBehavior             : AddressDependentFiltering
UdpIdleSessionTimeout            : 120
UdpInboundRefresh                : False
Store                            : Local
Active                           : True



PS C:\WINDOWS\system32>

ちゃんとActive:Trueになってるし。

プロバイダがIPv6対応したのでDebianに設定

 article  Comments Off on プロバイダがIPv6対応したのでDebianに設定
Apr 132017
 

プロバイダがIPv6サービス提供を開始したので、フレッツ光とプロバイダにそれぞれ申し込んでみました。

フレッツ光でIPv6オプションを申し込んだ直後はNTT東日本のIPv6アドレスが割り当てられます。

gmtx24@debian:~$ ip -6 addr show dev eth0
2: eth0:  mtu 1500 qdisc mq state UP group default qlen 1000
    inet6 2408:***:****:****:****:****:****:****/64 scope global mngtmpaddr dynamic 
       valid_lft 2591524sec preferred_lft 604324sec
    inet6 2001:c90:****:****:****:****:****:****/64 scope global deprecated mngtmpaddr dynamic 
       valid_lft 2584978sec preferred_lft 0sec
    inet6 fe80::a2b3:ccff:fee9:5cd7/64 scope link 
       valid_lft forever preferred_lft forever
gmtx24@debian:~$ 

次にプロバイダにIPv6オプションを申し込んだ後は、プロバイダ所有のプレフィックスアドレス(伏せてます)に変わりました。

gmtx24@debian:~$ ip -6 addr show dev eth0
2: eth0:  mtu 1500 qdisc mq state UP group default qlen 1000
    inet6 ****:****:****:****:****:****:****:****/64 scope global mngtmpaddr dynamic
       valid_lft 2591508sec preferred_lft 604308sec
    inet6 fe80::a2b3:ccff:fee9:5cd7/64 scope link
       valid_lft forever preferred_lft forever
gmtx24@debian:~$ 

ルーティングも同様に、NTT東日本からプロバイダに変わります。
フレッツ光のIPv6開通後

gmtx24@debian:~$ ip -6 route show
2001:c90:****:****::/64 dev eth0 proto kernel metric 256  expires 2581221sec pref medium
2408:***:****:****::/64 dev eth0 proto kernel metric 256  expires 2591184sec pref medium
fe80::/64 dev eth0 proto kernel metric 256  pref medium
default via fe80::30ff:fe0c:204d dev eth0 proto ra metric 1024  expires 1755sec hoplimit 64 pref medium
gmtx24@debian:~$ 

プロバイダのIPv6開通後

gmtx24@debian:~$ ip -6 route show
****:****:****::/64 dev eth0 proto kernel metric 256  expires 2591575sec pref medium
fe80::/64 dev eth0 proto kernel metric 256  pref medium
default via fe80::30ff:fe0c:204d dev eth0 proto ra metric 1024  expires 1375sec hoplimit 64 pref medium
gmtx24@debian:~$ 

このままだとMACアドレスベースで生成されたIPv6アドレスが設定されますので、IPv6プライバシー拡張を使ってランダム生成のアドレスにしたい場合は、/etc/network/interfacesに以下の設定をおこないます。

iface eth0 inet6 auto
    privext 2

確認はsysctlコマンドでnet.ipv6.conf.eth0.use_tempaddr=2になっているか、もしくはIPv6 test – IPv6/4 connectivity and speed testに接続してSLAAC noになっているかで確認しました。もちろんIPv6アドレスがMACアドレスベースになっていないことでも確認できます。

※参考
IPv6 プライバシー拡張

NetXMSお試し(1)

 article  Comments Off on NetXMSお試し(1)
Jan 062014
 

NetXMSという監視ツールを見つけまして試しに入れてみました。
スクリーンショットを見る限り洗練されていそうなのと、監視サーバーをWindowsで稼働させらるのも魅力的です。
OpenNMSもWindowsで稼働させることができますが、あちらはSNMPベースの監視が基本でエージェント監視方式ではありません。

タイトルに(1)と謳っていますが続編を書くかは未定です。

Debian用にはバイナリーパッケージが提供されていますので、そちらを利用します。
エージェントおよびサーバーは1台にまとめて稼働させます。

パッケージインストール

aptでインストールできるようsources.listを用意します。

# cat /etc/apt/sources.list.d/netxms.list
# NetXMS
deb http://www.netxms.org/apt squeeze main

エージェント用パッケージ、サーバー用パッケージを一式インストールします。

# apt-get update
# apt-get install netxms-base netxms-server netxms-agent

設定

エージェント用設定ファイルを用意します。

# cat /etc/nxagentd.conf
Servers = 127.0.0.1
ControlServers = 127.0.0.1
MasterServers = 127.0.0.1
LogFile = /var/log/netxms/nxagentd.log
FileStore = /var/lib/netxms/nxagentd

サーバー用設定ファイルを用意します。

# cat /etc/netxmsd.conf
DBDriver = sqlite.ddr
DBName   = /var/lib/netxms/sqlite.db
LogFile  = /var/log/netxms/netxmsd.log

ディレクトリおよびデータベース作成

ディレクトリを作成します。

# mkdir -p /var/log/netxms
# mkdir -p /var/lib/netxms/nxagentd

DBをSQLiteで作成します。

# nxdbmgr init /usr/share/netxms/sql/dbinit_sqlite.sql
# nxdbmgr check

起動

エージェントを起動します。

# systemctl start nxagentd.service

サーバーを起動します。

# systemctl start netxmsd.service

監視コンソールの起動

監視コンソールはWebアプリケーションで稼働するものとEclipseベースで稼働するものの2種類あります。
今回は手早くEclipseベースものをダウンロードページから入手して起動させます。Windows版の場合、圧縮ファイルを展開するとnxmc.exeというバイナリーがありますのでそちらを実行します。
起動するとサーバー名や認証方式を聞かれますので、
Server: netxmsdが起動しているサーバー(4701/tcpを使用します)
Login: admin
Authentication: Password
Password: netxms
を指定するとNetXMSサーバーに接続されます。

開始直後は監視項目はほとんど設定されていません。
Zabbixのように監視テンプレートが予め提供されているわけでもないようですので、ここから個々の監視項目を設定する必要がありそうです(テンプレート化は可能)。

Window XPのRRAS設定(Filter&NAT)

 article  Comments Off on Window XPのRRAS設定(Filter&NAT)
Apr 202011
 

Windows XPで動かすcoLinuxをNATで使いたいのですが、Windows Firewall/Internet Connection Sharing (ICS)ではNATで使用できる内部ネットワークアドレスに制限があります(192.168.0.0/24固定)。
Routing and Remote Access(RRAS)でもNATはできるのですが、ICSのFirewallと共存することはできません。

結局、NATとパケットフィルタリング両方にRRASを使うようにしているので、そちらの設定メモです。

ICSのサービスを止めてRRASサービスを有効にします。

C:\>net stop sharedaccess
C:\>net start remoteaccess

netshのrouting ipコンテキストでフィルタを設定します。

C:\>netsh
netsh>routing ip
netsh routing ip>set filter "Cable" input drop
OK

netsh routing ip>add filter "Cable" input 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 tcp-est 0 0
OK

netsh routing ip>add filter "Cable" input 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 udp 53 0
OK

netsh routing ip>add filter "Cable" input 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 udp 123 0
OK

netsh routing ip>add filter "Cable" input 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 icmp any any
OK

netsh routing ip>

設定したフィルタの確認。

netsh routing ip>show filter "Cable"

インターフェイス Cable のフィルタ情報
------------------------------------------------------------------

フラグメント チェックは 無効 です。

フィルタの種類        : INPUT
既定の操作            : DROP

    Src Addr       Src Mask         Dst Addr       Dst Mask      Proto  Src Port  Dst Port
------------------------------------------------------------------------------------------
        0.0.0.0         0.0.0.0         0.0.0.0         0.0.0.0 TCP-EST       0       0
        0.0.0.0         0.0.0.0         0.0.0.0         0.0.0.0    UDP      53       0
        0.0.0.0         0.0.0.0         0.0.0.0         0.0.0.0    UDP     123       0
        0.0.0.0         0.0.0.0         0.0.0.0         0.0.0.0   ICMP       0       0
出力フィルタが構成されていません。
デマンド ダイヤル フィルタが構成されていません。

netsh routing ip>

続いてNAT設定。coLinuxでインストールしたTapインターフェースをPrivate、Cableインターフェースをfullに設定します。

netsh routing ip>nat
netsh routing ip nat>install

netsh routing ip nat>add interface "Cable" full

netsh routing ip nat>add interface "Tap" private

netsh routing ip nat>

NAT設定内容の確認。

netsh routing ip nat>show interface

NAT Cable の構成
---------------------------
モード            : アドレスおよびポートの変換


NAT Tap の構成
---------------------------
モード            : プライベート インターフェイス


netsh routing ip nat>

最後にDNS Proxyを設定して終了。

netsh routing ip nat>dnsproxy
netsh routing ip dnsproxy>install
netsh routing ip dnsproxy>exit


C:\>

PPP Adapterに対するRRASのフィルタはデフォルトDROPらしい

 article  Comments Off on PPP Adapterに対するRRASのフィルタはデフォルトDROPらしい
Apr 102011
 

私はWindows XPのFirewall機能に、標準的なICS(Windows Firewall/Internet Connection Sharing (ICS))ではなくRRAS(Routing and Remote Access)を使っています。
ICSではNATで利用するIPアドレスに制限がある(192.168.0.0/24固定)ことや、RRASのほうがルーター等N/W機器の一般的なフィルタに近い感覚で設定できることが理由です(個々のプログラムレベルでの通信許可はできなくなるので、ウィルスやマルウェア対策面では不安が残りますが)。

で、RRASでは「ローカルエリア接続」等の各N/Wインターフェースに対してデフォルトポリシーを許可ルールを設定しますが、PPP Adapterに関してはこちらに一覧が出現しません。

C:\>netsh routing ip show filter
Input           Output          Demand-dial     Frag. Check     Interface
---------       ----------      -------------   --------------  ----------------
0   (FORWARD)   0   (FORWARD)   0   (FORWARD)   無効            ループバック
0   (FORWARD)   0   (FORWARD)   0   (FORWARD)   無効            内部
0   (FORWARD)   0   (FORWARD)   0   (FORWARD)   無効            VMnet8
0   (FORWARD)   0   (FORWARD)   0   (FORWARD)   無効            VMnet1
0   (FORWARD)   0   (FORWARD)   0   (FORWARD)   無効            Cable
0   (FORWARD)   0   (FORWARD)   0   (FORWARD)   無効            WiFi
0   (FORWARD)   0   (FORWARD)   0   (FORWARD)   無効            Tap


C:\>

※普段はInputをDROPにしてますが、テストのためFORWARDに変更しています

デフォルトはFORWARDなのかDROPなのか、リモートからnmapで確認してみました。結論からいうとRRASサービスを有効にしただけでPPP Adapterに対してはDROPの動作になるようです。

RRAS停止状態(net stop remoteaccess)

debian1:~# nmap 183.72.42.159

Starting Nmap 5.21 ( http://nmap.org ) at 2011-04-10 01:35 JST
Nmap scan report for u542159.xgsfmg18.imtp.tachikawa.mopera.net (183.72.42.159)
Host is up (0.15s latency).
Not shown: 988 closed ports
PORT      STATE    SERVICE
135/tcp   filtered msrpc
139/tcp   filtered netbios-ssn
161/tcp   filtered snmp
445/tcp   filtered microsoft-ds
902/tcp   open     iss-realsecure
912/tcp   open     unknown
2049/tcp  filtered nfs
2869/tcp  open     unknown
8222/tcp  open     unknown
8333/tcp  open     unknown
12345/tcp filtered netbus
31038/tcp open     unknown

Nmap done: 1 IP address (1 host up) scanned in 10.16 seconds
debian1:~#

RRAS開始状態(net start remoteaccess)

debian1:~# nmap 183.72.42.159

Starting Nmap 5.21 ( http://nmap.org ) at 2011-04-10 01:37 JST
Note: Host seems down. If it is really up, but blocking our ping probes, try -PN
Nmap done: 1 IP address (0 hosts up) scanned in 3.08 seconds
debian1:~#
Nov 202009
 

マルチホームなLinuxマシンで、受信したNICインターフェース側から応答を返す方法をCentOS 5.4で実装する方法です。

複数のアップリンク/プロバイダに対するルーティング
として例示される設定を、スクリプトではなくCentOSの設定ファイルで記述してみます。

上記例でのポイントはip route addコマンドの実行とip rule addコマンドの実行です。
Fedora等のRed Hat系ではNICインターフェースのアップ時(/sbin/ifupコマンド実行時)に、/etc/sysconfig/network-scripts配下のifup-ethやifup-routesコマンドが呼びだされます。

ifup-routesスクリプトを眺めてみると、route-eth*やrule-eth*を記述しておくとその内容を引数にしてそれぞれip route addとip rule addを実行してることがわかります。

この方法のよいところはifdown実行時にifdown-routesスクリプトでルールの削除処理(ip rule del)もおこなってくれるところです。

構成

ネットワーク構成

                     +------------+       +----------
                     |            |       |
       +-------------+ Provider 1 +-------+
       |             |            |       |
+------+-------+     +------------+       |
|     eth1     |                          |
|              |                          |
| Linux router |                          | Internet
|              |                          |
|     eth2     |                          |
+------+-------+     +------------+       |
       |             |            |       |
       +-------------+ Provider 2 +-------+
                     |            |       |
                     +------------+       +----------

Provider 1構成

  • N/W アドレス: 192.0.2.0/25
  • Linux IPアドレス: 192.0.2.1
  • Provider1 IPアドレス: 192.0.2.126

Provider 2構成

  • N/W アドレス: 192.0.2.128/25
  • Linux IPアドレス: 192.0.2.129
  • Provider1 IPアドレス: 192.0.2.254

設定内容

/etc/iproute2/rt_tablesの末尾にテーブルを追加。

200 Provider1
201 Provider2

/etc/sysconfig/network-scripts/route-eth1

192.0.2.0/25 dev eth1 src 192.0.2.1 table Provider1
192.0.2.0/25 dev eth1 src 192.0.2.1
default via 192.0.2.126 table Provider1

/etc/sysconfig/network-scripts/route-eth2

192.0.2.128/25 dev eth2 src 192.0.2.129 table Provider2
192.0.2.128/25 dev eth2 src 192.0.2.129
default via 192.0.2.254 table Provider2

/etc/sysconfig/network-scripts/rule-eth1

from 192.0.2.1 table Provider1

/etc/sysconfig/network-scripts/rule-eth2

from 192.0.2.129 table Provider2

defaultルートは/etc/sysconfig/network-scripts/ifcfg-eth*のどちらかにGATEWAYを設定すればOKです。

一点気になるのは、/etc/sysconfig/network-scripts/ifup-routesスクリプトでip route addコマンドの引数をそのまま記述する方式は”older format”とコメントされていることです。
もしかしたら近い将来使えなくなるのかも知れませんが、Fedora 12ではまだ使えるようなのでしばらくは大丈夫でしょう 😛

■2010-08-10追記
コメントでご指摘のとおりファイル名が間違っていましたので修正しました。
ご指摘ありがとうございました。