(マルチインターフェース)
【現象】
複数のNICを使用していて、かつ、それぞれが別のルーターに接続され、それぞれのルートでインターネットに繋がっている場合に
デフォルトゲートウェイに繋がっているネットワークでは、外部から問題なく繋がるのに
もう一方のネットワークには、内部ネットワークからは繋がるのに、外部のインターネットから繋がらない
という問題が起きます。
※sshやRDPなど。
[構成]
server-nic1-router1-internet (ゲートウェイ1)〇 default GW1
server-nic2-router2-internet (ゲートウェイ2)× GW2
※上記の場合、インターネットからRDPやsshはGW1を通る場合は、通信可能ですが、
GW2を通る場合は、ACKが返ってきません。
【原因】
これは、外部から来たSYNをデフォルトゲートウェイ側のネットワークにACKしてしまうことで繋がりません。
【解決策】
そこで、デフォルトゲートウェイに繋がっていないNICに着たパケットは、外部のIPアドレスでもデフォルトゲートウェイに繋がっていないNICから返答するように設定をします。
※来たところから返すということ。
vi /etc/iproute2/rt_tables
---start---
100 subroute-eth20
----end----
ip route add table subroute-eth20 192.168.20.0/24 dev eth20 scope link proto kernel
ip route add table subroute-eth20 default via 192.168.20.1 dev eth20
ip route show table subroute-eth20
ip rule add from 192.168.20.40 table subroute-eth20 prio 100
ip rule show
vi /home/shoichi/boot-route.sh
---start---
#!/bin/sh
ip route add table subroute-eth20 192.168.20.0/24 dev eth20 scope link proto kernel
ip route add table subroute-eth20 default via 192.168.20.1 dev eth20
ip rule add from 192.168.20.40 table subroute-eth20 prio 100
----end----
chown root:root /home/shoichi/boot-route.sh
chmod 774 /home/shoichi/boot-route.sh
vi /etc/systemd/system/boot-route.service
---start---
[Unit]
Description=Route Change
After=network-online.target
ConditionPathExists=/home/shoichi
[Service]
ExecStart=/home/shoichi/boot-route.sh
Restart=no
Type=simple
[Install]
WantedBy=multi-user.target
----end----
chown root:root /etc/systemd/system/boot-route.service
chmod 644 /etc/systemd/system/boot-route.service
systemctl daemon-reload
systemctl enable boot-route
systemctl status boot-route
---備考---
systemctl list-units
systemctl list-unit-files
local-fs.target 装置に直接繋がったストレージのマウントが完了した後で実行する
network-online.target ネットワークを利用可能になった後で実行する
remote-fs.target ネットワークファイルシステム(NFSなど)を利用可能になった後で実行する
nss-lookup.target DNSなどのホスト/ネットワークサービスを利用可能になった後で実行する
0 件のコメント:
コメントを投稿