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:\>