Назад | Перейти на главную страницу

SNAT в Windows 2008

У меня есть клиент openVPN, который работает на сервере windows2008 R2, и через этот windows 2008 я пытаюсь сделать статический нат на машине, которая находится за этой реальной сетью win2008s. Вот моя конфигурация для сервера 2008 года;

вывод моей конфигурации NAT на сервере 2008 года

    # ----------------------------------
    # NAT configuration
    # ----------------------------------
    pushd routing ip nat
    uninstall
    install
    set global tcptimeoutmins=1440 udptimeoutmins=1 loglevel=ERROR
    #
    #NAT Configuration For Interface Local Area Connection 2
    #
    add interface name="Local Area Connection 2" mode=FULL
    add addressrange name="Local Area Connection 2" start=10.9.0.24 end=10.9.0.31 mask=255.255.255.248
    add addressmapping name="Local Area Connection 2" public=10.9.0.28 private=192.168.10.59 inboundsessions=enable
    #
    #NAT Configuration For Interface Local Area Connection
    #
    add interface name="Local Area Connection" mode=PRIVATE
    popd

Когда я пытаюсь выполнить эхо-запрос 10.9.0.28 с сервера openvpn или подключиться к порту TCP на нем, я вижу, что конечный nat выполняется на сервере Windows 2008, и мои пакеты отправляются на 10.9.0.28, но с исходным IP-адресом 10.9.0.1.

  19:54:25.046131 IP 10.9.0.1.43109 > 192.168.10.59.2000: Flags [S], seq 870055875, win 5840, options [mss 1350,sackOK,TS val 8948005 ecr 0,nop,wscale 7], length 0
19:54:25.046198 IP 192.168.10.59.2000 > 10.9.0.1.43109: Flags [R.], seq 0, ack 870055876, win 0, length 0
  19:54:28.044561 IP 10.9.0.1.43109 > 192.168.10.59.2000: Flags [S], seq 870055875, win 5840, options [mss 1350,sackOK,TS val 8951005 ecr 0,nop,wscale 7], length 0

и, конечно, возвращаемые пакеты не находят пути к отправителю. Я также пытался не отображать хосты напрямую, а преобразовывать сервис / порт, но это тоже не сработало. В моих Linux-ящиках я, конечно, могу изменить исходный IP-адрес, выполняя нат с iptables, но для того же сценария я не мог найти, как это сделать в Windows.

Итак, вы знаете, как изменить исходный IP-адрес при выполнении NAT с серверами Windows?

Спасибо за помощь в продвижении

гоктан

Для этого вы можете использовать netsh:

netsh routing ip nat install
netsh routing ip nat add interface "Local sth or Ethernet etc" AddressOnly
netsh routing ip nat add addressrange "Local sth or Ethernet etc" start=10.9.0.24 end=10.9.0.31 255.255.255.248
netsh routing ip nat add addressmapping "Local sth or Ethernet etc" public=<what_you_want_the_ip_to_look_like> <what_the_ip_actually_is> inboundsessions=disable

Последний вариант предназначен для использования (или нет, как мы делаем здесь) того же преобразования адресов в противоположном направлении. Это может быть нарушение, например, вашего подключения к Интернету, если вы не знаете, что делаете.