Что такое Egress в контексте компьютерных сетей?

«Что такое Egress в контексте компьютерных сетей?» — вопрос из категории Сети, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Egress (исходящий трафик) — это сетевой трафик, который покидает границы определенной сети, системы или защищенной зоны (например, из локальной сети в интернет). Это противоположность Ingress (входящему трафику).

Основные контексты использования:

  1. Сетевая безопасность:

    • Egress Filtering — фильтрация исходящего трафика для предотвращения утечки данных или распространения вредоносного ПО из внутренней сети.
    • Пример правила брандмауэра: "Заблокировать исходящие соединения на порт 25 (SMTP) со всех хостов, кроме почтового сервера".
  2. Облачные вычисления и Kubernetes:

    • Egress Traffic — трафик, исходящий из кластера или облачной среды (VPC) во внешние сервисы.
    • В Kubernetes для управления таким трафиком используются Network Policies и Egress Gateways (в сервисных сетях, например, Istio).
      # Пример NetworkPolicy в Kubernetes, разрешающей исходящий трафик только к определенным DNS.
      apiVersion: networking.k8s.io/v1
      kind: NetworkPolicy
      metadata:
      name: allow-egress-to-dns
      spec:
      podSelector: {}
      egress:
      - to:
      - namespaceSelector: {}
        podSelector:
          matchLabels:
            k8s-app: kube-dns
      ports:
      - protocol: UDP
        port: 53
      policyTypes:
      - Egress
  3. Пропускная способность (Bandwidth):

    • Часто облачные провайдеры учитывают или тарифицируют Egress и Ingress трафик отдельно. Egress-трафик из облака в интернет обычно платный.

Ключевая идея: Контроль над Egress-трафиком критически важен для безопасности (предотвращение атак, утечек) и управления затратами в облачных инфраструктурах.