scpで指定アドレスを使用してコピーする

ルータにプロバイダが2本設定されていて、ローカルのIPアドレス毎にどちらを使うか振り分けている環境で、明示的にどちらを使うか振り分けたい事があったのでメモ。
具体的にはリモートに数十GBのファイルをUPしたいけど、うちで使っているOCNでは、一日に30GB以上のUPは規制対象なので、上手いことやりたいって感じ。

UbuntuでIPアドレスを複数設定してやる。
/etc/network/interfacesに記述。
bondingもしているので、ちょっと普通と記述が違うけど。

iface eth0 inet manual
iface eth1 inet manual

auto bond0
iface bond0 inet static
address 192.168.34.1
netmask 255.255.255.0
network 192.168.34.0
broadcast 192.168.34.255
gateway 192.168.34.100
slaves eth0 eth1
bond-mode 0
bond-miimon 100

auto bond0:0
iface bond0:0 inet static
address 192.168.34.2
netmask 255.255.255.0

eth0, eth1を束ねたbond0に2つのローカルアドレス(192.168.34.1, 192.168.34.2)
を設定してる。
設定したら、sudo /etc/init.d/networking restartか再起動で。

あとはルータ(ix2015)で

ip access-list secondary permit ip src 192.168.34.2/32 dest any

route-map ocn2 permit 10
  match ip address access-list secondary
  set interface FastEthernet0/0.2

みたいな事をしてやれば、192.168.34.2のローカルアドレスは、外部に出る時、2本目のプロバイダを使用する。

で、scpの方は簡単で

scp -o BindAddress=192.168.34.2 ./localfiles remote.address:~/

で出来た。ちなみにwgetでも –bind-addressで指定できるし、sshでも -b で出来る。

コメントを残す