ホーム » コンピュータ » Linux » policy-routing で Squid を別ポートに振分け

policy-routing で Squid を別ポートに振分け

自宅のプロバイダ接続のルータは、上流2.5Gbps だけど、DHCPなどの設定の自由度が低いため、内側に WiFi ルータを置いた2段構成。ただし、上流ルータの LAN ポートが 1Gbps なので、2.5Gbps を活かせていない。

自宅サーバを使わない catvstb は、上流ルータの WiFi ポートを指定することで、内側 WiFi を使わないようにして、少しはトラヒックを分割した。

でも、さらなるトラヒックを活かすべく、内側ルータ内のサーバに2本目の LAN ポートを設け、内側 WiFi ルータを経由せずに上流ルータにつながるようにして、Squid の Proxy サーバのトラヒックだけこちらに流したい。

policy-routing の設定

設定の要点を Gemini に伝え、現状の netplan の設定を伝えて、policy routing の設定を提示してもらった。

---
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    enp2s0:
      match:
        macaddress: "4C:CC:6A:F9:B0:84"
      addresses: [192.168.11.3/24]
      nameservers:
        addresses: [192.168.11.3]
      routes:
        - to: default
          via: 192.168.11.1
          metric: 100  # メインの優先度を高く設定
    enxc8a362ed15ee:
      match:
        macaddress: "c8:a3:62:ed:15:ee"
      addresses: [192.168.1.51/24]
      routes:
        # メインのルーティングテーブルにはデフォルトゲートウェイを書かない
        # 代わりに、Squid専用の「テーブル200」の中にだけゲートウェイを作る
        - to: default
          via: 192.168.1.254  # 上流ルーター
          table: 200
      routing-policy:
        # 192.168.1.51 を「出発地」とするパケットだけをテーブル200へ飛ばす
        - from: 192.168.1.51
          table: 200

適用して、問題がなさそうなので、squid に以下の設定を追加。

((( /etc/squid/conf.d/policy-routing.conf )))
tcp_outgoing_address 192.168.1.51

動作を確認

Proxy ナシの Chrome と Proxy アリの Firefox を起動して、YouTube を閲覧中。catvstb でも 上流ルータをそのまま使って YouTube を視聴中。CATVSTB=赤、SquidProxy=青、通常パケット=水色でトラヒックが分散されている。自宅外からWebサーバが閲覧できることも確認できた。満足…