2つのインターフェースがあり、そのうちの1つは、Android携帯の共有インターネットUSB接続です。
enp0s31f6
:イーサネットインターネット接続(デフォルト)enp0s20f0u1
:接続共有Android
enp0s20f0u1
インターフェイスを使用してSSH経由で1つのIPにのみアクセスしたいです。つまり、(外部/インターネットIP)に接続されているすべてのものがA.B.C.D
このインターフェイスを経由する必要があることを意味します。他の人はいません。
セントース7を使用しています。
A.B.C.D
宛先IPを持つすべてのパケットを消費インターフェイスにどのようにルーティングしますかenp0s20f0u1
?必ず使用する必要がありますか
ip route
、それともiptables
十分ですか?なぜ?
私は「ipルーティング」を初めて使用します。答えを説明してください。
詳細:
enp0s20f0u1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.42.174 netmask 255.255.255.0 broadcast 192.168.42.255
enp0s31f6: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.128.1.21 netmask 255.255.254.0 broadcast 10.128.1.255
私がしたこと:
$ip ルーティング:
default via 10.128.0.1 dev enp0s31f6 proto static metric 100
default via 192.168.42.129 dev enp0s20f0u1 proto static metric 101
10.128.0.0/23 dev enp0s31f6 proto kernel scope link src 10.128.1.21 metric 100
10.136.80.66 via 10.128.0.1 dev enp0s31f6 proto dhcp metric 100
192.168.42.0/24 dev enp0s20f0u1 proto kernel scope link src 192.168.42.174 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
私のインターフェースのIPは192.168.42.174で、このインターフェースのゲートウェイはです192.168.42.129
。
2行目を削除しましたdirkt
。
default via 192.168.42.129 dev enp0s20f0u1 proto static metric 101
$ip ルーティング
default via 10.128.0.1 dev enp0s31f6 proto static metric 100
10.128.0.0/23 dev enp0s31f6 proto kernel scope link src 10.128.1.21 metric 100
10.136.80.66 via 10.128.0.1 dev enp0s31f6 proto dhcp metric 100
A.B.C.D via 192.168.42.129 dev enp0s20f0u1
192.168.42.0/24 dev enp0s20f0u1 proto kernel scope link src 192.168.42.174 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
私はこのインターフェースをABCD以外の目的で使用したくありません。削除する必要がありますか?
192.168.42.0/24 dev enp0s20f0u1 proto kernel scope link src 192.168.42.174 metric 100
また?私のインターフェースのLANネットワークのようです。
via
間違えて、ゲートウェイの代わりにインターフェイスのIPを使用しました。
今、すべてがうまくいっています。より明確です。
追加の質問理解するには、今はポート22だけをリダイレクトし、他のすべてのポートはブロックしたいと思います。ターゲットIPがABCDであるすべてを拒否し、ポート22のみを許可するにはiptables / firewallDが必要だと思います。
ベストアンサー1
ルーティングは、最も具体的な宛先を選択することによって機能します。これはあなたが必要であることを意味します
- 各インターフェイスの後には、ネットワークセグメントへのパスが1つあります。
- 1つのデフォルトパス(複数のパスではなく)
- ABCD宛先への特別なパスです
ssh
。
したがって、出力はip route
次のようになります。
default via 10.128.0.1 dev enp0s31f6 proto static metric 100
10.128.0.0/23 dev enp0s31f6 proto kernel scope link src 10.128.1.21 metric 100
192.168.42.0/24 dev enp0s20f0u1 proto kernel scope link src 192.168.42.65 metric 100
A.B.C.D/32 dev enp0s20f0u1 ...
最後のものを追加するには:
ip route add A.B.C.D/32 dev enp0s20f0u1 via 192.168.42.129
現在のゲートウェイはどこに192.168.42.129
あります(定数である必要はありません)。
使用
ip route del default via 192.168.42.129 dev enp0s20f0u1
ABCDおよびリンクローカルパケット以外のパケットがこのインターフェイスを通過しないようにするには、2番目のデフォルトパスを手動で削除します。現在設定されている方法では、最初のインターフェイスが何らかの理由でダウンした場合、すべてのトラフィックはそのインターフェイスを使用します。
出力には10.136.80.66
DHCPを介して1つが追加されました。なぜ追加されたのかわかりませんが、インフラストラクチャに何らかの理由で必要になる可能性があります。
システムの構成方法(ネットワーク管理者?/etc/network/interfaces
)に応じて、この設定を自動化するさまざまな方法があります。
コメントに提案されているように、タグ付きパケットを使用するのはiptables
愚かな考えです。ルーティングはタグを設定せずに直接動作します。これがまさにルーティングの目的です。
forの/24
代わりに1つの回答で提案されたネットマスクを使用すると、複数の宛先アドレス(実際には256)にルーティングされるため、そうしないでください。/32
A.B.C.D